No config-file constellation
One JSON document per map. No service registry, no
rest-services.json, no config.js next to it. Reuse across
many maps is a shared base config referenced with extends, and each map
only writes its deltas.
Broken configs say why
A config is validated before anything renders, and the errors appear in place with
the JSON path that caused them — an editor can fix it without opening a developer
console.
$.basemaps at least one basemap is required, e.g. { "type": "style", "url": "…" }
$.layers[2].url a "wms" layer needs a "url"
$.layers[2].layers a "wms" layer needs "layers" (WMS LAYERS parameter)
Themed and translated
A primary color, a radius, a font and light/dark come from the config or from your
page's CSS custom properties. The UI ships in German and English, and every single
string can be overridden per locale.
Theming →
Languages →
Inheritance →