MosaicHeadersPlugin
Ktor client plugin that stamps every outgoing request with 9 x-mosaic-* headers describing the current device/platform, read live from Platform on each request. Installed exactly once, on the single HttpClient MosaicModules.dataModule builds for MosaicNetworkImpl — since every Mosaic network operation (SendNetworkRequest, UploadFile, all 3 download events, GetScreen/ RefreshScreen, the initial-graph fetch, the cache-version check) goes through that one client, every one of them carries these headers, unconditionally. There is no per-request opt-out and no DSL flag to suppress it — a backend can always rely on these headers being present, on any request a Mosaic client ever sends.
Headers sent, each straight from the matching Platform property:
x-mosaic-platform-name← Platform.namex-mosaic-device← Platform.devicex-mosaic-os-version← Platform.osVersionx-mosaic-extra-info← Platform.extraInfo, flattened to a single comma-separatedkey=valuelist viaMap.toString()-stylejoinToString()— not JSON, not individually parseable back into typed key-value pairs without splitting the string yourself.x-mosaic-screen-size← Platform.screenSizex-mosaic-screen-density← Platform.screenDensityx-mosaic-locale← Platform.localex-mosaic-timezone← Platform.timezonex-mosaic-dark-mode← Platform.darkMode