# GAB-077 · VisualMindMap — « Carte mentale »

**Archétype / renderer_key :** `text_cta` (cartographie) · **module :** EdTechVisualLearning
**Critère validé :** changer le JSON change la carte sans modifier le HTML.

## Pack (structure officielle par-GAB)
```
GAB-077/
  renderer.html            ← moteur carte mentale (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` · `mindmap_id` · `center_label` · `branches[]{id,emoji,branch_title,items}`

Optionnels : `title`, `primary_cta{label,action}`, `_note_dev`.

## Ce qui vient du JSON vs HTML
- **JSON** : libellé du concept central (`center_label`), chaque branche (emoji, titre, items), libellé du bouton CTA.
- **HTML** : grille 2×2, cercle central, coloration des 4 branches (b1–b4), layout, BLOCKED.

## Garde-fous (child_safety)
- **BLOCKED** si `center_label` absent ou `branches` vides.
- Grille 2×2 : max 4 branches. Un 5e élément est ignoré silencieusement.
- `center_label` court (≤ 30 car.) pour tenir dans le cercle SVG 110px.
- Emojis branches : viennent du JSON, jamais en dur dans le HTML.

## QA à vérifier
1. Modifier `center_label` → rendu change sans toucher au HTML. 2. `branches:[]` → BLOCKED propre. 3. Clic branche → panneau détail s'affiche avec emoji + titre + items. 4. Bouton CTA → message de mémorisation. 5. Responsive 375/768/1024 (1 col mobile / 2 col desktop).

## Usages (extrait source)
- **use_when** : organiser une notion en branches, vue d'ensemble radiale, mémorisation par organisation.
- **do_not_use_when** : flux linéaire cause→effet (→ GAB-076), chronologie (→ GAB-078), comparaison (→ GAB-079).

## external_refs / dependencies
Aucune dépendance externe hors-lot. Les GAB référencés en `do_not_use_when` (GAB-076, GAB-078, GAB-079) sont dans le même lot `LOT-visuallearning-GAB-074-080`.

## Source
`INDEX-300-visuallearning-GAB-074-080-PLAYABLE.html` (stage `data-tpl="77"`, bloc `<!-- GAB-077 -->`).
