{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://getzero.dev/contracts/zero.registry.catalog.v0.schema.json",
  "title": "ZERO Registry catalog v0",
  "description": "Public-safe catalog contract for ZERO Registry skills, strategy templates, signals, datasets, and evaluators. The compatibility /api/market route remains supported.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema_version",
    "kind",
    "canonical_url",
    "compatibility_url",
    "reputation_url",
    "public",
    "settlement",
    "guardrails",
    "lanes",
    "listings"
  ],
  "properties": {
    "schema_version": { "const": "zero.registry.catalog.v0" },
    "kind": { "const": "registry_catalog" },
    "canonical_url": { "const": "https://getzero.dev/api/registry" },
    "compatibility_url": { "const": "https://getzero.dev/api/market" },
    "reputation_url": { "const": "https://getzero.dev/api/registry/reputation" },
    "public": { "const": true },
    "settlement": {
      "type": "object",
      "additionalProperties": false,
      "required": ["paid_calls_enabled", "x402_status", "compensation_labels_required"],
      "properties": {
        "paid_calls_enabled": { "const": false },
        "x402_status": { "const": "architecture_flagged_off" },
        "compensation_labels_required": { "const": true }
      }
    },
    "guardrails": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "default_execution_mode",
        "auto_execution_enabled",
        "eligibility_gate_required_before_auto_execution",
        "performance_disclosure_required",
        "replay_evidence_required"
      ],
      "properties": {
        "default_execution_mode": { "const": "signal_only" },
        "auto_execution_enabled": { "const": false },
        "eligibility_gate_required_before_auto_execution": { "const": true },
        "performance_disclosure_required": { "const": true },
        "replay_evidence_required": { "const": true }
      }
    },
    "lanes": {
      "type": "array",
      "minItems": 5,
      "uniqueItems": true,
      "items": { "enum": ["skill", "strategy", "signal", "dataset", "evaluator"] }
    },
    "listings": {
      "type": "array",
      "minItems": 1,
      "items": { "$ref": "#/$defs/listing" }
    }
  },
  "$defs": {
    "listing": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "id",
        "supplier_id",
        "kind",
        "name",
        "summary",
        "access",
        "execution_mode",
        "compensation_label",
        "performance_disclosure",
        "replay_evidence_url",
        "reputation_url",
        "required_disclosures",
        "inputs",
        "outputs"
      ],
      "properties": {
        "id": { "type": "string", "minLength": 3 },
        "supplier_id": { "type": "string", "minLength": 3 },
        "kind": { "enum": ["skill", "strategy", "signal", "dataset", "evaluator"] },
        "name": { "type": "string", "minLength": 3 },
        "summary": { "type": "string", "minLength": 16 },
        "access": { "enum": ["free_open", "feature_flagged_paid"] },
        "execution_mode": { "const": "signal_only" },
        "compensation_label": { "enum": ["none", "x402_disabled"] },
        "performance_disclosure": { "type": "string", "minLength": 20 },
        "replay_evidence_url": { "type": "string", "pattern": "^/" },
        "reputation_url": { "type": "string", "pattern": "^/api/registry/reputation#" },
        "required_disclosures": { "type": "array", "minItems": 1, "items": { "type": "string" } },
        "inputs": { "type": "array", "minItems": 1, "items": { "type": "string" } },
        "outputs": { "type": "array", "minItems": 1, "items": { "type": "string" } }
      }
    }
  }
}
