{
  "formato": 1,
  "titolo": "Pacchetto dati aperto — Piattaforma Sport Operations",
  "entita": [
    {
      "nome": "societa",
      "titolo": "La società",
      "singolo": true,
      "descrizione": "Chi è il titolare dei dati: ragione sociale, codici, sport e federazioni.",
      "campi": [
        {
          "nome": "ragione_sociale",
          "tipo": "testo",
          "descrizione": "Denominazione legale."
        },
        {
          "nome": "codice_fiscale",
          "tipo": "testo",
          "descrizione": "Codice fiscale della società."
        },
        {
          "nome": "partita_iva",
          "tipo": "testo",
          "descrizione": "Partita IVA, se c'è."
        },
        {
          "nome": "indirizzo",
          "tipo": "testo",
          "descrizione": "Sede."
        },
        {
          "nome": "sport",
          "tipo": "testo",
          "descrizione": "Lo sport praticato (es. calcio, pallavolo)."
        },
        {
          "nome": "federazioni",
          "tipo": "testo",
          "descrizione": "Federazioni ed enti di affiliazione, separati da virgola."
        },
        {
          "nome": "sito_web",
          "tipo": "testo",
          "descrizione": "Sito della società."
        }
      ]
    },
    {
      "nome": "stagioni",
      "titolo": "Stagioni sportive",
      "descrizione": "Le stagioni configurate. Le altre entità citano la stagione per nome (es. «2026-2027»).",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo."
        },
        {
          "nome": "nome",
          "tipo": "testo",
          "descrizione": "Nome della stagione, es. «2026-2027». È la chiave usata dalle altre entità.",
          "chiave": true
        },
        {
          "nome": "inizio",
          "tipo": "data",
          "descrizione": "Primo giorno."
        },
        {
          "nome": "fine",
          "tipo": "data",
          "descrizione": "Ultimo giorno."
        },
        {
          "nome": "attiva",
          "tipo": "booleano",
          "descrizione": "Stagione in corso."
        }
      ]
    },
    {
      "nome": "categorie",
      "titolo": "Categorie",
      "descrizione": "Le categorie per età della società (Pulcini, Under 14, Prima squadra…).",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo."
        },
        {
          "nome": "nome",
          "tipo": "testo",
          "descrizione": "Nome della categoria."
        },
        {
          "nome": "descrizione",
          "tipo": "testo",
          "descrizione": "Descrizione."
        },
        {
          "nome": "eta_min",
          "tipo": "intero",
          "descrizione": "Età minima."
        },
        {
          "nome": "eta_max",
          "tipo": "intero",
          "descrizione": "Età massima."
        },
        {
          "nome": "attiva",
          "tipo": "booleano",
          "descrizione": "In uso."
        }
      ]
    },
    {
      "nome": "atleti",
      "titolo": "Atleti",
      "descrizione": "L'anagrafica degli atleti con tesseramento, certificato medico e consensi. Il codice fiscale è la chiave naturale per riconoscere la stessa persona in un altro sistema.",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo nella piattaforma. Stabile dentro la stessa società; non ha significato altrove."
        },
        {
          "nome": "nome",
          "tipo": "testo",
          "descrizione": "Nome."
        },
        {
          "nome": "cognome",
          "tipo": "testo",
          "descrizione": "Cognome."
        },
        {
          "nome": "email",
          "tipo": "testo",
          "descrizione": "Indirizzo email (può mancare)."
        },
        {
          "nome": "telefono",
          "tipo": "testo",
          "descrizione": "Numero di telefono (può mancare)."
        },
        {
          "nome": "codice_fiscale",
          "tipo": "testo",
          "descrizione": "Codice fiscale: la chiave naturale della persona.",
          "chiave": true
        },
        {
          "nome": "data_nascita",
          "tipo": "data",
          "descrizione": "Data di nascita."
        },
        {
          "nome": "luogo_nascita",
          "tipo": "testo",
          "descrizione": "Comune di nascita."
        },
        {
          "nome": "provincia_nascita",
          "tipo": "testo",
          "descrizione": "Provincia di nascita (sigla)."
        },
        {
          "nome": "nazionalita",
          "tipo": "testo",
          "descrizione": "Nazionalità."
        },
        {
          "nome": "sesso",
          "tipo": "testo",
          "descrizione": "M o F.",
          "valori": [
            "M",
            "F"
          ]
        },
        {
          "nome": "indirizzo",
          "tipo": "testo",
          "descrizione": "Indirizzo di residenza."
        },
        {
          "nome": "cap",
          "tipo": "testo",
          "descrizione": "CAP."
        },
        {
          "nome": "citta",
          "tipo": "testo",
          "descrizione": "Comune di residenza."
        },
        {
          "nome": "provincia",
          "tipo": "testo",
          "descrizione": "Provincia di residenza (sigla)."
        },
        {
          "nome": "categoria_id",
          "tipo": "intero",
          "descrizione": "Categoria assegnata (→ categorie.id)."
        },
        {
          "nome": "categoria",
          "tipo": "testo",
          "descrizione": "Nome della categoria, per leggere senza incrociare."
        },
        {
          "nome": "numero_tessera",
          "tipo": "testo",
          "descrizione": "Numero di tessera federale."
        },
        {
          "nome": "matricola",
          "tipo": "testo",
          "descrizione": "Matricola federale."
        },
        {
          "nome": "tessera_dal",
          "tipo": "data",
          "descrizione": "Data del tesseramento."
        },
        {
          "nome": "tessera_scadenza",
          "tipo": "data",
          "descrizione": "Scadenza della tessera."
        },
        {
          "nome": "certificato_medico_scadenza",
          "tipo": "data",
          "descrizione": "Scadenza del certificato medico."
        },
        {
          "nome": "in_prestito_da",
          "tipo": "testo",
          "descrizione": "Società di provenienza, se in prestito."
        },
        {
          "nome": "attivo",
          "tipo": "booleano",
          "descrizione": "Atleta attivo (non archiviato)."
        },
        {
          "nome": "archiviato_il",
          "tipo": "data_ora",
          "descrizione": "Quando è stato archiviato."
        },
        {
          "nome": "note",
          "tipo": "testo",
          "descrizione": "Note della segreteria."
        },
        {
          "nome": "consenso_termini_il",
          "tipo": "data_ora",
          "descrizione": "Quando ha accettato i termini d'uso (vuoto = mai)."
        },
        {
          "nome": "consenso_privacy_sanitaria_il",
          "tipo": "data_ora",
          "descrizione": "Quando ha dato il consenso al trattamento dei dati sanitari."
        },
        {
          "nome": "consenso_marketing",
          "tipo": "booleano",
          "descrizione": "Consenso alle comunicazioni promozionali."
        }
      ]
    },
    {
      "nome": "famiglie",
      "titolo": "Genitori e tutori",
      "descrizione": "Le persone che rispondono per gli atleti minorenni. Il legame con gli atleti è in «legami_familiari».",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo nella piattaforma. Stabile dentro la stessa società; non ha significato altrove."
        },
        {
          "nome": "nome",
          "tipo": "testo",
          "descrizione": "Nome."
        },
        {
          "nome": "cognome",
          "tipo": "testo",
          "descrizione": "Cognome."
        },
        {
          "nome": "email",
          "tipo": "testo",
          "descrizione": "Indirizzo email (può mancare)."
        },
        {
          "nome": "telefono",
          "tipo": "testo",
          "descrizione": "Numero di telefono (può mancare)."
        },
        {
          "nome": "codice_fiscale",
          "tipo": "testo",
          "descrizione": "Codice fiscale.",
          "chiave": true
        },
        {
          "nome": "indirizzo",
          "tipo": "testo",
          "descrizione": "Indirizzo."
        },
        {
          "nome": "citta",
          "tipo": "testo",
          "descrizione": "Comune."
        },
        {
          "nome": "provincia",
          "tipo": "testo",
          "descrizione": "Provincia (sigla)."
        },
        {
          "nome": "cap",
          "tipo": "testo",
          "descrizione": "CAP."
        },
        {
          "nome": "attivo",
          "tipo": "booleano",
          "descrizione": "Attivo."
        },
        {
          "nome": "consenso_termini_il",
          "tipo": "data_ora",
          "descrizione": "Quando ha accettato i termini d'uso (vuoto = mai)."
        },
        {
          "nome": "consenso_privacy_sanitaria_il",
          "tipo": "data_ora",
          "descrizione": "Quando ha dato il consenso al trattamento dei dati sanitari."
        },
        {
          "nome": "consenso_marketing",
          "tipo": "booleano",
          "descrizione": "Consenso alle comunicazioni promozionali."
        }
      ]
    },
    {
      "nome": "legami_familiari",
      "titolo": "Legami familiari",
      "descrizione": "Chi è genitore o tutore di chi.",
      "campi": [
        {
          "nome": "genitore_id",
          "tipo": "intero",
          "descrizione": "→ famiglie.id"
        },
        {
          "nome": "atleta_id",
          "tipo": "intero",
          "descrizione": "→ atleti.id"
        },
        {
          "nome": "relazione",
          "tipo": "testo",
          "descrizione": "PADRE, MADRE, TUTORE, NONNO, NONNA, ZIO, ZIA, ALTRO.",
          "valori": [
            "PADRE",
            "MADRE",
            "TUTORE",
            "NONNO",
            "NONNA",
            "ZIO",
            "ZIA",
            "ALTRO"
          ]
        },
        {
          "nome": "contatto_principale",
          "tipo": "booleano",
          "descrizione": "È il contatto principale."
        },
        {
          "nome": "puo_ritirare",
          "tipo": "booleano",
          "descrizione": "Può ritirare l'atleta."
        },
        {
          "nome": "contatto_emergenza",
          "tipo": "booleano",
          "descrizione": "Contatto per le emergenze."
        },
        {
          "nome": "attivo",
          "tipo": "booleano",
          "descrizione": "Legame in essere."
        }
      ]
    },
    {
      "nome": "allenatori",
      "titolo": "Allenatori",
      "descrizione": "Lo staff tecnico.",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo nella piattaforma. Stabile dentro la stessa società; non ha significato altrove."
        },
        {
          "nome": "nome",
          "tipo": "testo",
          "descrizione": "Nome."
        },
        {
          "nome": "cognome",
          "tipo": "testo",
          "descrizione": "Cognome."
        },
        {
          "nome": "email",
          "tipo": "testo",
          "descrizione": "Indirizzo email (può mancare)."
        },
        {
          "nome": "telefono",
          "tipo": "testo",
          "descrizione": "Numero di telefono (può mancare)."
        },
        {
          "nome": "patentino",
          "tipo": "testo",
          "descrizione": "Qualifica o patentino."
        },
        {
          "nome": "specializzazione",
          "tipo": "testo",
          "descrizione": "Specializzazione."
        },
        {
          "nome": "attivo",
          "tipo": "booleano",
          "descrizione": "Attivo."
        }
      ]
    },
    {
      "nome": "dirigenti",
      "titolo": "Dirigenti e accompagnatori",
      "descrizione": "Lo staff dirigenziale.",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo nella piattaforma. Stabile dentro la stessa società; non ha significato altrove."
        },
        {
          "nome": "nome",
          "tipo": "testo",
          "descrizione": "Nome."
        },
        {
          "nome": "cognome",
          "tipo": "testo",
          "descrizione": "Cognome."
        },
        {
          "nome": "email",
          "tipo": "testo",
          "descrizione": "Indirizzo email (può mancare)."
        },
        {
          "nome": "telefono",
          "tipo": "testo",
          "descrizione": "Numero di telefono (può mancare)."
        },
        {
          "nome": "ruolo",
          "tipo": "testo",
          "descrizione": "Ruolo in società."
        },
        {
          "nome": "attivo",
          "tipo": "booleano",
          "descrizione": "Attivo."
        }
      ]
    },
    {
      "nome": "squadre",
      "titolo": "Squadre",
      "descrizione": "Le squadre della società, una per stagione.",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo."
        },
        {
          "nome": "nome",
          "tipo": "testo",
          "descrizione": "Nome della squadra."
        },
        {
          "nome": "categoria",
          "tipo": "testo",
          "descrizione": "Categoria (nome)."
        },
        {
          "nome": "stagione",
          "tipo": "testo",
          "descrizione": "Stagione (→ stagioni.nome)."
        },
        {
          "nome": "attiva",
          "tipo": "booleano",
          "descrizione": "Attiva."
        }
      ]
    },
    {
      "nome": "rose",
      "titolo": "Rose",
      "descrizione": "Chi gioca in quale squadra, con ruolo e numero di maglia.",
      "campi": [
        {
          "nome": "squadra_id",
          "tipo": "intero",
          "descrizione": "→ squadre.id"
        },
        {
          "nome": "atleta_id",
          "tipo": "intero",
          "descrizione": "→ atleti.id"
        },
        {
          "nome": "ruolo",
          "tipo": "testo",
          "descrizione": "Codice del ruolo in campo secondo lo sport (es. portiere, difensore, centrocampista, attaccante)."
        },
        {
          "nome": "posizione",
          "tipo": "testo",
          "descrizione": "Posizione, se indicata."
        },
        {
          "nome": "numero_maglia",
          "tipo": "intero",
          "descrizione": "Numero di maglia."
        },
        {
          "nome": "attivo",
          "tipo": "booleano",
          "descrizione": "In rosa."
        }
      ]
    },
    {
      "nome": "staff_squadre",
      "titolo": "Staff delle squadre",
      "descrizione": "Chi segue quale squadra.",
      "campi": [
        {
          "nome": "squadra_id",
          "tipo": "intero",
          "descrizione": "→ squadre.id"
        },
        {
          "nome": "persona_id",
          "tipo": "intero",
          "descrizione": "→ allenatori.id oppure dirigenti.id, secondo «tipo»."
        },
        {
          "nome": "tipo",
          "tipo": "testo",
          "descrizione": "COACH = allenatore, DIRECTOR = dirigente.",
          "valori": [
            "COACH",
            "DIRECTOR"
          ]
        },
        {
          "nome": "ruolo",
          "tipo": "testo",
          "descrizione": "Ruolo nello staff (primo allenatore, preparatore…)."
        },
        {
          "nome": "attivo",
          "tipo": "booleano",
          "descrizione": "In carica."
        }
      ]
    },
    {
      "nome": "tesseramenti",
      "titolo": "Tesseramenti per stagione",
      "descrizione": "Per ogni atleta e stagione, se è un nuovo tesseramento o un rinnovo.",
      "campi": [
        {
          "nome": "atleta_id",
          "tipo": "intero",
          "descrizione": "→ atleti.id"
        },
        {
          "nome": "stagione",
          "tipo": "testo",
          "descrizione": "→ stagioni.nome"
        },
        {
          "nome": "tipo",
          "tipo": "testo",
          "descrizione": "NUOVO o RINNOVO."
        }
      ]
    },
    {
      "nome": "documenti",
      "titolo": "Documenti caricati",
      "descrizione": "I file conservati per atleta o squadra (certificati, moduli). Il file è in storage/documents/ dentro l'archivio.",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo."
        },
        {
          "nome": "atleta_id",
          "tipo": "intero",
          "descrizione": "→ atleti.id (vuoto se documento di squadra)."
        },
        {
          "nome": "squadra_id",
          "tipo": "intero",
          "descrizione": "→ squadre.id (vuoto se di atleta)."
        },
        {
          "nome": "nome",
          "tipo": "testo",
          "descrizione": "Nome dato al documento."
        },
        {
          "nome": "tipo",
          "tipo": "testo",
          "descrizione": "Tipo (es. certificato medico)."
        },
        {
          "nome": "file",
          "tipo": "testo",
          "descrizione": "Nome del file in storage/documents/."
        },
        {
          "nome": "scadenza",
          "tipo": "data",
          "descrizione": "Scadenza del documento."
        },
        {
          "nome": "caricato_il",
          "tipo": "data_ora",
          "descrizione": "Quando è stato caricato."
        }
      ]
    },
    {
      "nome": "adempimenti",
      "titolo": "Adempimenti d'iscrizione",
      "descrizione": "Per ogni requisito d'iscrizione (documento da caricare, consenso, firma): cosa ha fatto la famiglia e cosa ha verificato la segreteria.",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo."
        },
        {
          "nome": "atleta_id",
          "tipo": "intero",
          "descrizione": "→ atleti.id"
        },
        {
          "nome": "stagione",
          "tipo": "testo",
          "descrizione": "→ stagioni.nome"
        },
        {
          "nome": "requisito",
          "tipo": "testo",
          "descrizione": "Nome del requisito (es. «Certificato medico agonistico»)."
        },
        {
          "nome": "modalita",
          "tipo": "testo",
          "descrizione": "Come si adempie: caricamento, presa visione, consenso, firma."
        },
        {
          "nome": "stato",
          "tipo": "testo",
          "descrizione": "Stato dell'adempimento nella piattaforma."
        },
        {
          "nome": "esito",
          "tipo": "testo",
          "descrizione": "Per i consensi: la risposta data."
        },
        {
          "nome": "scadenza",
          "tipo": "data",
          "descrizione": "Scadenza dichiarata."
        },
        {
          "nome": "file",
          "tipo": "testo",
          "descrizione": "Nome del file caricato, se c'è (storage/preregistrations/ o storage/documents/)."
        },
        {
          "nome": "verifica",
          "tipo": "testo",
          "descrizione": "Esito della verifica della segreteria."
        },
        {
          "nome": "verificato_il",
          "tipo": "data_ora",
          "descrizione": "Quando è stato verificato."
        },
        {
          "nome": "confermato_il",
          "tipo": "data_ora",
          "descrizione": "Quando la famiglia ha confermato o firmato."
        }
      ]
    },
    {
      "nome": "voci_pagamento",
      "titolo": "Voci di pagamento",
      "descrizione": "Cosa la società chiede alle famiglie: quote, tesseramento, kit.",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo."
        },
        {
          "nome": "nome",
          "tipo": "testo",
          "descrizione": "Nome della voce."
        },
        {
          "nome": "descrizione",
          "tipo": "testo",
          "descrizione": "Descrizione."
        },
        {
          "nome": "importo_cent",
          "tipo": "centesimi",
          "descrizione": "Importo in centesimi di euro."
        },
        {
          "nome": "ricorrenza",
          "tipo": "testo",
          "descrizione": "annuale, mensile, una tantum…"
        },
        {
          "nome": "tesseramento",
          "tipo": "booleano",
          "descrizione": "È la quota di tesseramento."
        },
        {
          "nome": "stagione",
          "tipo": "testo",
          "descrizione": "→ stagioni.nome"
        },
        {
          "nome": "attiva",
          "tipo": "booleano",
          "descrizione": "In uso."
        }
      ]
    },
    {
      "nome": "pagamenti",
      "titolo": "Addebiti e incassi",
      "descrizione": "Ogni riga è una somma dovuta da una famiglia, con il suo stato e — se incassata — quando e come.",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo."
        },
        {
          "nome": "voce_id",
          "tipo": "intero",
          "descrizione": "→ voci_pagamento.id"
        },
        {
          "nome": "atleta_id",
          "tipo": "intero",
          "descrizione": "→ atleti.id"
        },
        {
          "nome": "genitore_id",
          "tipo": "intero",
          "descrizione": "→ famiglie.id (chi paga, se indicato)."
        },
        {
          "nome": "importo_cent",
          "tipo": "centesimi",
          "descrizione": "Importo dovuto in centesimi."
        },
        {
          "nome": "scadenza",
          "tipo": "data",
          "descrizione": "Data di scadenza."
        },
        {
          "nome": "periodo",
          "tipo": "testo",
          "descrizione": "Periodo di riferimento (es. mese)."
        },
        {
          "nome": "stato",
          "tipo": "testo",
          "descrizione": "pending = da pagare, paid = incassato, cancelled = annullato.",
          "valori": [
            "pending",
            "paid",
            "cancelled"
          ]
        },
        {
          "nome": "canale",
          "tipo": "testo",
          "descrizione": "Come è stato incassato (contanti, bonifico, online…)."
        },
        {
          "nome": "pagato_il",
          "tipo": "data_ora",
          "descrizione": "Quando."
        },
        {
          "nome": "ricevuta_numero",
          "tipo": "testo",
          "descrizione": "Numero della ricevuta emessa."
        },
        {
          "nome": "note",
          "tipo": "testo",
          "descrizione": "Note."
        }
      ]
    },
    {
      "nome": "strutture",
      "titolo": "Strutture sportive",
      "descrizione": "I luoghi di gioco e allenamento, propri e in trasferta.",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo."
        },
        {
          "nome": "nome",
          "tipo": "testo",
          "descrizione": "Nome."
        },
        {
          "nome": "indirizzo",
          "tipo": "testo",
          "descrizione": "Indirizzo."
        },
        {
          "nome": "citta",
          "tipo": "testo",
          "descrizione": "Comune."
        },
        {
          "nome": "provincia",
          "tipo": "testo",
          "descrizione": "Provincia."
        },
        {
          "nome": "cap",
          "tipo": "testo",
          "descrizione": "CAP."
        },
        {
          "nome": "tipo",
          "tipo": "testo",
          "descrizione": "Tipo di struttura."
        },
        {
          "nome": "attiva",
          "tipo": "booleano",
          "descrizione": "In uso."
        }
      ]
    },
    {
      "nome": "squadre_avversarie",
      "titolo": "Squadre avversarie",
      "descrizione": "Le società contro cui si gioca.",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo."
        },
        {
          "nome": "nome",
          "tipo": "testo",
          "descrizione": "Nome."
        },
        {
          "nome": "anno",
          "tipo": "intero",
          "descrizione": "Annata/categoria."
        },
        {
          "nome": "citta",
          "tipo": "testo",
          "descrizione": "Città."
        }
      ]
    },
    {
      "nome": "campionati",
      "titolo": "Campionati",
      "descrizione": "I campionati a cui la società è iscritta.",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo."
        },
        {
          "nome": "nome",
          "tipo": "testo",
          "descrizione": "Nome."
        },
        {
          "nome": "stagione",
          "tipo": "testo",
          "descrizione": "→ stagioni.nome"
        },
        {
          "nome": "categoria",
          "tipo": "testo",
          "descrizione": "Categoria."
        },
        {
          "nome": "livello",
          "tipo": "testo",
          "descrizione": "Livello (regionale, provinciale…)."
        },
        {
          "nome": "girone",
          "tipo": "testo",
          "descrizione": "Girone."
        },
        {
          "nome": "formato",
          "tipo": "testo",
          "descrizione": "Formato di gioco."
        }
      ]
    },
    {
      "nome": "partite",
      "titolo": "Partite",
      "descrizione": "Amichevoli, tornei e campionato, con il risultato. La squadra della società è «squadra_casa_id» o «squadra_trasferta_id» (o entrambe, in un'amichevole interna).",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo."
        },
        {
          "nome": "tipo",
          "tipo": "testo",
          "descrizione": "amichevole, interna, torneo, campionato.",
          "valori": [
            "amichevole",
            "interna",
            "torneo",
            "campionato"
          ]
        },
        {
          "nome": "data_ora",
          "tipo": "data_ora",
          "descrizione": "Calcio d'inizio."
        },
        {
          "nome": "ritrovo_ora",
          "tipo": "data_ora",
          "descrizione": "Orario di ritrovo."
        },
        {
          "nome": "squadra_casa_id",
          "tipo": "intero",
          "descrizione": "→ squadre.id, se la nostra squadra gioca in casa."
        },
        {
          "nome": "squadra_trasferta_id",
          "tipo": "intero",
          "descrizione": "→ squadre.id, se la nostra squadra gioca in trasferta."
        },
        {
          "nome": "avversaria_id",
          "tipo": "intero",
          "descrizione": "→ squadre_avversarie.id"
        },
        {
          "nome": "avversaria_nome",
          "tipo": "testo",
          "descrizione": "Nome dell'avversaria, per leggere senza incrociare."
        },
        {
          "nome": "campionato_id",
          "tipo": "intero",
          "descrizione": "→ campionati.id"
        },
        {
          "nome": "struttura_id",
          "tipo": "intero",
          "descrizione": "→ strutture.id"
        },
        {
          "nome": "stato",
          "tipo": "testo",
          "descrizione": "Stato della partita (programmata, in corso, conclusa…)."
        },
        {
          "nome": "risultato_casa",
          "tipo": "intero",
          "descrizione": "Gol/punti della squadra di casa."
        },
        {
          "nome": "risultato_trasferta",
          "tipo": "intero",
          "descrizione": "Gol/punti della squadra in trasferta."
        },
        {
          "nome": "note",
          "tipo": "testo",
          "descrizione": "Note."
        }
      ]
    },
    {
      "nome": "convocazioni",
      "titolo": "Convocazioni",
      "descrizione": "Chi è stato chiamato per ogni partita e cosa ha risposto.",
      "campi": [
        {
          "nome": "partita_id",
          "tipo": "intero",
          "descrizione": "→ partite.id"
        },
        {
          "nome": "atleta_id",
          "tipo": "intero",
          "descrizione": "→ atleti.id"
        },
        {
          "nome": "convocato",
          "tipo": "booleano",
          "descrizione": "È convocato."
        },
        {
          "nome": "disponibilita",
          "tipo": "testo",
          "descrizione": "SI, NO, DA_CONFERMARE.",
          "valori": [
            "SI",
            "NO",
            "DA_CONFERMARE"
          ]
        },
        {
          "nome": "numero_maglia",
          "tipo": "intero",
          "descrizione": "Numero di maglia."
        },
        {
          "nome": "ruolo",
          "tipo": "testo",
          "descrizione": "Ruolo previsto."
        },
        {
          "nome": "note",
          "tipo": "testo",
          "descrizione": "Note."
        }
      ]
    },
    {
      "nome": "allenamenti",
      "titolo": "Allenamenti",
      "descrizione": "Le sedute di allenamento, squadra per squadra.",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo."
        },
        {
          "nome": "squadra_id",
          "tipo": "intero",
          "descrizione": "→ squadre.id"
        },
        {
          "nome": "titolo",
          "tipo": "testo",
          "descrizione": "Titolo."
        },
        {
          "nome": "data_ora",
          "tipo": "data_ora",
          "descrizione": "Inizio."
        },
        {
          "nome": "durata_min",
          "tipo": "intero",
          "descrizione": "Durata in minuti."
        },
        {
          "nome": "luogo",
          "tipo": "testo",
          "descrizione": "Luogo."
        },
        {
          "nome": "allenatore_id",
          "tipo": "intero",
          "descrizione": "→ allenatori.id"
        },
        {
          "nome": "stato",
          "tipo": "testo",
          "descrizione": "scheduled, completed, cancelled.",
          "valori": [
            "scheduled",
            "completed",
            "cancelled"
          ]
        },
        {
          "nome": "note",
          "tipo": "testo",
          "descrizione": "Note."
        }
      ]
    },
    {
      "nome": "presenze_allenamenti",
      "titolo": "Presenze agli allenamenti",
      "descrizione": "Chi c'era a ogni seduta.",
      "campi": [
        {
          "nome": "allenamento_id",
          "tipo": "intero",
          "descrizione": "→ allenamenti.id"
        },
        {
          "nome": "atleta_id",
          "tipo": "intero",
          "descrizione": "→ atleti.id"
        },
        {
          "nome": "stato",
          "tipo": "testo",
          "descrizione": "present, absent, late, excused.",
          "valori": [
            "present",
            "absent",
            "late",
            "excused"
          ]
        },
        {
          "nome": "note",
          "tipo": "testo",
          "descrizione": "Note."
        }
      ]
    },
    {
      "nome": "conti",
      "titolo": "Piano dei conti",
      "descrizione": "Il piano dei conti della tesoreria (schema CNDCEC/FNC per gli enti sportivi).",
      "campi": [
        {
          "nome": "codice",
          "tipo": "testo",
          "descrizione": "Codice del conto.",
          "chiave": true
        },
        {
          "nome": "nome",
          "tipo": "testo",
          "descrizione": "Nome ufficiale."
        },
        {
          "nome": "etichetta",
          "tipo": "testo",
          "descrizione": "Etichetta usata dalla società."
        },
        {
          "nome": "sezione",
          "tipo": "testo",
          "descrizione": "Sezione del rendiconto."
        },
        {
          "nome": "verso",
          "tipo": "testo",
          "descrizione": "entrata o uscita."
        },
        {
          "nome": "natura",
          "tipo": "testo",
          "descrizione": "Natura (istituzionale, commerciale…)."
        },
        {
          "nome": "attivo",
          "tipo": "booleano",
          "descrizione": "In uso."
        }
      ]
    },
    {
      "nome": "casse",
      "titolo": "Casse e conti correnti",
      "descrizione": "Dove stanno i soldi.",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo."
        },
        {
          "nome": "nome",
          "tipo": "testo",
          "descrizione": "Nome."
        },
        {
          "nome": "tipo",
          "tipo": "testo",
          "descrizione": "Tipo (cassa contanti, conto corrente…)."
        },
        {
          "nome": "iban",
          "tipo": "testo",
          "descrizione": "IBAN, se conto corrente."
        },
        {
          "nome": "saldo_apertura_cent",
          "tipo": "centesimi",
          "descrizione": "Saldo iniziale in centesimi."
        },
        {
          "nome": "data_apertura",
          "tipo": "data",
          "descrizione": "Data del saldo iniziale."
        },
        {
          "nome": "attiva",
          "tipo": "booleano",
          "descrizione": "In uso."
        }
      ]
    },
    {
      "nome": "prima_nota",
      "titolo": "Prima nota",
      "descrizione": "Tutti i movimenti di cassa registrati in tesoreria.",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo."
        },
        {
          "nome": "data",
          "tipo": "data",
          "descrizione": "Data del movimento."
        },
        {
          "nome": "verso",
          "tipo": "testo",
          "descrizione": "entrata o uscita."
        },
        {
          "nome": "importo_cent",
          "tipo": "centesimi",
          "descrizione": "Importo in centesimi."
        },
        {
          "nome": "conto_codice",
          "tipo": "testo",
          "descrizione": "→ conti.codice"
        },
        {
          "nome": "conto_nome",
          "tipo": "testo",
          "descrizione": "Nome del conto, per leggere senza incrociare."
        },
        {
          "nome": "cassa",
          "tipo": "testo",
          "descrizione": "Nome della cassa o del conto corrente."
        },
        {
          "nome": "controparte",
          "tipo": "testo",
          "descrizione": "Chi ha pagato o è stato pagato."
        },
        {
          "nome": "descrizione",
          "tipo": "testo",
          "descrizione": "Descrizione."
        },
        {
          "nome": "doc_tipo",
          "tipo": "testo",
          "descrizione": "Tipo di documento (ricevuta, fattura…)."
        },
        {
          "nome": "doc_numero",
          "tipo": "testo",
          "descrizione": "Numero del documento."
        },
        {
          "nome": "doc_data",
          "tipo": "data",
          "descrizione": "Data del documento."
        },
        {
          "nome": "stagione",
          "tipo": "testo",
          "descrizione": "→ stagioni.nome"
        },
        {
          "nome": "natura",
          "tipo": "testo",
          "descrizione": "Natura (istituzionale, commerciale…)."
        },
        {
          "nome": "iva_percent",
          "tipo": "intero",
          "descrizione": "Aliquota IVA, se c'è."
        },
        {
          "nome": "iva_cent",
          "tipo": "centesimi",
          "descrizione": "IVA in centesimi."
        },
        {
          "nome": "allegato",
          "tipo": "testo",
          "descrizione": "Nome del file allegato in storage/accounting/, se c'è."
        }
      ]
    },
    {
      "nome": "eventi",
      "titolo": "Eventi della società",
      "descrizione": "Assemblee, feste, riunioni e ogni appuntamento che non sia una partita o un allenamento.",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo nella piattaforma."
        },
        {
          "nome": "titolo",
          "tipo": "testo",
          "descrizione": "Titolo dell'evento."
        },
        {
          "nome": "descrizione",
          "tipo": "testo",
          "descrizione": "Descrizione libera (può mancare)."
        },
        {
          "nome": "data",
          "tipo": "data",
          "descrizione": "Giorno dell'evento."
        },
        {
          "nome": "ora",
          "tipo": "testo",
          "descrizione": "Ora di inizio, se indicata (HH:MM)."
        },
        {
          "nome": "luogo",
          "tipo": "testo",
          "descrizione": "Dove si tiene."
        },
        {
          "nome": "squadra_id",
          "tipo": "intero",
          "descrizione": "Squadra a cui è rivolto; vuoto se è di tutta la società."
        },
        {
          "nome": "tipo",
          "tipo": "testo",
          "descrizione": "Tipo dichiarato dalla società."
        },
        {
          "nome": "visibilita",
          "tipo": "testo",
          "descrizione": "public = visibile a tutti nella società; internal = solo allo staff."
        }
      ]
    },
    {
      "nome": "bacheca",
      "titolo": "Avvisi in bacheca",
      "descrizione": "Gli avvisi pubblicati alla società o a una squadra. Il testo è quello che le famiglie hanno letto.",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo nella piattaforma."
        },
        {
          "nome": "titolo",
          "tipo": "testo",
          "descrizione": "Titolo dell'avviso."
        },
        {
          "nome": "testo",
          "tipo": "testo",
          "descrizione": "Il testo dell'avviso."
        },
        {
          "nome": "squadra_id",
          "tipo": "intero",
          "descrizione": "Squadra destinataria; vuoto se a tutta la società."
        },
        {
          "nome": "autore",
          "tipo": "testo",
          "descrizione": "Chi lo ha scritto."
        },
        {
          "nome": "pubblicato_il",
          "tipo": "data_ora",
          "descrizione": "Quando è stato pubblicato."
        },
        {
          "nome": "ritirato_il",
          "tipo": "data_ora",
          "descrizione": "Quando è stato ritirato, se lo è stato."
        }
      ]
    },
    {
      "nome": "note_staff",
      "titolo": "Note dello staff",
      "descrizione": "Le note che allenatori e dirigenti hanno scritto su allenamenti e partite. Sono dati personali degli atleti citati: l'interessato ha diritto di conoscerne il contenuto. L'audio delle note vocali non è incluso (vedi esclusioni): qui c'è il testo.",
      "campi": [
        {
          "nome": "id",
          "tipo": "intero",
          "descrizione": "Identificativo nella piattaforma."
        },
        {
          "nome": "tipo_attivita",
          "tipo": "testo",
          "descrizione": "ALLENAMENTO o PARTITA."
        },
        {
          "nome": "attivita_id",
          "tipo": "intero",
          "descrizione": "Identificativo dell'allenamento o della partita."
        },
        {
          "nome": "squadra_id",
          "tipo": "intero",
          "descrizione": "Squadra dell'attività."
        },
        {
          "nome": "autore",
          "tipo": "testo",
          "descrizione": "Chi ha scritto la nota."
        },
        {
          "nome": "testo",
          "tipo": "testo",
          "descrizione": "Il testo della nota (per le note vocali, la trascrizione fatta sul dispositivo)."
        },
        {
          "nome": "ha_audio",
          "tipo": "booleano",
          "descrizione": "Vero se esisteva anche una registrazione audio, che non è inclusa nel pacchetto."
        },
        {
          "nome": "scritta_il",
          "tipo": "data_ora",
          "descrizione": "Quando è stata scritta."
        }
      ]
    },
    {
      "nome": "minutaggio",
      "titolo": "Minuti giocati",
      "descrizione": "Quanti minuti ha giocato ciascun atleta in ciascun tempo di ciascuna partita.",
      "campi": [
        {
          "nome": "partita_id",
          "tipo": "intero",
          "descrizione": "Identificativo della partita."
        },
        {
          "nome": "atleta_id",
          "tipo": "intero",
          "descrizione": "Identificativo dell'atleta."
        },
        {
          "nome": "tempo",
          "tipo": "intero",
          "descrizione": "Numero del tempo (1, 2, …)."
        },
        {
          "nome": "minuti_giocati",
          "tipo": "intero",
          "descrizione": "Minuti giocati in quel tempo."
        }
      ]
    }
  ],
  "esclusioni": [
    {
      "cosa": "I file allegati (certificati medici, documenti d'identità, moduli firmati)",
      "perche": "Sono file, non dati strutturati: stanno nel Backup del Cliente e si scaricano uno per uno dal fascicolo dell'atleta. Qui ci sono i riferimenti (chi, quale documento, quando, scadenza), non i file."
    },
    {
      "cosa": "Le fotografie di partite e allenamenti",
      "perche": "Si scaricano dalla galleria, per stagione e per squadra, con lo zip della stagione. Sono immagini di minori: restano dove i consensi le governano."
    },
    {
      "cosa": "L'audio delle note vocali dello staff",
      "perche": "Il testo della nota è incluso; la registrazione no, perché è la voce di una persona e pesa quanto tutto il resto insieme."
    },
    {
      "cosa": "Password, codici di accesso e gettoni",
      "perche": "Non sono leggibili nemmeno da noi, e portarli fuori non servirebbe a nulla se non a metterli in giro."
    },
    {
      "cosa": "Registri tecnici: accessi, invii di notifiche ed email, importazioni, sessioni",
      "perche": "Sono tracce di funzionamento della piattaforma, non dati della società. Il registro degli accessi si esporta da «I miei dati» per la propria persona."
    },
    {
      "cosa": "Le accettazioni dei documenti e i consensi firmati",
      "perche": "Sono prove con valore legale, legate alla versione del documento pubblicato: si esportano dalla pagina dei consensi (stato consensi, CSV), dove c'è anche la data e chi ha firmato."
    },
    {
      "cosa": "Le richieste di cancellazione dei dati e i loro esiti",
      "perche": "Sono l'esercizio di un diritto di una persona: escono dal percorso dell'oblio, non da un'esportazione generale."
    }
  ]
}