1.5 KiB
1.5 KiB
Implementation Plan
- Define the native signal model/override artifact and migration adapter; reuse existing generation, validation, and deterministic signal UID rules.
- Add QGIS import/export commands that translate
traffic_signal_assemblies.geojsonto/from the native artifact without making native compile depend on QGIS. - Extend native compile/workbench state to expose signal assemblies, OSM controls/arms, and derived runtime provenance.
- Add validated atomic signal save operations for generate, move, rotate, delete, and field edits; preserve legacy ID compatibility.
- Add Workbench map styling, selection, editing controls, dirty state, save, compile/reload, and clear error handling for signal assemblies.
- Ensure native Blender/Cesium/preview stages consume runtime signal data generated from the native model, while legacy stages remain compatible.
- Add focused traffic-signal, Workbench, migration, and cross-layer round-trip tests; run the existing legacy traffic-signal and preview suites.
Validation
npm run test:traffic-signals
npm run test:preview-assets
npm run test:road-workbench
npm run road:compile -- --config config/areas/nantaizi-lake-innovation-valley.json
npm run road:check -- --config config/areas/nantaizi-lake-innovation-valley.json
Manual acceptance must cover native-only generate/move/rotate/delete -> save -> recompile -> runtime JSON and preview, plus QGIS import/export compatibility; disabled signals must be omitted from runtime output.