Everything in overridesJson that ResolveEffectiveRealtimeConfig will SILENTLY DISCARD:
top-level sections other than realtime, keys inside realtime that the section does not
declare, and declared keys whose value fails the normalizer's type guard.
This exists because the discard is otherwise unobservable from either side of the wire — a
caller that sends {"realtime":{…},"myapp":{…}} gets a successful session running on the
agent's default configuration, with nothing anywhere saying the second section went nowhere
(MJ issue #3854, where that cost a downstream app months). The module stays PURE, so this
reports the drops as DATA; hosts (e.g. the MJServer realtime resolver) do the logging.
Depth is deliberately ONE level below realtime: it reports keys that fail to survive AT ALL,
not sub-object contents that partially normalize away (voice.default.tone: 7 is a drop this
does not report). Reporting only what it can mirror EXACTLY from the normalizer keeps false
positives at zero, which is what makes the output safe to log verbatim.
Absent, blank, malformed, and non-object payloads report NOTHING — they are the layer being
absent, which ParseRealtimeTypeConfiguration already documents as a tolerated no-op.
Parameters
overridesJson: string
The runtime-overrides JSON string, or null/undefined.
Everything in
overridesJsonthat ResolveEffectiveRealtimeConfig will SILENTLY DISCARD: top-level sections other thanrealtime, keys insiderealtimethat the section does not declare, and declared keys whose value fails the normalizer's type guard.This exists because the discard is otherwise unobservable from either side of the wire — a caller that sends
{"realtime":{…},"myapp":{…}}gets a successful session running on the agent's default configuration, with nothing anywhere saying the second section went nowhere (MJ issue #3854, where that cost a downstream app months). The module stays PURE, so this reports the drops as DATA; hosts (e.g. the MJServer realtime resolver) do the logging.Depth is deliberately ONE level below
realtime: it reports keys that fail to survive AT ALL, not sub-object contents that partially normalize away (voice.default.tone: 7is a drop this does not report). Reporting only what it can mirror EXACTLY from the normalizer keeps false positives at zero, which is what makes the output safe to log verbatim.Absent, blank, malformed, and non-object payloads report NOTHING — they are the layer being absent, which ParseRealtimeTypeConfiguration already documents as a tolerated no-op.