{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://clinicaneurobee.com.br/neurodados/schemas/dataset.schema.json",
  "title": "Metadados de uma base do NeuroDados Brasil",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "nome",
    "titulo",
    "descricao",
    "versao",
    "mantenedor",
    "criado_em",
    "atualizado_em",
    "licenca",
    "metodologia",
    "limitacoes",
    "historico_de_versoes"
  ],
  "properties": {
    "$schema": { "type": "string" },
    "id": { "type": "string", "pattern": "^[a-z]+$", "description": "Nome técnico da base, como neurobase." },
    "nome": { "type": "string", "minLength": 2, "maxLength": 60 },
    "titulo": { "type": "string", "minLength": 5, "maxLength": 160 },
    "descricao": { "type": "string", "minLength": 40, "maxLength": 1200 },
    "versao": { "type": "string", "pattern": "^[0-9]{4}\\.[0-9]{2}\\.[0-9]{2}(?:\\.[0-9]+)?$", "description": "Versão por data: AAAA.MM.DD, com .N quando sai mais de uma no dia." },
    "mantenedor": {
      "type": "object",
      "additionalProperties": false,
      "required": ["nome", "url"],
      "properties": {
        "nome": { "type": "string" },
        "url": { "type": "string", "pattern": "^https://" }
      }
    },
    "criado_em": { "$ref": "comum.schema.json#/$defs/data" },
    "atualizado_em": { "$ref": "comum.schema.json#/$defs/data" },
    "licenca": {
      "type": "object",
      "additionalProperties": false,
      "required": ["nome", "sigla", "spdx", "url"],
      "properties": {
        "nome": { "type": "string" },
        "sigla": { "type": "string" },
        "spdx": { "type": "string" },
        "url": { "type": "string", "pattern": "^https://" }
      }
    },
    "metodologia": { "type": "string", "pattern": "^https://" },
    "doi": { "type": "string", "pattern": "^10\\.[0-9]{4,9}/\\S+$", "description": "DOI desta versão da base no Zenodo, sem o https://doi.org/." },
    "huggingface": { "type": "string", "pattern": "^https://huggingface\\.co/datasets/", "description": "Endereço da base no Hugging Face." },
    "palavras_chave": { "type": "array", "uniqueItems": true, "items": { "type": "string" } },
    "limitacoes": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 10 } },
    "historico_de_versoes": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["versao", "data", "mudanca"],
        "properties": {
          "versao": { "type": "string" },
          "data": { "$ref": "comum.schema.json#/$defs/data" },
          "mudanca": { "type": "string", "minLength": 5 }
        }
      }
    }
  }
}
