Retained tree

Build your UI as a retained tree of nodes. Create nodes, set properties, attach children, then commit so the host applies the diff.

#![allow(unused)]
fn main() {
// Pseudocode — see apps/hello for the real pattern
let root = retained::create_node();
retained::set_property(root, caps::LAYOUT, caps::LAYOUT_FLEX_DIRECTION, ...);
retained::append_child(root, label_node);
retained::commit();
}

The host keeps the tree between frames. Mutate it in response to events.