arthur/docs
Your Name 6e7827e03f Non-overlap is an invariant, not a report
The plan asked what to draw when a symbol in lane mode holds overlapping
children, and offered to report it as a decision waiting for a person. Wrong
question: they never overlap. Placement claims time — anything placed, moved
or grown over occupied time trims, removes or splits what it lands on — so the
operation that could have made an overlap did not, and `span/finish`, which is
already the single commit path and already refuses rather than half-applying,
is where that is enforced. An overlap is then a bug in a command and not a
state to design around.

The check stays, named `symbol/overlaps` and used three ways: the commit path
refuses one, a property test asserts no command can produce one, and a
document that somehow holds one still LOADS and is drawn visibly wrong with
the status saying so. Not `problems`, which stops a document loading, and not
`conflicts`, which means somebody has a decision to make — a display hint must
never be able to keep a document from opening.

The one place a person can ask for the impossible is toggling lane mode on
over children that already overlap. That refuses and offers to trim them into
a sequence, through the `:required-frames` retry the model already uses.

Also written down, because it is the pair the modifier exists to separate:
a plain body drag is temporal and replaces, trimming extents as needed; shift
is structural and goes through `nest/move-node` into the symbol under the
pointer, which has to keep working for symbols held in a lane.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-01 16:22:33 -04:00
..
animation-model.md The face owns its placement, not the take that holds it 2026-10-01 01:25:37 -04:00
architecture.md grand unification of time 2026-10-01 01:47:08 -04:00
correction-authoring-plan.md Unify cel editing in the timeline 2026-10-01 14:37:59 -04:00
design.md Brows: traced ring, quantised raise 2026-09-24 18:11:25 -04:00
frame-selection.md The snap is per group, and the slot interval has to reach it 2026-10-01 10:21:35 -04:00
lane-handoff.md The timeline opens the whole document 2026-10-01 16:13:02 -04:00
lane-is-a-view-plan.md Non-overlap is an invariant, not a report 2026-10-01 16:22:33 -04:00
lane-model.md A lane is a generic row of symbol clips 2026-10-01 15:13:07 -04:00
lane-nesting-notes.md The timeline opens the whole document 2026-10-01 16:13:02 -04:00
multi-face-representation.md An occurrence is a node, with a clock of its own 2026-09-30 15:20:23 -04:00
port-plan.md The face owns its placement, not the take that holds it 2026-10-01 01:25:37 -04:00
time.md The snap reads back into the slot's own gap, per pose group 2026-10-01 11:34:43 -04:00
timing-handoff.md Symbols, not timelines; no symbol is special 2026-09-29 12:46:42 -04:00
timing-model.md grand unification of time 2026-10-01 01:47:08 -04:00