# Training Content Schema (v1.3) JSON-invoerformaat voor `generate_training.py`. Alle velden zijn verplicht tenzij aangegeven als optioneel (`?`). ```json { "titel": "string", "ondertitel": "string", "type": "toolbox | course | awareness", "duur": "string (bijv. '20 minuten')", "leerdoelen": ["string (max 5 items)"], "modules": [ { "titel": "string", "bullets": ["string (aanbevolen max 6 per slide)"], "tabel": { "headers": ["string"], "rows": [["string"]] }, "bronnen": ["string (verwijzing naar bronnenlijst-nr, bijv. '1')"] } ], "quiz": [ { "vraag": "string", "antwoorden": ["string (meestal 3-4 opties)"], "correct": 0 } ], "bronnenlijst": [ { "nr": 1, "titel": "string", "referentie": "string (artikel/wet/paragraaf)" } ], "brand": "neutral | lions | wintershall" } ``` ## Veldregels | Veld | Regel | |---|---| | `titel` | Kort, actief. Wordt titelfolie + slide-titels. | | `ondertitel` | Context/locatie, subtitel op titelfolie. | | `type` | Bepaalt label op titelfolie en menu-slide. | | `duur` | Vrij tekst (bijv. "20 minuten", "2 dagdelen"). | | `leerdoelen` | Max 5 items; elke module moet minstens 1 leerdoel raken. | | `modules[].bullets` | Max 6 regels per kaartjes-slide; generator pagineert bij meer. | | `modules[].tabel` | Optioneel (`?`). Wordt aparte tabelslide ná de kaartjes-slide. | | `quiz[].correct` | 0-based index in `antwoorden`. Correct antwoord krijgt ✓ (#00A859). | | `bronnenlijst` | Doorlopend genummerd; `nr` uniek, oplopend. | | `brand` | `neutral` (standaard), `lions`, `wintershall`. | ## Brand-gedrag | brand | Logo | Footer | |---|---|---| | `neutral` | jvg-logo-white-large.png prominent | "JvG Consultancy \| Safety • Governance • Advisory" | | `lions` | lions-logo.png prominent + JvG klein | "JvG Consultancy × KLANT" | | `wintershall` | **fout** als `assets/branding/clients/wintershall-logo.png` ontbreekt → `sys.exit('Wintershall-logo ontbreekt: plaats assets/branding/clients/wintershall-logo.png')` | "JvG Consultancy × KLANT" | ## Voorbeeld Zie `scripts/voorbeeld_werktijden_petrochemie.json` voor een volledig gevuld voorbeeld (Toolbox, 20 min, 4 modules, 3 quizvragen, 3 bronnen).