{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://agenticwebwatch.org/schemas/source-directory.schema.json",
  "title": "AI Agent Observatory Source Directory",
  "type": "object",
  "required": [
    "schema_version",
    "updated_at",
    "sources"
  ],
  "properties": {
    "generated_at": {
      "type": "string",
      "format": "date-time"
    },
    "schema_version": {
      "type": "string"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    },
    "verification_policy": {
      "type": "string"
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "category",
          "formats",
          "url",
          "summary",
          "agent_use",
          "market_relevance",
          "notes"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "formats": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "summary": {
            "type": "string"
          },
          "agent_use": {
            "type": "string"
          },
          "market_relevance": {
            "type": "string"
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "authority_level": {
            "type": "string"
          },
          "auth_required": {
            "type": "string"
          },
          "rate_limit_notes": {
            "type": "string"
          },
          "update_cadence": {
            "type": "string"
          },
          "best_endpoint": {
            "type": "string"
          },
          "last_verified": {
            "type": "string"
          },
          "machine_readability_score": {
            "type": "integer"
          },
          "production_caveat": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    }
  },
  "additionalProperties": true
}
