diff --git a/openspec/changes/map-core-package/.openspec.yaml b/openspec/changes/archive/2026-04-12-map-core-package/.openspec.yaml similarity index 100% rename from openspec/changes/map-core-package/.openspec.yaml rename to openspec/changes/archive/2026-04-12-map-core-package/.openspec.yaml diff --git a/openspec/changes/map-core-package/design.md b/openspec/changes/archive/2026-04-12-map-core-package/design.md similarity index 100% rename from openspec/changes/map-core-package/design.md rename to openspec/changes/archive/2026-04-12-map-core-package/design.md diff --git a/openspec/changes/map-core-package/proposal.md b/openspec/changes/archive/2026-04-12-map-core-package/proposal.md similarity index 100% rename from openspec/changes/map-core-package/proposal.md rename to openspec/changes/archive/2026-04-12-map-core-package/proposal.md diff --git a/openspec/changes/map-core-package/specs/map-core/spec.md b/openspec/changes/archive/2026-04-12-map-core-package/specs/map-core/spec.md similarity index 100% rename from openspec/changes/map-core-package/specs/map-core/spec.md rename to openspec/changes/archive/2026-04-12-map-core-package/specs/map-core/spec.md diff --git a/openspec/changes/map-core-package/tasks.md b/openspec/changes/archive/2026-04-12-map-core-package/tasks.md similarity index 100% rename from openspec/changes/map-core-package/tasks.md rename to openspec/changes/archive/2026-04-12-map-core-package/tasks.md diff --git a/openspec/specs/map-core/spec.md b/openspec/specs/map-core/spec.md new file mode 100644 index 0000000..23d1b4b --- /dev/null +++ b/openspec/specs/map-core/spec.md @@ -0,0 +1,23 @@ +## ADDED Requirements + +### Requirement: Renderer-agnostic map definitions +The `@trails-cool/map-core` package SHALL provide map configuration data usable by any rendering engine. + +#### Scenario: Tile source definitions +- **WHEN** a renderer needs tile layer URLs +- **THEN** `map-core` provides base layer and overlay layer configs with URL templates, attribution, and zoom limits + +#### Scenario: Route color palettes +- **WHEN** a renderer needs to color a route by surface, highway, grade, or other mode +- **THEN** `map-core` provides the color mapping and color functions for all supported modes + +#### Scenario: POI category definitions +- **WHEN** a renderer needs POI icons, colors, and Overpass queries +- **THEN** `map-core` provides the full category configuration + +### Requirement: No rendering dependencies +The package SHALL have zero dependencies on any rendering library (Leaflet, MapLibre, React, DOM). + +#### Scenario: Import in any environment +- **WHEN** `map-core` is imported in Node.js, a browser, or React Native +- **THEN** it works without errors — no DOM APIs, no rendering side effects