> ⚠️ **MODE DEV STRICT (pas PROD)**  
> - **Aucune transition**, **aucun fallback**, **aucune rétro-compat**.  
> - Soit on règle un point proprement soit on n'y touche pas. pas de zone de : "transition ou entre deux".  
> - Toute contribution qui introduit une zone grise, un compromis ou un retour au legacy est **refusée**.

# Modèle & invariants structurels (V4)

## Modèle
- **Board → Workspaces → Colonnes → Nodes (arbre)**
- `node.sys.shape ∈ { container, leaf }` = **seule vérité structurelle**
- **Snapshot JSON v4** versionné = **source de vérité** (timestamps en **secondes**)

## Invariants (jamais rompus)
- **Parent unique**
- **Ordre exact** `0..n-1` par conteneur, **pas de trous**
- **Acyclicité** des relations
- Un **leaf n’a jamais d’enfants**
- **Aucune mutation** hors `POST /api/commands`

## Apply = tout ou rien
- L’**Applier** couvre toutes les opérations supportées ; toute op inconnue → **erreur** (pas de no-ops)

## Version gate
- Refuser les snapshots non supportés (pas de migrations compat dans le moteur)
