Typed browser runtime

Typed browser runtime An architecture diagram generated by Archify. Retired routes · legacy, maplibre, explore · Architecture component · translated Retired routes legacy, maplibre, explore translated Committed payloads · reservoirs, snow, drought · Architecture component · static files Committed payloads reservoirs, snow, drought static files Reader · browser, keyboard, phone · Architecture component Reader browser, keyboard, phone Eight page shells · landmarks and slots · Architecture component · one h1 each Eight page shells landmarks and slots one h1 each Page entry points · src/main.ts and siblings · Architecture component · wiring only Page entry points src/main.ts and siblings wiring only Pure models · src/state, *-model.ts · Architecture component · one calculation Pure models src/state, *-model.ts one calculation Calcite UI + charts · src/ui, src/viz · Architecture component Calcite UI + charts src/ui, src/viz Loaders + validators · src/data/fetch.ts · Architecture component · 15s / 30s Loaders + validators src/data/fetch.ts 15s / 30s URL and place state · src/state/*-url.ts · Architecture component · link wins URL and place state src/state/*-url.ts link wins ArcGIS map layers · src/ui/map.ts, src/arcgis · Architecture component ArcGIS map layers src/ui/map.ts, src/arcgis ArcGIS services · public basemaps, shapes · Architecture component · no API key ArcGIS services public basemaps, shapes no API key opens a page saved bookmark translated URL module entry resolved place requests data fetched at runtime validated records view data scoped rows shapes and basemaps intentional change

One calculation

  • • Map, table, chart and download answer from the same rows
  • • Models are pure functions, so a fact cannot differ by surface

Nothing is trusted

  • • A deadline, a schema guard and a semantic validator precede every use
  • • A malformed payload becomes a stated failure, not a confident wrong map

Shareable state

  • • The address bar wins over a remembered place
  • • A stored preference never leaks into a copied link