Problem
Five spec areas are warned-and-dropped rather than preserved, so a legal file loses them on the first save (one diagnostic, then permanent data loss). All are outside #453's scope list; none needs modeling for v0.1.0 — the preserved-tier (RawXml verbatim) idiom is enough:
| Element |
Spec |
Current behavior |
<lateralProfile><shape> (and legacy <crossfall>) |
1.9.0 §10.5.1 |
parse_lateral_profile (core/src/xodr/reader.cpp:732) models <superelevation> only; everything else warn_unsupported → dropped. Round-trip flattens a non-planar carriageway |
Road <surface>/<CRG> |
§10.6 |
Not in parse_road's child whitelist (reader.cpp:494) → warned drop; a CRG-referencing file silently loses its surface detail on save |
<junctionGroup> (roundabouts) |
§12.16 |
Root sweep (reader.cpp:3219) whitelists header/road/junction/controller/userData → warned drop. Directly relevant to #495 — the standard's own roundabout grouping is currently unrepresentable |
<railroad> road child + root <station> |
chapter 15 |
Warned drop, both. A tram file loses its rail layer on save |
<include> outside <header> |
§7.1 |
Preserved inside <header> (reader.cpp:392), warned-dropped anywhere else |
Expected
Each moves into the preserved tier: read verbatim, written back byte-identically, diagnostic downgraded to the standard "preserved, not modeled" note. Modeling stays with whoever owns the feature later (e.g. #495 for junction groups).
Notes
Filed by the 2026-07-31 roadmap review.
Problem
Five spec areas are warned-and-dropped rather than preserved, so a legal file loses them on the first save (one diagnostic, then permanent data loss). All are outside #453's scope list; none needs modeling for v0.1.0 — the preserved-tier (RawXml verbatim) idiom is enough:
<lateralProfile><shape>(and legacy<crossfall>)parse_lateral_profile(core/src/xodr/reader.cpp:732) models<superelevation>only; everything elsewarn_unsupported→ dropped. Round-trip flattens a non-planar carriageway<surface>/<CRG>parse_road's child whitelist (reader.cpp:494) → warned drop; a CRG-referencing file silently loses its surface detail on save<junctionGroup>(roundabouts)reader.cpp:3219) whitelistsheader/road/junction/controller/userData→ warned drop. Directly relevant to #495 — the standard's own roundabout grouping is currently unrepresentable<railroad>road child + root<station><include>outside<header><header>(reader.cpp:392), warned-dropped anywhere elseExpected
Each moves into the preserved tier: read verbatim, written back byte-identically, diagnostic downgraded to the standard "preserved, not modeled" note. Modeling stays with whoever owns the feature later (e.g. #495 for junction groups).
Notes
Filed by the 2026-07-31 roadmap review.