{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Contribution biodiversité au dossier de candidature au label DDRS de la CGE — Schéma",
  "description": "Format canonique des preuves et auto-évaluations destinées à être lues par une IAG sous pilotage humain pour aider au remplissage du formulaire DDRS officiel.",
  "type": "object",
  "required": ["etablissement", "referentiel", "perimetre", "fenetre_audit", "preuves", "evaluations"],
  "properties": {
    "etablissement": { "type": "string", "examples": ["IMT Atlantique"] },
    "referentiel": {
      "type": "object",
      "required": ["nom", "version"],
      "properties": {
        "nom": { "type": "string", "examples": ["DDRS CGE-CPU"] },
        "version": { "type": "string", "examples": ["2021"] },
        "url": { "type": "string", "format": "uri" }
      }
    },
    "perimetre": {
      "type": "string",
      "description": "Périmètre couvert par cette extraction. Important : doit indiquer explicitement qu'il s'agit d'un sous-ensemble (volet biodiversité).",
      "examples": ["Contribution biodiversité — sous-ensemble des actions IMT Atlantique"]
    },
    "auteur": {
      "type": "object",
      "properties": {
        "nom": { "type": "string" },
        "qualite": { "type": "string" },
        "contact": { "type": "string", "format": "email" }
      }
    },
    "date_extraction_iso": { "type": "string", "format": "date" },
    "fenetre_audit": {
      "type": "object",
      "required": ["aus", "methode"],
      "properties": {
        "aus": {
          "type": "array",
          "items": { "type": "string", "pattern": "^[0-9]{4}-[0-9]{4}$" },
          "description": "Liste des années universitaires de la fenêtre d'audit, format AAAA-AAAA."
        },
        "methode": { "type": "string", "examples": ["3 dernières années universitaires complètes"] }
      }
    },
    "preuves": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["id", "titre", "type", "periodes"],
        "properties": {
          "id": { "type": "string", "pattern": "^pr-[0-9]{3,}$" },
          "titre": { "type": "string" },
          "description": { "type": "string" },
          "type": {
            "type": "string",
            "enum": ["convention", "label", "plan_gestion", "inventaire", "publication", "action_pedagogique", "atelier", "cartographie", "amenagement", "communication", "gouvernance"]
          },
          "periodes": {
            "type": "array",
            "items": { "type": "string", "pattern": "^[0-9]{4}-[0-9]{4}$" },
            "description": "Une ou plusieurs années universitaires AAAA-AAAA. Septembre N → août N+1."
          },
          "date_iso": { "type": "string", "format": "date" },
          "permanent": { "type": "boolean", "description": "true si l'action se poursuit en continu depuis date_iso." },
          "campus": {
            "type": "array",
            "items": { "type": "string", "enum": ["Brest", "Nantes", "Rennes"] }
          },
          "partenaires": { "type": "array", "items": { "type": "string" } },
          "odd": {
            "type": "array",
            "items": { "type": "integer", "minimum": 1, "maximum": 17 }
          },
          "url_preuve_pdf": { "type": "string", "format": "uri-reference" },
          "url_chronologie": { "type": "string", "format": "uri-reference" },
          "url_externe": { "type": "string", "format": "uri" }
        }
      }
    },
    "evaluations": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["variable_id", "variable_libelle", "axe", "type", "niveau_atteint", "preuves_associees"],
        "properties": {
          "variable_id": { "type": "string", "pattern": "^[1-5](\\.[0-9]+)*$" },
          "variable_libelle": { "type": "string" },
          "axe": { "type": "string", "enum": ["1", "2", "3", "4", "5"] },
          "type": { "type": "string", "enum": ["S", "O"], "description": "S=Stratégique, O=Opérationnel" },
          "odd_associes": { "type": "array", "items": { "type": "string" } },
          "niveau_atteint": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5,
            "description": "1=Prise de conscience, 2=Initiation, 3=Conformité, 4=Maîtrise, 5=Exemplarité"
          },
          "niveau_libelle": { "type": "string" },
          "justification": { "type": "string" },
          "attribue_par": { "type": "string" },
          "preuves_associees": {
            "type": "array",
            "items": { "type": "string", "pattern": "^pr-[0-9]{3,}$" }
          }
        }
      }
    }
  }
}
