{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://observatorioia.org/api/schemas/recursos.schema.json",
  "title": "Recursos y fuentes / Resources and sources",
  "description": "Schema de la respuesta pública completa; el campo data también se publica por separado. / Full public-response schema; the data field schema is also published separately.",
  "type": "object",
  "required": [
    "version",
    "lastUpdate",
    "count",
    "source",
    "license",
    "data"
  ],
  "additionalProperties": false,
  "properties": {
    "version": {
      "type": "string",
      "minLength": 1
    },
    "lastUpdate": {
      "type": "string",
      "format": "date-time"
    },
    "count": {
      "type": "integer",
      "minimum": 0
    },
    "source": {
      "const": "https://observatorioia.org"
    },
    "license": {
      "const": "CC BY 4.0"
    },
    "data": {
      "$ref": "#/definitions/_dataset"
    }
  },
  "definitions": {
    "bilingual": {
      "type": "object",
      "required": [
        "es",
        "en"
      ],
      "additionalProperties": false,
      "properties": {
        "es": {
          "type": "string",
          "minLength": 1
        },
        "en": {
          "type": "string",
          "minLength": 1
        }
      }
    },
    "_dataset": {
      "title": "Directorio público de recursos",
      "description": "Documentos, normas, indicadores y fuentes utilizados por el Observatorio IA Costa Rica.",
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "titulo",
          "fuente",
          "url",
          "tipo",
          "tipoFuente"
        ],
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[a-z0-9-]+$"
          },
          "titulo": {
            "$ref": "#/definitions/bilingual"
          },
          "fuente": {
            "type": "string",
            "minLength": 1
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "tipo": {
            "$ref": "#/definitions/bilingual"
          },
          "tipoFuente": {
            "enum": [
              "primaria-oficial",
              "acceso-informacion",
              "multilateral",
              "academica",
              "prensa",
              "otra-secundaria"
            ]
          },
          "nota": {
            "$ref": "#/definitions/bilingual"
          }
        }
      }
    }
  },
  "x-observatorio-data-schema": "/api/schemas/recursos-data.schema.json"
}