{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://meyermedia.local/schemas/provider-profile.schema.json",
  "title": "Agentic provider profile",
  "type": "object",
  "required": [
    "schema_version",
    "repository",
    "providers"
  ],
  "properties": {
    "schema_version": {
      "const": 1
    },
    "repository": {
      "type": "object",
      "required": [
        "name",
        "stacks"
      ],
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1
        },
        "stacks": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true
        }
      },
      "additionalProperties": true
    },
    "providers": {
      "type": "object",
      "required": [
        "cloudflare",
        "codacy"
      ],
      "properties": {
        "cloudflare": {
          "$ref": "#/$defs/provider"
        },
        "codacy": {
          "$ref": "#/$defs/provider"
        }
      },
      "additionalProperties": false
    }
  },
  "$defs": {
    "status": {
      "enum": [
        "AVAILABLE",
        "ENABLED",
        "PILOT",
        "BLOCKED",
        "NOT_APPLICABLE_TO_CAPABILITY"
      ]
    },
    "provider": {
      "type": "object",
      "required": [
        "required_readiness",
        "status",
        "selected_capabilities",
        "rejected_capabilities",
        "required_secrets",
        "read_toolsets",
        "write_toolsets"
      ],
      "properties": {
        "required_readiness": {
          "const": true
        },
        "status": {
          "$ref": "#/$defs/status"
        },
        "selected_capabilities": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true
        },
        "rejected_capabilities": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true
        },
        "required_secrets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true
        },
        "read_toolsets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true
        },
        "write_toolsets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "uniqueItems": true
        }
      },
      "additionalProperties": true
    }
  },
  "additionalProperties": false
}
