Config
Stable reference handle; used as @config:key in values
The userId of the owner (or raw owner name/email for legacy records)
The email address of the owner, when the owner can be resolved to a known user.
The key of the config this one inherits from (lineage parent — the primary spine). Synthesized into $extends at resolution time and never stored in value.
Additional composition bases (config keys) layered on top of parent, in precedence order (later overrides earlier; all override parent; this config's own keys win last). Like parent, set via this field — never via a @config: entry in value.
This config's own base value as a JSON object (its declared fields only — inherited fields are layered in at resolution time, not stored here). Per-environment/project variants are expressed via scopedOverrides, not here.
Ordered, first-match-wins environment/project-scoped variant selection. Each entry points at a flavor config (a child config, by key) whose value is deep-merged onto this config's resolved value when the (environment, project) scope matches — resolved at build time, per layer. This is how you create an environment-scoped override (as opposed to a plain child config): make a child config for the override value, then add it here with its scope. Send the complete list to replace it; an empty array clears all overrides. Entries must reference existing configs, may not reference this config itself, and may not be unreachable (fully subsumed by an earlier entry).
Present ONLY when this config is an environment/project-scoped override (a "flavor") of another config. Its value is a patch that applies solely within the listed environments/projects, layered onto parent at resolution — it is NOT a standalone config. A plain config (including an ordinary child that just inherits from a parent) omits this field entirely. Read-only: create/change the relationship via the parent config's scopedOverrides, never by setting this directly.
10000The project this config belongs to (empty = all projects)
This config's own field definitions as a JSON Schema document (its contribution to the family's effective schema). Inherited fields are owned by ancestors and are not repeated here.
Whether this config family permits extra keys beyond the declared fields (child configs, feature rules, ad-hoc overrides). Only the root config's flag applies. Absent = inherit the org default.
Cross-field validation rules (relational checks JSON Schema can't express, e.g. implications or comparing two fields), evaluated against the resolved value at publish.
Whether this Config is locked to a published revision. Drafts can still be created and edited while locked, but no change can be published until a user with Bypass draft approvals access unlocks it.
Whether the experiment guard is enabled. When enabled, publishing a value used by a running experiment returns a warning that must be acknowledged with ignoreWarnings: true. Disabling the guard requires Bypass draft approvals access.
The pinned published revision (present only when locked). Fetch it via GET /configs-revisions/:key/:version for a value guaranteed not to disappear or mutate — use it to pin reproducible builds.
Id of the user who locked the config (when locked).
When the config was locked (when locked).

