{
  "gab_id": "GAB-258",
  "renderer_key": "text_cta",
  "correction_swap_id": "cs-pythagore-math-proof-1",
  "_note_dev": "SOURCE DE VÉRITÉ. Correction croisée avec checklist : échange de copies entre deux élèves avec grille de critères objectifs. Le HTML (layout, rôles, checklist, bouton) ne change pas ; seuls ces champs changent le rendu.",
  "title": "Correction croisée Pythagore",
  "subtitle": "Travaillez à deux pour repérer points forts et oublis.",
  "swap_domain": "math_proof",
  "swap_domain_enum": ["math_proof", "text_argument", "language_writing", "science_method"],
  "estimated_duration": "12 min",
  "checklist_label": "Grille de relecture · 4 critères",
  "checklist": [
    { "id": "c1", "text": "Données du triangle bien identifiées", "status": "ok" },
    { "id": "c2", "text": "Formule de Pythagore citée explicitement", "status": "ok" },
    { "id": "c3", "text": "Justification présente avant le calcul", "status": "ko" },
    { "id": "c4", "text": "Conclusion qui répond à la question posée", "status": "todo" }
  ],
  "roles": [
    { "id": "role_a", "tag": "ÉLÈVE A", "description": "Résout l'exercice avec rédaction complète." },
    { "id": "role_b", "tag": "ÉLÈVE B", "description": "Relit la copie de A avec la checklist visible." }
  ],
  "reason_label": "Pourquoi la checklist",
  "reason_text": "La grille neutralise les jugements et concentre la relecture sur des critères objectifs. B ne dit pas « c'est pas bien », il dit « le critère 3 manque ».",
  "primary_cta": { "label": "Faire la correction", "action": "start_correction_swap" },
  "secondary_cta": { "label": "Voir la grille complète", "action": "view_full_grid" }
}
