# GAB-421 · ExamLearningIntro — « Entraînement type Brevet — Maths »

**Archétype / renderer_key :** `text_cta` · **module :** EdTechExamLearning
**Critère visé :** changer le JSON change le rendu sans modifier le HTML. ✅ check.py 12/12.

## Pack
```
GAB-421/
  renderer.html · instance.example.json · schema.contract.json · README-contract.md
```

## Champs requis
`gab_id` · `exam_intro_id` · `exam_type` · `exam_goal` · `exam_context_ref` · `primary_cta`

Optionnels : `title`, `official_status_notice`, `duration`, `materials_allowed`, `stress_support`, `difficulty`, `fallback_action`, `fallback_text_summary`.

## Archétype
Intro d'épreuve : préciser TOUJOURS si entraînement non officiel, ne JAMAIS promettre note/réussite/sujet réel, afficher consignes/durée/matériel si connus.

## BLOCKED si
- exam_intro_id absent
- exam_type absent
- exam_goal absent
- exam_context_ref absent
- primary_cta absent

## Source
CORE-GAB-REGISTRY GAB-421 (pas de playable hardcodé au-delà de 390). Conversion Core → pack serveur, format identique aux GAB 001-390.
