Format
Content is a string, a number, or an object of named fields, nested up to four container levels. The format is a field spec, or an object of named field specs, mirroring the content:
Three names are impossible in content:
type (it marks a typed spec), __proto__, and anything nested deeper than four levels. Content values are never booleans or nulls.
Omitted, the format is inferred from the control on the first call: a string control is a text field, an object control is an object of text fields, and so on. Declared, the control must match it. The format is what makes a variant servable by your renderer without a code change, so it is fixed for the experiment’s life: a changed format supersedes the experiment. An omitted format on a later call carries the running one forward.
The type of the element never constrains the format; a provided control is the ground truth about what your renderer displays.
Requirements
arm_invalid warning. Character and length limits belong in the format, not here. Requirements are fixed for the experiment’s life: a tightened rule would make existing arms non-compliant, so a change supersedes the experiment.
Instructions
Prose guidance for future variants ("instructions": "Optimize for enterprise buyers evaluating an upgrade. No hype.") is neither a format nor a requirement. It updates in place and shapes the next generation round without touching existing arms.