% Regression: \annotate{target}{arrow=true,...} parsed correctly into % AnnotationEntry.arrow but the value was dropped at the renderer → % primitive serialization boundary in _snapshot_to_frame_data. % % Before fix: arrow=true annotation silently produced no arrowhead — the % key was absent from the annotation dict passed to primitives, % so _emit_arrow's early-return guard (if not arrow_from: return) % fired and dropped the annotation entirely. % After fix: arrow=true renders a short straight pointer with an arrowhead % pointing INTO the target cell (no source arc). % arrow_from= (a.cell[0]) renders the existing Bezier arc. % Both can coexist in the same frame.