# GAB-036 · WarningBlock — « Avertissement doux »

**Archétype / renderer_key :** `text_cta` (cartographie) · **module :** EdTechPlayKit
**Critère validé :** changer le JSON change l'avertissement sans modifier le HTML. ✅ check.py 12/12.

## Pack (structure officielle par-GAB)
```
GAB-036/
  renderer.html            ← moteur WarningBlock (ne pas modifier par instance)
  instance.example.json    ← SOURCE DE VÉRITÉ (contenu réel, à plat)
  schema.contract.json     ← contrat de validation
  README-contract.md       ← ce fichier
```

## Champs requis (instance, à plat)
`gab_id` · `warning_block_id` · `title` · `body`

Optionnels : `icon` (défaut `⚠️`), `highlight` (note italique sous la carte, `null` = absent).

## Ce qui vient du JSON vs HTML
- **JSON** : icône, titre, corps textuel, note secondaire optionnelle.
- **HTML** : carte gold border-left, icône violette, layout flex, styles DS V2.

## Garde-fous (child_safety)
- **Ton doux** : avertissement non alarmiste, jamais rouge. Palette gold uniquement.
- **BLOCKED** si `title` ou `body` absents/vides.
- **Anti-invention** : aucun contenu pédagogique en dur dans le HTML.
- **highlight** optionnel : si `null`, la note secondaire n'est pas rendue.

## QA à vérifier
1. Modifier `title`/`body` → rendu change sans toucher au HTML (critère d'or).
2. `title` absent → BLOCKED propre.
3. `body` absent → BLOCKED propre.
4. `highlight` fourni → note secondaire affichée.
5. `highlight: null` → note secondaire absente.
6. Responsive 375/768/1024.

## Source
`INDEX-300-playkit-GAB-036-040-PLAYABLE.html` (stage `data-tpl="36"`, bloc `.warn-card`).
GAB-036 est un bloc lecture seule (XS · P0) : aucun handler JS interactif dans la source.

## external_refs / dependencies
- Fait partie du LOT `LOT-playkit-GAB-036-040`.
- Signature gold cohérente avec GAB-026 (NoteBlock neutre) et GAB-030 (ErrorBlock technique).
- `do_not_use_when` : erreur technique → GAB-030 ; note neutre → GAB-026 ; blocage dur → ENG-010.
