{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://clinicaneurobee.com.br/neurodados/schemas/neurodireitos.schema.json",
  "title": "Registro do NeuroDireitos",
  "description": "Uma lei, decreto, tratado ou norma infralegal brasileira ligada ao neurodesenvolvimento, à deficiência, à saúde mental ou a doenças, com o que ela garante e a situação de vigência conferida no texto oficial. Conteúdo informativo: não é orientação jurídica.",
  "type": "object",
  "additionalProperties": false,
  "required": ["id", "slug", "base", "nome", "categoria", "norma", "definicao", "afirmacoes", "limitacoes", "fontes", "estado", "revisao", "versao", "criado_em", "atualizado_em", "historico"],
  "properties": {
    "$schema": { "type": "string" },
    "id": { "type": "string", "pattern": "^neurodireitos\\.[a-z0-9]+(?:-[a-z0-9]+)*$" },
    "slug": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
    "base": { "const": "neurodireitos" },
    "nome": { "type": "string", "minLength": 2, "maxLength": 160, "description": "Tipo, número e data da norma, como \"Lei nº 12.764, de 27 de dezembro de 2012\"." },
    "sigla": { "type": "string", "minLength": 2, "maxLength": 30 },
    "nomes_alternativos": { "type": "array", "uniqueItems": true, "items": { "type": "string", "minLength": 2, "maxLength": 160 }, "description": "Nomes pelos quais a norma é conhecida, como \"Lei Berenice Piana\"." },
    "categoria": { "enum": ["tratado_internacional", "lei", "decreto", "norma_infralegal"] },
    "norma": {
      "type": "object",
      "additionalProperties": false,
      "required": ["tipo", "numero", "data", "orgao", "ementa", "abrangencia", "vigencia", "fonte"],
      "properties": {
        "tipo": { "enum": ["constituicao", "emenda_constitucional", "tratado", "lei_complementar", "lei", "medida_provisoria", "decreto", "decreto_legislativo", "portaria", "portaria_de_consolidacao", "resolucao", "resolucao_normativa", "instrucao_normativa", "outra"] },
        "numero": { "type": "string", "minLength": 1, "maxLength": 30, "description": "Como no texto oficial, como \"12.764\" ou \"793\"." },
        "data": { "$ref": "comum.schema.json#/$defs/data" },
        "orgao": { "type": "string", "minLength": 2, "maxLength": 200, "description": "Quem editou a norma, como \"Presidência da República\" ou \"Ministério da Saúde\"." },
        "ementa": { "type": "string", "minLength": 10, "maxLength": 1200, "description": "A ementa oficial, literal." },
        "publicacao": { "type": "string", "maxLength": 200, "description": "Onde foi publicada, como \"DOU de 28/12/2012, seção 1, p. 2\"." },
        "abrangencia": { "enum": ["federal", "estadual", "municipal"] },
        "uf": { "type": "string", "pattern": "^[A-Z]{2}$" },
        "municipio": { "type": "string", "maxLength": 120 },
        "vigencia": {
          "type": "object",
          "additionalProperties": false,
          "required": ["situacao", "conferido_em"],
          "properties": {
            "situacao": { "enum": ["vigente", "parcialmente_revogada", "revogada"] },
            "conferido_em": { "$ref": "comum.schema.json#/$defs/data" },
            "alteracoes": { "type": "array", "uniqueItems": true, "items": { "type": "string", "minLength": 3, "maxLength": 200 }, "description": "Normas que mudaram o texto, como aparecem no texto oficial compilado." },
            "revogada_por": { "type": "string", "maxLength": 200 }
          }
        },
        "regulamentada_por": { "type": "array", "uniqueItems": true, "items": { "type": "string", "minLength": 3, "maxLength": 200 } },
        "fonte": { "$ref": "comum.schema.json#/$defs/id_fonte", "description": "A fonte com o texto oficial da norma." }
      }
    },
    "condicoes": {
      "type": "array",
      "uniqueItems": true,
      "items": { "enum": ["tea", "tdah", "dislexia", "transtornos_de_aprendizagem", "sindrome_de_tourette", "deficiencia_intelectual", "deficiencia", "altas_habilidades", "saude_mental", "doencas_raras", "doencas_cronicas", "desenvolvimento_infantil"] },
      "description": "A quem a norma se refere."
    },
    "areas": {
      "type": "array",
      "uniqueItems": true,
      "items": { "enum": ["direitos_gerais", "educacao", "saude", "planos_de_saude", "assistencia_social", "trabalho", "previdencia", "tributos", "transporte", "acessibilidade", "atendimento_prioritario", "identificacao", "cultura_e_lazer", "justica"] },
      "description": "Em que áreas a norma garante direitos ou organiza serviços."
    },
    "definicao": { "type": "string", "minLength": 40, "maxLength": 600, "description": "O que a norma faz, em linguagem simples." },
    "descricao": { "type": "string", "maxLength": 3000 },
    "afirmacoes": { "type": "array", "minItems": 1, "items": { "$ref": "comum.schema.json#/$defs/afirmacao" }, "description": "O que a norma garante ou organiza, com o artigo no texto." },
    "relacionados": { "type": "array", "items": { "$ref": "comum.schema.json#/$defs/relacionamento" } },
    "limitacoes": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 10, "maxLength": 500 } },
    "fontes": { "type": "array", "minItems": 1, "items": { "$ref": "comum.schema.json#/$defs/fonte" } },
    "estado": { "enum": ["rascunho", "publicado", "desatualizado", "arquivado"] },
    "revisao": { "$ref": "comum.schema.json#/$defs/revisao" },
    "versao": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+$" },
    "criado_em": { "$ref": "comum.schema.json#/$defs/data" },
    "atualizado_em": { "$ref": "comum.schema.json#/$defs/data" },
    "historico": { "type": "array", "minItems": 1, "items": { "$ref": "comum.schema.json#/$defs/historico" } }
  }
}
