{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://getzero.dev/contracts/zero.coliseum.paper_bracket.v1.schema.json",
  "title": "ZERO Coliseum paper bracket v1",
  "description": "Public read-only paper League bracket derived from REAL stored paper runs (decision_replay_frames, source_type=paper_fill). No fabricated entrants; no public pnl ranking. Honest forming state when no scored runs exist yet.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema_version",
    "kind",
    "public",
    "mode",
    "cadence",
    "status",
    "generated_at",
    "tournament",
    "execution_boundary",
    "scoring",
    "entrants",
    "winner",
    "replay_evidence",
    "disclosures",
    "privacy_boundary",
    "links",
    "blockers"
  ],
  "properties": {
    "schema_version": { "const": "zero.coliseum.paper_bracket.v1" },
    "kind": { "const": "coliseum_paper_bracket" },
    "public": { "const": true },
    "mode": { "const": "paper" },
    "cadence": { "const": "weekly" },
    "status": { "enum": ["forming", "published"] },
    "generated_at": { "type": "string", "format": "date-time" },
    "tournament": {
      "type": "object",
      "additionalProperties": false,
      "required": ["id", "name", "week_start", "week_end", "bracket_url", "league_url"],
      "properties": {
        "id": { "type": "string", "minLength": 8 },
        "name": { "const": "Genesis Paper Bracket" },
        "week_start": { "type": "string", "format": "date" },
        "week_end": { "type": "string", "format": "date" },
        "bracket_url": { "const": "https://getzero.dev/league" },
        "league_url": { "const": "https://getzero.dev/league" }
      }
    },
    "execution_boundary": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "can_execute_orders",
        "auto_execution_enabled",
        "private_keys_required",
        "live_promotion_requires_operator_lease",
        "default_disciple_mode"
      ],
      "properties": {
        "can_execute_orders": { "const": false },
        "auto_execution_enabled": { "const": false },
        "private_keys_required": { "const": false },
        "live_promotion_requires_operator_lease": { "const": true },
        "default_disciple_mode": { "const": "signal_only" }
      }
    },
    "scoring": {
      "type": "object",
      "additionalProperties": false,
      "required": ["schema_version", "points", "promotion_rules", "disqualification_rules"],
      "properties": {
        "schema_version": { "const": "zero.coliseum.scoring.v1" },
        "points": {
          "type": "object",
          "additionalProperties": { "type": "integer", "minimum": 0 },
          "required": [
            "replay_quality",
            "audit_evidence",
            "signed_receipt",
            "paper_decision",
            "private_key_free_runtime",
            "recency"
          ]
        },
        "promotion_rules": { "type": "array", "minItems": 3, "items": { "type": "string", "minLength": 12 } },
        "disqualification_rules": { "type": "array", "minItems": 3, "items": { "type": "string", "minLength": 12 } }
      }
    },
    "entrants": {
      "type": "array",
      "minItems": 0,
      "items": { "$ref": "#/$defs/entrant" }
    },
    "winner": {
      "oneOf": [{ "$ref": "#/$defs/entrant" }, { "type": "null" }]
    },
    "replay_evidence": {
      "type": "object",
      "additionalProperties": false,
      "required": ["required", "public_replay_index_url", "export_url", "decision_loop_required"],
      "properties": {
        "required": { "const": true },
        "public_replay_index_url": { "const": "https://getzero.dev/replay" },
        "export_url": { "const": "https://getzero.dev/api/replays/export?limit=20&kind=public_evidence" },
        "decision_loop_required": { "const": true }
      }
    },
    "disclosures": {
      "type": "object",
      "additionalProperties": false,
      "required": ["not_investment_advice", "no_performance_promise", "no_public_pnl_ranking"],
      "properties": {
        "not_investment_advice": { "const": true },
        "no_performance_promise": { "const": true },
        "no_public_pnl_ranking": { "const": true }
      }
    },
    "privacy_boundary": {
      "type": "object",
      "additionalProperties": false,
      "required": ["public_only", "performance_metrics_public", "private_keys_public", "operator_ids_public"],
      "properties": {
        "public_only": { "const": true },
        "performance_metrics_public": { "const": false },
        "private_keys_public": { "const": false },
        "operator_ids_public": { "const": false }
      }
    },
    "links": {
      "type": "object",
      "additionalProperties": false,
      "required": ["self", "page", "replay_index", "schema"],
      "properties": {
        "self": { "const": "https://getzero.dev/api/coliseum" },
        "page": { "const": "https://getzero.dev/league" },
        "replay_index": { "const": "https://getzero.dev/replay" },
        "schema": { "const": "https://getzero.dev/contracts/zero.coliseum.paper_bracket.v1.schema.json" }
      }
    },
    "blockers": { "type": "array", "items": { "type": "string" } }
  },
  "allOf": [
    {
      "if": { "properties": { "status": { "const": "published" } } },
      "then": {
        "properties": {
          "entrants": { "minItems": 1 },
          "winner": { "$ref": "#/$defs/entrant" }
        }
      },
      "else": {
        "properties": { "winner": { "type": "null" } }
      }
    }
  ],
  "$defs": {
    "entrant": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "rank",
        "entrant_id",
        "display_name",
        "operator_handle",
        "agent_short_id",
        "source",
        "league_tier",
        "score",
        "runs",
        "decisions",
        "replay_quality",
        "audit_score",
        "journal_status",
        "risk_policy",
        "replay_evidence_url",
        "public_profile_url",
        "disqualified",
        "blockers"
      ],
      "properties": {
        "rank": { "type": "integer", "minimum": 1 },
        "entrant_id": { "type": "string", "minLength": 3 },
        "display_name": { "type": "string", "minLength": 3 },
        "operator_handle": { "type": "string", "minLength": 3 },
        "agent_short_id": { "type": "string", "minLength": 3 },
        "source": { "enum": ["public_operator", "paper_run"] },
        "league_tier": { "enum": ["Bronze", "Silver", "Gold", "Diamond", "Mythic"] },
        "score": { "type": "integer", "minimum": 0 },
        "runs": { "type": "integer", "minimum": 0 },
        "decisions": { "type": "integer", "minimum": 0 },
        "replay_quality": { "enum": ["complete", "partial"] },
        "audit_score": { "type": "integer", "minimum": 0, "maximum": 100 },
        "journal_status": { "enum": ["complete", "partial", "unavailable"] },
        "risk_policy": { "type": "string", "minLength": 3 },
        "replay_evidence_url": { "type": "string", "pattern": "^/(api/replays|replay)" },
        "public_profile_url": { "type": "string", "pattern": "^/(u|a)/" },
        "disqualified": { "type": "boolean" },
        "blockers": { "type": "array", "items": { "type": "string" } }
      }
    }
  }
}
