# GAB-114 · MemoryMiniDeckInline — « Mini-deck intégré »

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

## Pack (structure officielle par-GAB)
```
GAB-114/
  renderer.html            ← moteur mini-deck inline (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
```

## Archétype

Mini-deck de cartes retournables (flip) intégré **inline** dans une page existante.
Positionné après une frise Visual ou une scène Story pour ancrer les notions clés.
Chaque carte : recto = emoji, verso = texte pédagogique.
Le CTA « Réviser ce mini-deck en entier » lance la révision complète et se désactive.

## Champs requis (instance, à plat)

`gab_id` · `deck_id` · `title` · `items[]{item_id, front_icon, back_text}` · `primary_cta{label, label_done, icon, icon_done, action}`

Optionnels : `subtitle`, `context_banner`, `_note_dev`.

## Ce qui vient du JSON vs HTML

- **JSON** : titre, sous-titre, bandeau contextuel, chaque carte (icon + texte verso), libellés du bouton (actif + désactivé).
- **HTML** : grille de cartes, logique de retournement, désactivation du CTA, layout, fallback BLOCKED.

## Garde-fous (child_safety)

- **Anti-invention** : `back_text` doit être extrait du contenu source, jamais halluciné. Un champ manquant → `"_TODO": "..."` dans l'instance.
- **BLOCKED** si `title` absent / `items` vides / `primary_cta.label` absent.
- **Responsive** : 4 colonnes desktop → 2 colonnes mobile (≤ 400 px).
- **Accessibilité** : chaque carte a un `aria-label` (back_text), navigation clavier (Enter/Space).

## Use-when / Do-not-use-when

| ✅ use_when | ⛔ do_not_use_when |
|---|---|
| Insérer un petit deck dans une autre page | Paquet complet autonome → GAB-108 |
| Ancrer juste après Story/Visual/PathMap | Une carte isolée → GAB-101 |
| Révision contextuelle légère | Page dédiée à la mémoire |

## QA à vérifier

1. Modifier `title` / `back_text` → rendu change sans toucher au HTML (critère d'or).
2. `items:[]` → BLOCKED propre.
3. Clic carte → verso affiché ; re-clic → recto restauré.
4. CTA → bouton désactivé + `label_done` affiché.
5. Responsive 375/768.

## Source

`INDEX-300-memorylearning-GAB-111-115-PLAYABLE.html` (stage `data-tpl="114"`, handlers `mdiFlip` + `mdiReviewAll`).
