Section 4 · OES Spec
Variants
Each variant — independently identifiable, documentable, and presentable.
Variants are the unit a product team actually talks about: control, treatment, holdout. Each one should be stably identifiable across systems and carry enough metadata to render a scorecard or a slide without re-deriving anything from the source product.
Fields
| Field | Type | Purpose |
|---|---|---|
| variant.idrequired | string | Stable variant ID. |
| variant.keyrequired | string | Machine key — e.g. control, treatment_1. |
| variant.name | string | Human label. |
| variant.role | enum | control, treatment, holdout, baseline. |
| variant.description | string | What changed. |
| variant.allocation | number (0–1) | Percent allocation. |
| variant.featureFlagKeys | string[] | Related flags. |
| variant.config | object | JSON config shown to users, if safe to export. |
| variant.screenshots | object[] | Optional visual artifacts. |
| variant.urls | object[] | URLs, preview links, rollout docs. |
| variant.codeReferences | object[] | PRs, commits, package versions. |