statefulAllows
stateful allows, stateful allowlist, statefulDisallows, nesting allowlist, maxNestingDepthDefinitions
The allowlist on a composable field naming which stateful components (a widget or a composite) may nest inside it, alongside maxNestingDepth, a depth budget counted through containers
Non-stateful content (rich text, images, links, video) is always allowed and never listed. The gate exists because two state machines sharing one keyboard is the real risk, not nesting in general. Adding an entry is an Extension-tier change that needs a focus and keyboard review. On 2026-09-29 the team agreed to invert it into a disallow list. On 2026-09-30 that was reversed, because nesting a stateful component needs explicit validation first. An 'under review' stage and an explicit disallowed list were proposed the same day but aren't in the schema.
The same list, recorded from what production nests
A cwds Component Contract fills statefulAllows from its corpus, with the sources and the date it was observed. An empty list there means 'none observed', not 'none permitted'. Since cwds #73 a call to action that goes somewhere is a Link, kind content, so it never needs an entry.
Which interactive components may live inside another one. Listed, never assumed, because a nested widget's keys can collide with its host's.