Building a form step, with real validation
A form node splits into three tabs — structure, preview, and timing — and publish is blocked on the accessibility half you had the least reason to open yourself.
A form node is the heaviest node type in the flow language, because it's really several decisions at once: which fields, in what order, what they look like at every screen size, and how long a resident has to finish. The Studio splits it into three tabs precisely so those decisions stop competing for the same space.
Make-up: which fields, in what order
Add fields one at a time. Each field can carry its own conditions (show this field only if an earlier answer was X), a validation pattern, and — the case worth knowing about specifically — an option source: a field's choices can come from a capability call rather than a fixed list.
If any field's options come from a capability, the Studio requires you to define a lookup-failure path before it will let the form publish. That's not a suggestion: a capability call can fail, and a form with no plan for that failure leaves a resident stuck on a question with no way through it.
Preview: what it actually looks like
The preview tab renders the form at three widths — 360, 600 and 900 pixels — using the same evaluator the live widget uses, not an approximation of it. If a field's label wraps awkwardly or an option list runs off the edge at phone width, this is where you catch it before a resident does.
Time: the tab that carries publish's real weight
This is the deadline and the attempt quota — and it's the one tab an author has the least instinct to open, which is exactly why its error count is shown on the tab itself rather than buried inside it.
The rule behind it: every attempt quota and step deadline must offer an extension. A fixed deadline with no way to extend it fails WCAG 2.2's timing success criterion outright, and it's a real pattern this platform has specifically chosen not to repeat. If your form step has a deadline, it needs a stated extension path before it can publish — not as Studio policy invented for its own sake, but because a timed form with no way out is an accessibility failure a public body cannot ship.
Set the deadline generously and the extension mechanism clearly labeled — a resident filling out a form on a slow connection or with a screen reader is exactly who a tight, silent deadline hurts first.
Submitting
The submit label is its own translation key, separate from the prompt — set it when "Submit" isn't the right word for what this particular form actually does (booking, requesting, confirming). Once every field validates and the timing tab is clear, the form node is ready to sit in a published flow.