# GAB-420 · DebateLearningOralDebatePractice — « S'entraîner au débat oral »

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

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

## Champs requis
`gab_id` · `oral_debate_practice_id` · `debate_ref` · `practice_mode` · `speaking_turns` · `feedback_policy`

Optionnels : `title`, `micro_policy`, `recording_policy`, `timer_policy`, `transcript_policy`, `respect_check`, `fallback_no_micro`, `fallback_text_summary`.

## Archétype
Entraînement oral : micro/enregistrement TOUJOURS opt-in, mode sans micro obligatoire, feedback sur argument/clarté/respect/structure jamais sur accent ou identité.

## BLOCKED si
- oral_debate_practice_id absent
- debate_ref absent
- practice_mode absent
- speaking_turns absent ou vide
- feedback_policy absent

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