# GAB-200 · PathMapEmptyState — « État vide non trompeur »

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

## Pack (structure officielle par-GAB)
```
GAB-200/
  renderer.html            ← moteur empty state (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` · `empty_state_id` · `title` · `body` · `items[]{id,type,icon,label,description,action}`

Optionnels : `icon`, `primary_cta{label,action}`, `disclaimer`.

## Ce qui vient du JSON vs HTML
- **JSON** : titre, corps, icône principale, liste des options CTA (avec icône, libellé, description, action), disclaimer éditorial.
- **HTML** : mise en page carte, rendu options, feedback clic, layout, moteur de validation.

## Garde-fous (child_safety / pédagogie)
- **Anti-confusion** : le `disclaimer` distingue explicitement l'empty state légitime d'un bug technique — jamais masquer un vrai vide.
- **Anti-invention** : les actions (`action`) des items sont des identifiants de route transmis par le consommateur, pas définis dans le HTML.
- **BLOCKED** si `title` absent/vide, `body` absent/vide, ou `items` vide/absent.
- **Usage correct** : ce composant s'affiche UNIQUEMENT quand aucun parcours n'est commencé (vrai vide), pas pour masquer une erreur technique.

## Use when / Do not use
| ✅ use_when | ⛔ do_not_use_when |
|---|---|
| Aucun parcours commencé (vrai vide) | Erreur technique (→ ErrorFallbackBlock) |
| CTA premier pas (test ou matière) | Masquer un parcours en bug |
| Fallback non trompeur | Page vide sans CTA |

## QA à vérifier
1. Modifier `title`/`body` → rendu change sans toucher au HTML (critère d'or).
2. `items:[]` → BLOCKED propre.
3. `title:""` → BLOCKED propre.
4. Clic option test → feedback vert affiché.
5. Clic option subject → feedback vert affiché.
6. Responsive 375/768/1024 — aucun débordement.

## Source
`INDEX-300-pathmap-GAB-196-200-PLAYABLE.html` (stage `data-tpl="200"`, handler `peConfirm`).
