Tryst::UI::TabValidator
@api private
A tab's own contract: it has to be declared directly inside a ui.tabs. WidgetDSL#tab already refuses to run anywhere else, so this is only reachable by building the tree by hand (direct Document/Node manipulation) - the same defense in depth GridValidator's stray-cell check provides for grid. Composed into WidgetValidators via :tab's own WidgetType#validator (see widget_types/tab.cr).