# Design The compiler owns marking semantics. `center-line-style` remains segment scoped because a bidirectional road segment shares one centre-line decision. `edge-line-style` is scoped to `{ roadId, side }`, since a directional carriageway has independently editable left and right outside edges. `double: true` is valid only with yellow solid centre lines. Generation emits two 0.32m-separated parallel polygons for each normal solid mark, preserving junction cutback and crosswalk/stop-line clearance. This keeps the existing solid line implementation and avoids a separate geometry pipeline. Road edge lines use the existing road-edge offset geometry. A solid style is one continuous buffered offset line; a dashed style uses deterministic 2m marks at 4m spacing. Both carry `effective_style`, source IDs, side, and native provenance. The Workbench uses one marking form with an explicit selected target type. Only a centre-line target exposes the double-yellow option; lane separators and edge lines retain the ordinary colour/pattern choices. Staged changes pass through the existing save and regenerate flow, so browser, compiler and Blender read the same persisted override.