Option<Selection> becomes a paint-ordered set with an anchor member. click replaces, toggle_at adds/removes (anchor = last added), select_within takes the hit-test within(rect) in paint order deduped by score object — a ledgered note's synthesized ledger strokes collapse into its notehead's member, the representative id preferring the non-synthesized occurrence so relayout cannot wrongly drop it. Single-target intents retarget to the anchor, byte-identical at N=1. delete_selection batches atomically via one transaction (a refused member rolls back the whole batch); alter_selection instead mints ONE TransposeIntervalOp naming every target — the format's native atomic multi-target primitive (req:opcat:transpose-interval-atomic) — preserving N=1 op-stream compatibility outright. Anchor fallback across relayout: next surviving member after the anchor's original position, wrapping. Four mutations killed and coordinator re-verified. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||
| DECISIONS.md | ||