1. The page no longer loads Mapbox GL and the geocoder before the map bundle. They came from
api.mapbox.com, in one try with the bundle, so a slow or blocked Mapbox CDN meant NO map at all,
even with MapLibre, which needs nothing from Mapbox. Each dx-maps map loads its own engine, its CSS
and its geocoder, once, when it is built (ensureEngineScript in dx-maps' useMapInstance.js, which
reuses a loaded engine and never loads it twice). So the page now loads only the map bundle, in its
own try; Mapbox is fetched only when Mapbox is the provider, by the map, after the bundle.
2. The provider is always passed explicitly: 'mapbox' when the site chose it
(NUXT_PUBLIC_MAP_PROVIDER=mapbox with NUXT_PUBLIC_MAPBOX_TOKEN), otherwise 'maplibre'. A token
alone never selects Mapbox in dx-maps, so before this, choosing Mapbox had no effect: the maps ran
MapLibre carrying a token. Fixed in DoxaMapSlot (home, pray, adopt, research, country) and on
/deep-research.
Lineage: the provider handling (app/utils/mapProvider.ts and DoxaMapSlot's use of it) is NOT
production's code; it came with the drop-in lineage (b045200, an ancestor of 9860e78). DX Life
production (github master fc4d622) has no provider setting. The script chain in useDoxaMap is
production's pattern, which production needs for its own /js bundles; this branch loads dx-maps
bundles, which carry their own engine loader. With the default settings (MapLibre), home, pray and
adopt render the same map as before; they only stop downloading the unused Mapbox scripts and CSS.
The token handling matches production: the public token, passed only in Mapbox mode.