# GAB-101 · MemoryFlashcardBasic — « Flashcard recto-verso »

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

## Pack (structure officielle par-GAB)
```
GAB-101/
  renderer.html            ← moteur flashcard recto-verso (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` · `flashcard_id` · `question` · `answer`

Optionnels : `title`, `hint_front`, `hint_back`, `label_front`, `label_back`, `cta_again`, `cta_know`.

## Ce qui vient du JSON vs HTML
- **JSON** : texte de la question, texte de la réponse, libellés des faces (label_front/label_back), hints, libellés des boutons CTA.
- **HTML** : flip 3D CSS (perspective/rotateY), layout carte, boutons structurels, comportement de reset.

## Archétype
Flashcard recto-verso simple. L'apprenant voit la question (face avant), retourne la carte (flip 3D) pour voir la réponse (face arrière), puis s'auto-évalue via deux boutons : « Je sais » / « À revoir ». Les deux actions remettent la carte côté question.

## Garde-fous (child_safety)
- **Anti-invention** : question et answer extraits strictement de la source HTML — aucun contenu inventé.
- **BLOCKED** si `question`, `answer` ou `flashcard_id` absents.
- Pas d'ombre noire (`rgba(0,0,0,...)` interdit — DS V2). Ombres colorées uniquement (violet).
- Boutons `cta_again` / `cta_know` : libellés pilotés par JSON, jamais hardcodés.

## QA à vérifier
1. Modifier `question`/`answer` → rendu change sans toucher au HTML (critère d'or).
2. `question:""` absent → BLOCKED propre.
3. Clic carte → flip recto/verso.
4. Clic « À revoir » ou « Je sais » → remise en position recto.
5. Responsive 375/768/1024.
6. Navigation clavier (Enter/Espace = flip carte).

## Source
`INDEX-300-memorylearning-GAB-101-105-PLAYABLE.html` (stage `data-tpl="101"`, élément `#fc101`).

## external_refs / dependencies
Aucune dépendance externe hors-lot. Ce gabarit est autonome.
Les gabarits connexes du même lot sont : GAB-102 (flashcard inversée), GAB-103 (rappel espacé), GAB-104 (rappel actif), GAB-105 (paires).
