Configuration
On first start, each service creates missing config files with built-in defaults and a $schema field for IDE hover docs.
The workspace .vscode/settings.json maps schemas by filename; you can also rely on in-file $schema pointing at @sfmc-bds/sdk/schemas/*.schema.json.
Platform configs
Module configs
Each module declares configKey in sapi/manifest.json, mapped to configs/<configKey>.json. The module package supplies defaults in configs-default/<configKey>.json; install, update, and link operations create the working configuration or recursively add missing fields without overwriting existing user values. Runtime reads and writes go through @sfmc-bds/sdk/sapi/config (HTTP: /api/sfmc/configs/:configKey), separate from platform ConfigName.
At SAPI startup, GET /api/sfmc/configs/all once loads and caches the platform domain: modules, settings, permissions (and module_tokens). Module-private JSON is not in that cache; use config.get / config.set on demand. Runtime set writes back immediately.
After editing platform configs/*.json (or module config files without config.set), restart BDS. After module enable/disable writes module-lock.json, you usually need mod reload or a BDS restart for the behavior pack to catch up.