{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://observatorioia.org/api/schemas/enia-acciones.schema.json",
  "title": "Plan de Acción ENIA / ENIA Action Plan",
  "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
        }
      }
    },
    "fuente": {
      "type": "object",
      "required": [
        "titulo",
        "publicador",
        "url",
        "fechaVersion",
        "fechaConsulta",
        "idiomaFuente"
      ],
      "additionalProperties": false,
      "properties": {
        "titulo": {
          "$ref": "#/definitions/bilingual"
        },
        "publicador": {
          "type": "string",
          "minLength": 1
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "fechaVersion": {
          "type": "string",
          "format": "date"
        },
        "fechaConsulta": {
          "type": "string",
          "format": "date"
        },
        "idiomaFuente": {
          "const": "es"
        }
      }
    },
    "resumen": {
      "type": "object",
      "required": [
        "ejes",
        "lineasAccion",
        "resultadosEsperados",
        "intervenciones",
        "indicadores"
      ],
      "additionalProperties": false,
      "properties": {
        "ejes": {
          "type": "integer",
          "minimum": 1
        },
        "lineasAccion": {
          "type": "integer",
          "minimum": 1
        },
        "resultadosEsperados": {
          "type": "integer",
          "minimum": 1
        },
        "intervenciones": {
          "type": "integer",
          "minimum": 1
        },
        "indicadores": {
          "type": "integer",
          "minimum": 0
        }
      }
    },
    "hallazgo": {
      "type": "object",
      "required": [
        "id",
        "descripcion"
      ],
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
        },
        "descripcion": {
          "$ref": "#/definitions/bilingual"
        }
      }
    },
    "eje": {
      "type": "object",
      "required": [
        "numero",
        "nombre"
      ],
      "additionalProperties": false,
      "properties": {
        "numero": {
          "type": "integer",
          "minimum": 1,
          "maximum": 7
        },
        "nombre": {
          "$ref": "#/definitions/bilingual"
        }
      }
    },
    "lineaAccion": {
      "type": "object",
      "required": [
        "codigo",
        "nombre"
      ],
      "additionalProperties": false,
      "properties": {
        "codigo": {
          "type": "string",
          "pattern": "^[1-7]\\.[0-9]+$"
        },
        "nombre": {
          "$ref": "#/definitions/bilingual"
        }
      }
    },
    "tipoIntervencion": {
      "type": "string",
      "enum": [
        "politica-gobernanza",
        "capacitacion-formacion",
        "investigacion-diagnostico",
        "articulacion-financiamiento",
        "infraestructura-habilitante",
        "solucion-ia-declarada",
        "automatizacion-digital",
        "por-determinar"
      ]
    },
    "indicador": {
      "type": "object",
      "required": [
        "descripcionFuenteEs",
        "lineaBaseFuente",
        "metaPeriodoFuente"
      ],
      "additionalProperties": false,
      "properties": {
        "descripcionFuenteEs": {
          "type": [
            "string",
            "null"
          ],
          "description": "Transcripción en el idioma original. null cuando la matriz deja vacía la celda del indicador."
        },
        "lineaBaseFuente": {
          "type": [
            "string",
            "null"
          ]
        },
        "metaPeriodoFuente": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "cruceCatalogo": {
      "type": "object",
      "required": [
        "estado",
        "proyectoIds",
        "fundamento"
      ],
      "additionalProperties": false,
      "properties": {
        "estado": {
          "type": "string",
          "enum": [
            "mapeado-exacto",
            "coincidencia-parcial",
            "posible-duplicado",
            "nuevo-con-evidencia",
            "enia-solamente",
            "no-es-sistema-ia",
            "no-determinado"
          ]
        },
        "proyectoIds": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "intervencionCanonicaId": {
          "type": "string",
          "pattern": "^enia-[1-7]-[0-9]+-[0-9]+-[0-9]{2}$"
        },
        "fundamento": {
          "$ref": "#/definitions/bilingual"
        }
      }
    },
    "evidenciaExterna": {
      "type": "object",
      "required": [
        "id",
        "titulo",
        "url",
        "publicador",
        "fechaConsulta",
        "respalda"
      ],
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
        },
        "titulo": {
          "$ref": "#/definitions/bilingual"
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "publicador": {
          "type": "string",
          "minLength": 1
        },
        "fechaPublicacion": {
          "type": "string",
          "format": "date"
        },
        "fechaConsulta": {
          "type": "string",
          "format": "date"
        },
        "respalda": {
          "type": "array",
          "minItems": 1,
          "uniqueItems": true,
          "items": {
            "type": "string",
            "enum": [
              "existencia",
              "ejecucion",
              "tecnica-ia",
              "uso-operativo",
              "resultado",
              "gobernanza"
            ]
          }
        }
      }
    },
    "intervencion": {
      "type": "object",
      "required": [
        "id",
        "paginaPlan",
        "intervencionEstrategicaFuenteEs",
        "objetivoFuenteEs",
        "indicadores",
        "responsableOficial",
        "responsableEnFormalizacion",
        "aliadosOficiales",
        "tipoIntervencion",
        "estadoEjecucion",
        "cruceCatalogo",
        "recomendacionEditorial",
        "fechaUltimaRevision"
      ],
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^enia-[1-7]-[0-9]+-[0-9]+-[0-9]{2}$"
        },
        "paginaPlan": {
          "type": "integer",
          "minimum": 1,
          "maximum": 51
        },
        "intervencionEstrategicaFuenteEs": {
          "type": "string",
          "minLength": 1
        },
        "objetivoFuenteEs": {
          "type": "string",
          "minLength": 1
        },
        "indicadores": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/indicador"
          }
        },
        "responsableOficial": {
          "type": "string",
          "minLength": 1
        },
        "responsableEnFormalizacion": {
          "type": "boolean"
        },
        "aliadosOficiales": {
          "type": [
            "string",
            "null"
          ]
        },
        "tipoIntervencion": {
          "$ref": "#/definitions/tipoIntervencion"
        },
        "estadoEjecucion": {
          "type": "string",
          "enum": [
            "no-verificado",
            "parcialmente-verificado",
            "verificado",
            "contradicho"
          ]
        },
        "cruceCatalogo": {
          "$ref": "#/definitions/cruceCatalogo"
        },
        "evidenciasExternas": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/evidenciaExterna"
          }
        },
        "faseRealVerificada": {
          "type": "string",
          "enum": [
            "anunciado",
            "planificado",
            "desarrollo",
            "prueba-concepto",
            "piloto",
            "operativo",
            "pausado",
            "suspendido",
            "finalizado",
            "cancelado",
            "no-determinado"
          ]
        },
        "recomendacionEditorial": {
          "type": "string",
          "enum": [
            "investigar-como-seguimiento",
            "ecosistema",
            "revisar-si-es-ia",
            "revisar"
          ]
        },
        "notasEditoriales": {
          "$ref": "#/definitions/bilingual"
        },
        "fechaUltimaRevision": {
          "type": "string",
          "format": "date"
        }
      }
    },
    "resultado": {
      "type": "object",
      "required": [
        "codigo",
        "eje",
        "lineaAccion",
        "resultadoEsperado",
        "tipoPredominante",
        "intervenciones"
      ],
      "additionalProperties": false,
      "properties": {
        "codigo": {
          "type": "string",
          "pattern": "^[1-7]\\.[0-9]+\\.[0-9]+$"
        },
        "eje": {
          "$ref": "#/definitions/eje"
        },
        "lineaAccion": {
          "$ref": "#/definitions/lineaAccion"
        },
        "resultadoEsperado": {
          "$ref": "#/definitions/bilingual"
        },
        "tipoPredominante": {
          "$ref": "#/definitions/tipoIntervencion"
        },
        "intervenciones": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/definitions/intervencion"
          }
        }
      }
    },
    "_dataset": {
      "type": "object",
      "required": [
        "schemaVersion",
        "fechaCorte",
        "fuente",
        "resumen",
        "criterioEditorial",
        "hallazgosExtraccion",
        "resultados"
      ],
      "additionalProperties": false,
      "properties": {
        "schemaVersion": {
          "const": 2
        },
        "fechaCorte": {
          "type": "string",
          "format": "date"
        },
        "fuente": {
          "$ref": "#/definitions/fuente"
        },
        "resumen": {
          "$ref": "#/definitions/resumen"
        },
        "criterioEditorial": {
          "$ref": "#/definitions/bilingual"
        },
        "hallazgosExtraccion": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/hallazgo"
          }
        },
        "resultados": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/definitions/resultado"
          }
        }
      }
    }
  },
  "x-observatorio-data-schema": "/api/schemas/enia-acciones-data.schema.json"
}