Problem
Three fidelity holes around virtual junctions and connection internals, all in modeled scopes #453 will not cover:
- Road-link
@elementS/@elementDir are dropped. Rule road.linkage.virtjunc_link_attribute_usage (1.9.0 §10 road linkage) requires them on <link> elements pointing at a virtual junction. read_link (core/src/xodr/reader.cpp:3143) reads only elementType/elementId/contactPoint — no diagnostic — and write_link_element (core/src/xodr/writer.cpp:378) never emits them. A spec-conformant foreign file loses its virtual-junction linkage on save.
- A foreign virtual junction's
<connection>s are deleted. A virtual junction may legally declare connections (§12.7), but the arms-xor-spans policy (reader.cpp:2102) clears them — warned, but the data is destroyed rather than preserved/degraded.
<connection> children beyond <laneLink> and the @type attribute are silently dropped (reader.cpp:2087 iterates children("laneLink") only; @id regeneration is benign, @type is not).
Expected
Faithful round-trip for spec-valid input: model or preserve @elementS/@elementDir and connection @type; preserve (not delete) foreign virtual-junction connections with an honest diagnostic; sweep unknown connection children into the preserved tier.
Notes
Filed by the 2026-07-31 roadmap review.
Problem
Three fidelity holes around virtual junctions and connection internals, all in modeled scopes #453 will not cover:
@elementS/@elementDirare dropped. Ruleroad.linkage.virtjunc_link_attribute_usage(1.9.0 §10 road linkage) requires them on<link>elements pointing at a virtual junction.read_link(core/src/xodr/reader.cpp:3143) reads onlyelementType/elementId/contactPoint— no diagnostic — andwrite_link_element(core/src/xodr/writer.cpp:378) never emits them. A spec-conformant foreign file loses its virtual-junction linkage on save.<connection>s are deleted. A virtual junction may legally declare connections (§12.7), but the arms-xor-spans policy (reader.cpp:2102) clears them — warned, but the data is destroyed rather than preserved/degraded.<connection>children beyond<laneLink>and the@typeattribute are silently dropped (reader.cpp:2087iterateschildren("laneLink")only;@idregeneration is benign,@typeis not).Expected
Faithful round-trip for spec-valid input: model or preserve
@elementS/@elementDirand connection@type; preserve (not delete) foreign virtual-junction connections with an honest diagnostic; sweep unknown connection children into the preserved tier.Notes
third_party/asam/opendrive-1.9.0/10_roads.md(road linkage rules),12_junctions.md§12.7.Filed by the 2026-07-31 roadmap review.