{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://getzero.dev/contracts/zero.growth_receipt_repeatability.v1.schema.json",
  "title": "ZERO Growth Receipt Repeatability Readback",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema_version",
    "kind",
    "status",
    "generated_at",
    "canonical_url",
    "current_blocker",
    "score_gate",
    "repeatability_policy",
    "coverage",
    "targets",
    "privacy_boundary",
    "auto_execution_enabled",
    "eligibility_gate_required",
    "compensation_label_required"
  ],
  "properties": {
    "schema_version": { "const": "zero.growth_receipt_repeatability.v1" },
    "kind": { "const": "growth_receipt_repeatability_readback" },
    "status": { "enum": ["collecting_history", "repeatability_ready", "aggregate_unavailable"] },
    "generated_at": { "type": "string", "format": "date-time" },
    "canonical_url": { "const": "https://getzero.dev/api/growth/repeatability" },
    "current_blocker": { "enum": ["growth_receipt_repeatability_missing", null] },
    "score_gate": {
      "type": "object",
      "additionalProperties": false,
      "required": ["can_promote_public_score", "reason", "next_action"],
      "properties": {
        "can_promote_public_score": { "type": "boolean" },
        "reason": { "type": "string", "minLength": 1 },
        "next_action": { "type": "string", "minLength": 1 }
      }
    },
    "repeatability_policy": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "required_targets",
        "minimum_total_active_receipts",
        "minimum_active_intent_kinds",
        "minimum_operator_target_receipts",
        "maximum_latest_receipt_age_days",
        "future_receipt_clock_skew_tolerance_seconds"
      ],
      "properties": {
        "required_targets": { "const": 3 },
        "minimum_total_active_receipts": { "type": "integer", "minimum": 1 },
        "minimum_active_intent_kinds": { "type": "integer", "minimum": 1 },
        "minimum_operator_target_receipts": { "type": "integer", "minimum": 1 },
        "maximum_latest_receipt_age_days": { "type": "integer", "minimum": 1 },
        "future_receipt_clock_skew_tolerance_seconds": { "type": "integer", "minimum": 0 }
      }
    },
    "coverage": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "total_active_receipts",
        "active_targets",
        "active_target_kinds",
        "active_intent_kinds",
        "latest_receipt_at",
        "checks"
      ],
      "properties": {
        "total_active_receipts": { "type": "integer", "minimum": 0 },
        "active_targets": { "type": "integer", "minimum": 0 },
        "active_target_kinds": {
          "type": "array",
          "items": { "enum": ["operator", "agent", "replay"] }
        },
        "active_intent_kinds": {
          "type": "array",
          "items": { "enum": ["follow", "disciple_signal_only", "save_trade_receipt"] }
        },
        "latest_receipt_at": { "type": ["string", "null"], "format": "date-time" },
        "checks": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "target_coverage_met",
            "intent_coverage_met",
            "total_receipts_met",
            "operator_repeat_met",
            "recency_met"
          ],
          "properties": {
            "target_coverage_met": { "type": "boolean" },
            "intent_coverage_met": { "type": "boolean" },
            "total_receipts_met": { "type": "boolean" },
            "operator_repeat_met": { "type": "boolean" },
            "recency_met": { "type": "boolean" }
          }
        }
      }
    },
    "targets": {
      "type": "array",
      "minItems": 3,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["id", "label", "required_intents", "summary", "active_required_intents", "repeatability_ready"],
        "properties": {
          "id": { "enum": ["foundation_operator", "oracle_agent", "sentinel_replay"] },
          "label": { "type": "string", "minLength": 1 },
          "required_intents": {
            "type": "array",
            "items": { "enum": ["follow", "disciple_signal_only", "save_trade_receipt"] }
          },
          "summary": { "$ref": "#/$defs/public_growth_receipt_summary" },
          "active_required_intents": {
            "type": "array",
            "items": { "enum": ["follow", "disciple_signal_only", "save_trade_receipt"] }
          },
          "repeatability_ready": { "type": "boolean" }
        }
      }
    },
    "privacy_boundary": {
      "type": "object",
      "additionalProperties": false,
      "required": ["aggregate_only", "operator_ids_public", "metadata_public", "public_detail"],
      "properties": {
        "aggregate_only": { "const": true },
        "operator_ids_public": { "const": false },
        "metadata_public": { "const": false },
        "public_detail": { "const": "target_counts_intent_counts_and_gate_status_only" }
      }
    },
    "auto_execution_enabled": { "const": false },
    "eligibility_gate_required": { "const": true },
    "compensation_label_required": { "const": true }
  },
  "$defs": {
    "public_growth_receipt_summary": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "schema_version",
        "kind",
        "status",
        "target",
        "total_active_receipts",
        "latest_receipt_at",
        "by_intent",
        "privacy_boundary",
        "auto_execution_enabled",
        "eligibility_gate_required",
        "compensation_label_required"
      ],
      "properties": {
        "schema_version": { "const": "zero.operator_growth_public_receipts.v1" },
        "kind": { "const": "operator_growth_public_receipt_summary" },
        "status": { "enum": ["aggregate_ready", "aggregate_unavailable"] },
        "target": {
          "type": "object",
          "additionalProperties": false,
          "required": ["kind", "handle", "agent_short_id", "replay_id"],
          "properties": {
            "kind": { "enum": ["operator", "agent", "replay"] },
            "handle": { "type": ["string", "null"] },
            "agent_short_id": { "type": ["string", "null"] },
            "replay_id": { "type": ["string", "null"] }
          }
        },
        "total_active_receipts": { "type": "integer", "minimum": 0 },
        "latest_receipt_at": { "type": ["string", "null"], "format": "date-time" },
        "by_intent": {
          "type": "array",
          "minItems": 3,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": ["intent", "active_count", "latest_receipt_at"],
            "properties": {
              "intent": { "enum": ["follow", "disciple_signal_only", "save_trade_receipt"] },
              "active_count": { "type": "integer", "minimum": 0 },
              "latest_receipt_at": { "type": ["string", "null"], "format": "date-time" }
            }
          }
        },
        "privacy_boundary": {
          "type": "object",
          "additionalProperties": false,
          "required": ["aggregate_only", "operator_ids_public", "metadata_public", "public_detail"],
          "properties": {
            "aggregate_only": { "const": true },
            "operator_ids_public": { "const": false },
            "metadata_public": { "const": false },
            "public_detail": { "const": "counts_by_intent_only" }
          }
        },
        "auto_execution_enabled": { "const": false },
        "eligibility_gate_required": { "const": true },
        "compensation_label_required": { "const": true }
      }
    }
  }
}
