{
  "gab_id": "GAB-300",
  "renderer_key": "text_cta",
  "final_rehearsal_id": "fr-dnb-oral-seance-finale-01",
  "_note_dev": "SOURCE DE VÉRITÉ. Répétition finale non-certifiante avant le jour J : checklist, choix recording, bloc non-certification, privacy notice, raison pédagogique. Anti-invention : contenu extrait verbatim du HTML source GAB-300. Le HTML (moteur, layout, boutons) ne change pas ; seuls ces champs changent le rendu.",
  "oral_context_ref": "DNB_oral_séance_finale",
  "title": "Répétition finale avant le jour J",
  "subtitle": "Tout est en place : plan, timer, support. C'est une répétition, pas une évaluation. Une dernière passe sereine.",
  "milestone_banner": {
    "icon": "⭐",
    "label": "GAB-300 · BORNAGE SYMBOLIQUE",
    "text": "300 / 625 GAB designed · 48% du chantier complet"
  },
  "rehearsal_checklist": {
    "heading": "REHEARSAL_CHECKLIST · 6 items",
    "items": [
      { "label": "Plan final validé (4 sections temporelles) · final_plan_ref OK", "done": true },
      { "label": "Mots-clés notés sur fiche (anti-récitation respecté)", "done": true },
      { "label": "Hook accroche préparé", "done": true },
      { "label": "Test technique : volume audible, débit calibré", "done": true },
      { "label": "Faire 1 passage complet avec timer", "done": false },
      { "label": "Auto-review post-répétition · self_review_ref", "done": false }
    ]
  },
  "completion_policy": "non_certifying",
  "next_action": {
    "primary_cta_label": "🎭 Démarrer répétition finale",
    "primary_cta_confirm": "🎭 Répétition finale lancée — conditions réelles, 5 min.",
    "secondary_cta_label": "teacher_review_ref",
    "secondary_cta_reveal": "teacher_review : l'enseignant note la prestation finale sur la grille complète (clarté, structure, contenu, gestion du stress)."
  },
  "recording_policy": {
    "options": [
      { "id": "rec", "icon": "🔴", "label": "AVEC enregistrement", "detail": "recording_policy · opt-in" },
      { "id": "norec", "icon": "🤫", "label": "SANS enregistrement", "detail": "mode privé" }
    ]
  },
  "timer_policy": { "duration_min": 5, "label": "conditions réelles" },
  "final_plan_ref": "final_plan_ref OK",
  "self_review_ref": "self_review_ref",
  "teacher_review_ref": "teacher_review : l'enseignant note la prestation finale sur la grille complète (clarté, structure, contenu, gestion du stress).",
  "privacy_notice": {
    "heading": "Ta répétition reste à toi",
    "bullets": [
      "L'enregistrement (si activé) est local sur ton appareil",
      "Tu peux le supprimer à tout moment",
      "Le prof ne voit rien sans ton accord explicite",
      "L'app ne note pas cette session"
    ]
  },
  "source_metadata": {
    "module": "EdTechOralLearning",
    "lot": "GAB-296-300",
    "vague": 2,
    "safety_doctrine": "NON-CERTIFICATION"
  },
  "non_certification_notice": {
    "heading": "⛔ NON-CERTIFICATION · doctrine",
    "text": "Cette répétition ne génère pas de note, pas de badge, pas de certificat. C'est ton terrain d'entraînement. Ce qui compte, c'est le jour J en classe, pas le compteur d'app."
  },
  "reason_block": {
    "heading": "pourquoi non-certifiant",
    "text": "Une app qui certifie ton oral se substitue à l'école et culpabilise. Une app qui dit « tu t'entraînes, tu décides » respecte le rôle des humains autour de toi (profs, jury, parents). Outil, pas oracle."
  }
}
