The journal stores a gesture as a patch from the previous payload, not
a full copy. Records with an id are compared by id, so adding a person
does not shift the others; same-length lists compare element by
element; other values are set whole. Moving one person in one round of
a large plan touches two seat lists. Applying never alters its input
and refuses a patch that does not fit, naming the operation.
Checked: 25 tests including a property over generated payloads.
--- FR ---
[ADD] stockage : correctifs entre deux charges, par identifiant
Le journal range un geste comme un correctif depuis la charge
précédente, non comme une copie entière. Les enregistrements à
identifiant se comparent par identifiant, si bien qu'ajouter une
personne ne décale pas les autres ; les listes de même longueur se
comparent élément par élément ; le reste se pose en entier. Déplacer une
personne à un tour d'un grand plan touche deux listes de sièges.
Appliquer ne modifie jamais son entrée et refuse un correctif qui ne
s'applique pas, en nommant l'opération.
Vérifié : 25 épreuves, dont une propriété sur des charges tirées.
Assisted-by: Claude Opus 5.5
Claude-Session: https://claude.ai/code/session_01EUXSGcwCLSC69FWEdCtWSb