OptionalaccessibilityOptionalanchorUIWidget.anchor, as [x, y].
OptionalatlasLabel.atlas. Default null.
OptionaldirectionOptionaldisabledOptionalenabledNode.enabled; false removes the widget from layout entirely.
OptionalfeaturesOptionalfocusableOptionalfontOptionalgrowOptionalheightOptional ReadonlyidThe node's Node.id, for a node being restored rather than created (§79: "the engine assigns ids only to newly created objects").
Omit it — which is what every ordinary construction does — and the engine assigns the next counter value. Supply one and it is used verbatim and reserved, so no later node can be given the same id (2026-08-06, A-17). Ids are opaque strings: the format does not require them to look like the engine's own.
OptionalinteractiveOptionallabelUIWidget.label — writes accessibility.label. Applied after
UIWidgetOptions.accessibility so an explicit record still wins on
every other field, and a lone label does not require building one.
OptionallanguageOptionalletterLabel.letterSpacing. Default 0.
OptionalmarginOptionalmaxOptionalmaxOptionalminOptionalminOptionalnameOptionaloffsetUIWidget.offset, as [x, y].
OptionalpaddingOptionalpivotUIWidget.pivot, as [x, y].
OptionalroleUIWidget.role — writes accessibility.role. Same merge rule as
UIWidgetOptions.label.
OptionalscriptOptionalshaperOptionalsizeLabel.size. Default 1.
OptionaltextLabel.text. Default "".
OptionalvisibleOptionalwidthOptionalwrapMaximum line width in world units. Omitted (or Infinity) leaves line
ends at explicit \n only — bit-identical to the pre-wrapping walk.
A finite positive measure wraps at UAX #14-lite opportunities
(line-break.ts): breaking spaces, hyphen-minus, and CJK; a single
unbreakable run wider than the measure overflows rather than being
clipped.
Construction options for a Label.