# GAB-195 · PathMapReturnPrompt — « Prompt retour parcours »

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

## Pack (structure officielle par-GAB)
```
GAB-195/
  renderer.html            ← moteur bottom_sheet return prompt (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` · `return_prompt_id` · `title` · `primary_cta{label,action,feedback}`

Optionnels : `subtitle`, `summary` (HTML `<b>` autorisé), `progress{label,current,total,percent}`, `secondary_cta{label,action,feedback}`, `back_cta{label,action,feedback}`.

## Ce qui vient du JSON vs HTML
- **JSON** : titre, sous-titre, résumé de la prochaine étape, barre de progression (label/current/total/percent), libellés et feedbacks des 3 boutons.
- **HTML** : structure bottom_sheet, handle, icône, layout colonne des CTAs, logique de disable/restore après clic (2,2s), rendu responsive.

## Archétype
Bottom_sheet contextuel de retour au parcours. Apparaît :
- après la fin d'une activité PathMap-liée
- à la reprise après pause

**Ne pas utiliser pour** : SessionResumePrompt PlayEngine, prompt qui force la continuation, interruption d'activité en cours.

## Garde-fous (child_safety)
- L'option "Plus tard" (`back_cta`) doit **toujours** être visible quand fournie — jamais supprimer le choix de reporter.
- Le renderer ne force jamais la navigation : il notifie l'action via `action` mais n'exécute pas lui-même la redirection.
- BLOCKED si `title` absent ou `primary_cta` absent.

## Logique CTA
Clic sur un bouton :
1. Tous les boutons désactivés (`disabled`)
2. Le bouton cliqué affiche son `feedback`
3. Après 2 200 ms : restauration automatique des libellés d'origine

## QA à vérifier
1. Modifier `title` / `summary` / `primary_cta.label` → rendu change sans toucher au HTML (critère d'or).
2. `primary_cta` absent → BLOCKED propre.
3. `progress` absent → barre masquée, reste intact.
4. Clic "Continuer" → feedback "✓ Tu reprends le parcours" → restauration 2,2s.
5. Responsive 375/768/1024 — aucun débordement.

## Source
`INDEX-300-pathmap-GAB-191-195-PLAYABLE.html` (stage `data-tpl="195"`, handler `rtPick(btn, action)`).
