# 🤝 HANDOFF — GAB 001-625 data-driven → dev Play (Mr Nyms)

**De :** producteur conversion (STORY GAB/GAM CONTENT SPECIALIST) · **Màj :** 03/06/2026
**Pour :** intégration dans EdTechPlayEngine (moteur React N3).

## Ce qui est livré
**625 GAB** en packs data-driven, structure **par-GAB** :
```
/var/www/2.SOURCES/GAB/CONVERSION-OUTPUT/LOT-<module>-GAB-xxx-yyy/GAB-XXX/
   instance.example.json   ← ✅ PROD : la donnée (source de vérité, à plat)
   schema.contract.json    ← ✅ PROD : le contrat (RendererContract)
   renderer.html           ← 👁️ APERÇU SEULEMENT (pour voir l'écran) — PAS de la prod
   README-contract.md      ← doc du GAB
```
> 001-390 = conversion producteur · 391-625 = intégrés depuis BIBLE Chat-production.

## ⚠️ PROD vs APERÇU (clarifié par Boss)
- **PROD = `instance.example.json` + `schema.contract.json`** → c'est ce que le Play consomme.
- **`renderer.html` = aperçu/maquette** (pour visualiser l'écran + CTA). **Mr Nyms le porte en React** (BlockDefinition) — il ne va PAS en prod tel quel.

## Où le Play lit le contenu (vérifié dans le code)
`refFamily.ts:50` → `fetch('/data/<famille>/<slug>.json')`. Familles : `play` / `gab` / `gam` / `eng`.
→ Les **instances JSON** vont dans un **banc central** (à définir) puis sont copiées/symlinkées au build dans le `public/data/<famille>/` de chaque site (pilote = allogrammaire, qui a déjà `public/data/{gam,play}`).

## ⚠️ Mutualisation des renderers : à ÉTUDIER (pas magique)
Les 625 renderers sont **TOUS distincts** (vérifié : 625 moteurs uniques). Ils sont groupés sous **8 valeurs `renderer_key`** (cf `RENDERER-CONSOLIDATION-MATRIX.csv`) :

| renderer_key | nb |
|---|---:|
| text_cta | 588 |
| media_viewer | 20 |
| annotation_media | 4 |
| compare_grid | 4 |
| choice_select | 4 |
| quiz_scoring | 3 |
| reflection_input | 1 |
| GAB-301 (anomalie, seed kit) | 1 |

➡️ **Ce n'est PAS « 8 blocs React = fini »** : ce sont des familles à **généraliser** (chaque écran diffère). Combien de blocs réels au final = **chantier d'analyse côté Play**, pas un 1:1. (Honnêteté : mon ancien handoff disait « 7 blocs », c'était trop optimiste.)

## Fichiers d'aide (racine CONVERSION-OUTPUT/)
- `_index-625.json` — index machine (chaque GAB → renderer_key + chemins + flags prod/preview).
- `RENDERER-CONSOLIDATION-MATRIX.csv` — familles + compte.
- `SENSIBLES-A-VALIDER.md` — ⚠️ validation Boss (40 confirmés 001-390 ; ~60 familles sensibles sur 625 à confirmer).
- `TODO-CONTENUS-MANQUANTS.md` — 29 GAB avec contenu source manquant (`_TODO`, non inventé).

## Anomalies connues
- **GAB-301** : `renderer_key = "GAB-301"` (vieux seed kit) au lieu d'une famille → à normaliser.

## ⛔ Rappels doctrine
- Pilote = **allogrammaire** ; sync autres sites = après validation pilote.
- Data USER → Supabase `edtech_*` (pas de nouvelles tables) ; contenu → JSON build-time.
- Mr Nyms code le core ; je ne touche pas `EdTechPlayEngine`.
