facett-map3d/.nornir/assets/road-hierarchy.svg
<svg xmlns="http://www.w3.org/2000/svg" width="720" height="270" font-family="monospace" font-size="13">
<rect width="720" height="270" fill="#0f1116"/>
<text x="16" y="26" fill="#e6e6e6" font-size="15">facett-map3d · road hierarchy (width-by-class)</text>
<!-- pipeline -->
<rect x="16" y="48" width="170" height="46" rx="6" fill="#1b2130" stroke="#6fd3f5"/>
<text x="24" y="70" fill="#9fe0ff">OSM highway=…</text>
<text x="24" y="86" fill="#7f8ea3">motorway/primary/…</text>
<rect x="212" y="48" width="150" height="46" rx="6" fill="#1b2130" stroke="#6fd3f5"/>
<text x="220" y="70" fill="#9fe0ff">style::classify</text>
<text x="220" y="86" fill="#7f8ea3">→ Way.width 1..3</text>
<rect x="388" y="48" width="316" height="46" rx="6" fill="#1b2130" stroke="#6fd3f5"/>
<text x="396" y="70" fill="#9fe0ff">road_ribbon → casing·fill·glow half-widths</text>
<text x="396" y="86" fill="#7f8ea3">hw = width · ROAD_WIDTH_DU (glow warm for majors)</text>
<line x1="186" y1="71" x2="212" y2="71" stroke="#6fd3f5" marker-end="url(#a)"/>
<line x1="362" y1="71" x2="388" y2="71" stroke="#6fd3f5" marker-end="url(#a)"/>
<!-- ribbons, to scale -->
<text x="16" y="132" fill="#7f8ea3">extruded ribbons (wider = higher class):</text>
<rect x="40" y="146" width="360" height="22" rx="11" fill="#ffbe6e"/><text x="410" y="162" fill="#e6e6e6">motorway (3.0)</text>
<rect x="60" y="176" width="360" height="15" rx="7" fill="#c9d2e0"/><text x="430" y="188" fill="#e6e6e6">primary (2.2)</text>
<rect x="80" y="199" width="360" height="8" rx="4" fill="#8792a3"/><text x="450" y="207" fill="#e6e6e6">residential (1.0)</text>
<!-- proof -->
<rect x="16" y="224" width="688" height="34" rx="6" fill="#12261a" stroke="#3ad07a"/>
<text x="26" y="245" fill="#9be8b8">PROOF (headless, data): motorway > primary > residential · same vertex count · deterministic → testmatrix cell</text>
<defs><marker id="a" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0,0 L8,4 L0,8 z" fill="#6fd3f5"/></marker></defs>
</svg>