Rendering¶
Rendering is handled in render.lua.
Key design¶
Widgets mutate registry state.
The renderer builds tree output from registry state.
Steps¶
- build nested tree
- attach popup nodes
- compute interactions
- flatten tree
- emit JSON
Deduplication¶
- last output is cached by root id
- identical trees are skipped
Swift tree application¶
Swift-side application is handled in:
WidgetEngineWidgetStore
Update logic:
- remove old nodes for root
- insert new nodes
- rebuild index
No diffing is needed.