You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Selection model: by UUID set; survives reordering, undo/redo, and annotation edits.
Serialization to/from the kernel wire shapes (matching the pydantic discriminated union
from M1) — the boundary where the generated API types plug in at M5.
Acceptance criteria
Selection stable across undo/redo in tests
Round-trip with wire-format fixtures (bbox/polygon/classification)
Context
The engine's document: annotations, selection, active tool state — with identity semantics
matching the kernel wire format.
Deliverables
descriptor (dimensions), schema (classes with colors + one geometry each —
LabelClass.geometryis singular per kernel: SchemaService — monotonic immutable versioning, additive/destructive change classification, LabelClass/Attribute/allowed_geometries validation #6) as typedinput.
from M1) — the boundary where the generated API types plug in at M5.
Acceptance criteria