Radio
Single choice, all options visible. Renders as a radio group inside a fieldset with the prompt as its legend. Once a respondent picks an option there is no way back to “no selection” — use a Dropdown (which has a clear button) if unselecting matters.
Configuration
Section titled “Configuration”An ordered list of options, edited with add / move / delete controls. Each option needs a non-empty label; the editor warns (without blocking) when there are fewer than two.
"typeConfig": { "options": [ { "id": "opt-1", "label": "Cake" }, { "id": "opt-2", "label": "Ice cream" }] }Stored answer
Section titled “Stored answer”The selected option’s label as a string:
{ "dessert": "Cake" }The option id exists only in the definition — stored data and rules use
the label, so responses read naturally without a lookup table. The
corollary: relabeling an option after responses exist changes what new
answers store, so treat labels with the same care as
question codes.
Answered: a non-empty string is stored.
Rule operators
Section titled “Rule operators”equals, not equals, compared against option labels — the rule builder
offers the labels in a dropdown. Unanswered matches neither.