{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.ergoblockchain.org/agent-economy/roadmap.schema.v0.json",
  "title": "Ergo Agent Economy Roadmap",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "type",
    "version",
    "status",
    "posture",
    "north_star",
    "product_principles",
    "phases",
    "primary_paths",
    "next_actions",
    "next_movement",
    "economic_loop",
    "provider_loop",
    "agent_roles",
    "economic_mcp_tools",
    "first_markets",
    "economy_metrics",
    "bootstrap_jobs",
    "ergo_connect",
    "trust_boundaries",
    "mainnet_gate"
  ],
  "properties": {
    "type": { "const": "ergo.agent_economy.roadmap.v0" },
    "version": { "const": "v0" },
    "status": { "const": "testnet_live_proof_roadmap" },
    "last_updated": { "type": "string" },
    "public_claim": { "type": "string" },
    "posture": {
      "type": "object",
      "additionalProperties": false,
      "required": ["network", "mainnet_ready", "production_custody", "gate"],
      "properties": {
        "network": { "const": "ergo_testnet" },
        "mainnet_ready": { "const": false },
        "production_custody": { "const": false },
        "gate": { "type": "string" }
      }
    },
    "north_star": { "type": "string" },
    "product_principles": {
      "type": "array",
      "minItems": 3,
      "items": { "type": "string" }
    },
    "phases": {
      "type": "array",
      "minItems": 4,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["id", "phase", "title", "summary", "proof_links"],
        "properties": {
          "id": { "type": "string" },
          "phase": {
            "enum": ["live", "build_next", "trust_gated", "later"]
          },
          "title": { "type": "string" },
          "summary": { "type": "string" },
          "proof_links": {
            "type": "array",
            "items": { "type": "string", "format": "uri" }
          }
        }
      }
    },
    "primary_paths": {
      "type": "object",
      "additionalProperties": { "type": "string", "format": "uri" },
      "required": ["human_start", "live_hub", "proof_explorer", "developer_launch_kit", "machine_discovery", "openapi"]
    },
    "next_actions": {
      "type": "array",
      "minItems": 2,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["id", "owner", "label", "blocked_by_external"],
        "properties": {
          "id": { "type": "string" },
          "owner": { "enum": ["repo", "audit", "ops", "wallet", "dns"] },
          "label": { "type": "string" },
          "blocked_by_external": { "type": "boolean" }
        }
      }
    },
    "next_movement": {
      "type": "object",
      "additionalProperties": false,
      "required": ["name", "transition", "thesis", "main_metric"],
      "properties": {
        "name": { "type": "string" },
        "transition": { "type": "string" },
        "thesis": { "type": "string" },
        "main_metric": { "type": "string" }
      }
    },
    "economic_loop": {
      "type": "array",
      "minItems": 5,
      "items": { "type": "string" }
    },
    "provider_loop": {
      "type": "array",
      "minItems": 3,
      "items": { "type": "string" }
    },
    "agent_roles": {
      "type": "array",
      "minItems": 4,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["role", "purpose"],
        "properties": {
          "role": { "type": "string" },
          "purpose": { "type": "string" }
        }
      }
    },
    "economic_mcp_tools": {
      "type": "array",
      "minItems": 5,
      "items": { "type": "string" }
    },
    "first_markets": {
      "type": "array",
      "minItems": 3,
      "items": { "type": "string" }
    },
    "economy_metrics": {
      "type": "array",
      "minItems": 5,
      "items": { "type": "string" }
    },
    "bootstrap_jobs": {
      "type": "array",
      "minItems": 3,
      "items": { "type": "string" }
    },
    "ergo_connect": {
      "type": "object",
      "additionalProperties": false,
      "required": ["purpose", "positioning", "safe_claim", "do_not_claim", "caip", "capabilities", "packages", "demo"],
      "properties": {
        "purpose": { "type": "string" },
        "positioning": { "type": "string" },
        "safe_claim": { "type": "string" },
        "do_not_claim": { "type": "string" },
        "caip": {
          "type": "object",
          "additionalProperties": false,
          "required": ["namespace", "mainnet", "testnet", "account_format", "asset_format"],
          "properties": {
            "namespace": { "const": "ergo" },
            "mainnet": { "type": "string" },
            "testnet": { "type": "string" },
            "account_format": { "type": "string" },
            "asset_format": { "type": "string" }
          }
        },
        "capabilities": {
          "type": "array",
          "minItems": 3,
          "items": { "type": "string" }
        },
        "packages": {
          "type": "array",
          "minItems": 1,
          "items": { "type": "string" }
        },
        "demo": { "type": "string" }
      }
    },
    "trust_boundaries": {
      "type": "array",
      "minItems": 3,
      "items": { "type": "string" }
    },
    "mainnet_gate": {
      "type": "object",
      "additionalProperties": true,
      "required": ["status", "mainnet_ready", "pending_blockers", "artifacts"],
      "properties": {
        "status": { "const": "closed" },
        "mainnet_ready": { "const": false },
        "pending_blockers": { "type": "array" },
        "artifacts": { "type": "object" }
      }
    }
  }
}
