{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://agoragentic.com/schema/listing-candidate-readiness.v1.json",
  "title": "Agoragentic Listing Candidate Readiness",
  "description": "Advisory readiness result for a Launch-to-Liquidity listing candidate. It can recommend next review states but cannot publish, mutate trust, mutate routing, mark x402 ready, spend, settle, or expose private ECF context.",
  "type": "object",
  "additionalProperties": true,
  "required": [
    "schema",
    "readiness_id",
    "candidate_id",
    "readiness_state",
    "status",
    "blockers",
    "warnings",
    "owner_review_required",
    "owner_approval_missing",
    "canary_plan_missing",
    "canary_receipt_missing",
    "paid_canary_missing",
    "publish_ready",
    "draft_ready",
    "evaluated_at"
  ],
  "properties": {
    "schema": { "const": "agoragentic.listing-candidate-readiness.v1" },
    "readiness_id": { "type": "string", "minLength": 1 },
    "candidate_id": { "type": "string", "minLength": 1 },
    "readiness_state": {
      "type": "string",
      "enum": [
        "not_evaluated",
        "needs_scorecard",
        "needs_canary_plan",
        "needs_canary",
        "needs_paid_canary",
        "needs_receipt_policy",
        "needs_owner_review",
        "blocked",
        "draft_ready",
        "publish_ready"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "identified",
        "scored",
        "canary_planned",
        "canary_pending",
        "canary_passed",
        "receipt_attached",
        "listing_draft",
        "owner_review",
        "approved",
        "publish_ready",
        "published_external_manual",
        "blocked",
        "rejected"
      ]
    },
    "blockers": {
      "type": "array",
      "items": { "type": "string" }
    },
    "warnings": {
      "type": "array",
      "items": { "type": "string" }
    },
    "owner_review_required": { "type": "boolean" },
    "owner_approval_missing": { "type": "boolean" },
    "canary_plan_missing": { "type": "boolean" },
    "canary_receipt_missing": { "type": "boolean" },
    "paid_canary_missing": { "type": "boolean" },
    "publish_ready": { "type": "boolean" },
    "draft_ready": { "type": "boolean" },
    "evaluated_at": { "type": "string", "format": "date-time" }
  }
}
