id is the key used by $widget.values and from: 'input' bindings.
Control types
on.change when committing a value should also refresh another cell, as in the quickstart.
Configuration
Use
submit inside a FORM, which supplies the commit action. A standalone submit-only input has no form submission path.
Values and drafts
Typing creates a draft. A successful commit validates it and updates$widget.values. A FORM commits its fields together. With valueMode: 'initial', later server defaults do not replace existing values. With sync, a returned value may refill the control only if there is no newer edit or pending draft.
Use nullish defaults (??) when 0, false or '' are meaningful. UI validation improves feedback; the write Component must enforce the same business constraints. See state and lifecycle.
