draw is documented as tracing the mark's outline. With no animation driving draw_progress, the property sits at its resting value and the painter takes the fully-drawn branch, so the mark renders filled — the same output as draw: false.
Reproduce with an svg node carrying "draw": true and no draw_progress keyframes or preset. Expected: nothing drawn, or the outline at progress 0. Actual: the finished mark.
Two readings are defensible — treat an undriven draw as progress 0, or reject it at validation as a declaration with no driver. The second is probably better: a silently-ignored flag is the failure mode this audit keeps finding.
Found while porting a scenario on chantier/audit-2026-09-25; out of scope for that branch.
drawis documented as tracing the mark's outline. With no animation drivingdraw_progress, the property sits at its resting value and the painter takes the fully-drawn branch, so the mark renders filled — the same output asdraw: false.Reproduce with an
svgnode carrying"draw": trueand nodraw_progresskeyframes or preset. Expected: nothing drawn, or the outline at progress 0. Actual: the finished mark.Two readings are defensible — treat an undriven
drawas progress 0, or reject it at validation as a declaration with no driver. The second is probably better: a silently-ignored flag is the failure mode this audit keeps finding.Found while porting a scenario on
chantier/audit-2026-09-25; out of scope for that branch.