# Implementation Plan 1. Add native provider/default-stage contracts and explicit legacy provider routing. 2. Make package publication and stage manifests consume native runtime artifacts. 3. Replace preview's hard dependency on osm2streets lane/network/intersection files with a native route adapter and optional-route behavior. 4. Audit Blender, Cesium, preview, diagnostics, and area config for native-path legacy reads; retain only the Workbench's optional, clearly labeled osm2streets reference layer. 5. Update README/config/spec documentation and add dependency-boundary regression tests. 6. Run native-only tests with legacy directories absent, then run focused legacy compatibility tests. 7. Run area compile/check plus available Blender/Cesium/preview validation; record any environment-only limitation without weakening native contracts. ## Validation ```bash npm run test:native-road npm run test:traffic-signals npm run test:road-workbench npm run test:preview-assets npm run road:compile -- --config config/areas/nantaizi-lake-innovation-valley.json npm run road:check -- --config config/areas/nantaizi-lake-innovation-valley.json node --check scripts/build-area.js ``` The final gate must also exercise a native-only config/output directory without QGIS/osm2streets intermediates and assert package/runtime/preview outputs.