# L4 — Layout tableur

**Binôme :** `dev-layout` / `test-layout`
**Zones :** `domain/layout` (déjà amorcé en L0), `application/layout`, `frontend/features/layout`
**Dépendances amont :** L0, L1, L3 (cellules ↔ terminaux).

## Objectif
Grille redimensionnable type tableur : N colonnes par ligne / M lignes par colonne indépendantes, **fusion de cellules**, persistance.

## Périmètre (DEV)
- Compléter la logique de layout pure du domaine (si reliquats post-L0).
- Use case `MutateLayout` (split/merge/resize/move) + persistance `.ideai/layout.json`.
- UI : grille redimensionnable (drag des séparateurs), création/suppression de cellules, fusion, mapping cellule → terminal.

## Périmètre (TEST)
- Domaine : opérations pures exhaustives (déjà couvertes L0, étendre cas combinés).
- Application : `MutateLayout` persiste et publie `LayoutChanged`.
- Front : logique de calcul des tailles de cellules (Vitest, pure) ; interactions de split/merge (RTL + mock).

## Definition of Done
- `cargo test` (layout) + `vitest` verts ; manipulation visuelle de la grille fonctionnelle.
