{
  "gab_id": "GAB-225",
  "renderer_key": "text_cta",
  "reason_card_id": "rc-format-pythagore-hypotenuse",
  "_note_dev": "SOURCE DE VÉRITÉ. Méta-carte de transparence SmartSelect : explique pourquoi un contenu/niveau/format/fallback a été sélectionné. Champs title/body/reason/meta viennent du JSON ; le moteur ne contient aucune copie en dur de ces textes. Le reason_type actif doit être l'un des 6 types de l'enum. Primary CTA = acknowledge uniquement (pas d'action de progression).",
  "title": "Pourquoi cette fiche visuelle ?",
  "body": "Cette <b>fiche visuelle</b> t'est proposée parce qu'elle aide à <b>comprendre l'hypoténuse</b> avant de refaire un exercice. Format adapté au type de blocage repéré.",
  "reason": "Le <b>format visuel est adapté au blocage repéré</b> sur l'identification des côtés. Pas de raw data exposée — juste l'essentiel.",
  "reason_type": "format",
  "meta_source": "SmartSelectFormatChoice (GAB-223)",
  "meta_target": "visual/pythagore-hypotenuse-schema",
  "primary_cta": { "label": "✓ Compris", "action": "acknowledge" },
  "info_pill_label": "ℹ INFO · pourquoi cette ressource",
  "reason_block_label": "💡 Justification courte (langage élève)",
  "ack_notice": "Read-only : ReasonCard ne propose pas d'action de progression. Elle s'affiche en complément de 221/222/223/224 pour transparence. CTA unique = acknowledge."
}
