# Implementation Plan 1. Extend the native OSM parse/model with marked crossing-node evidence while preserving existing road IDs and parser behavior. 2. Add native crossing clustering, tangent resolution from directed lane centerlines, stripe geometry, safe stop-line placement, and source diagnostics. 3. Persist the two new layers in `compile-native-roads.js`, comparison counts, native build records, required native layer checks, and existing Blender material mappings. 4. Add Workbench API/state fields, Chinese layer toggles, selection evidence, and summary counts while retaining scene-preview behavior. 5. Add focused fixtures for marked and unmarked crossings, duplicate cluster handling, a missing native-lane diagnostic, and output layer contracts. 6. Run native/unit/workbench/build-stage tests, compile/check Nantaizi, then build `blender,cesium,preview --road-provider native` without `package/`. ## Validation ```bash npm run test:native-road npm run test:road-workbench npm run test:build-stages npm run road:compile -- --config config/areas/nantaizi-lake-innovation-valley.json npm run road:check -- --config config/areas/nantaizi-lake-innovation-valley.json npm run build:area -- --config config/areas/nantaizi-lake-innovation-valley.json \ --stages blender,cesium,preview --road-provider native ``` Rollback is selecting `--road-provider osm2streets`; no legacy output path is changed.