Visitor over a fully resolved tree. A renderer translates each ResolvedNode and each ResolvedChild.TextRun into a platform value of type T.
Resolve spec for viewport into a ResolvedSpec, then walk it with renderer via renderResolved. scope is threaded through every callback.
Walk an already-resolved resolved tree with renderer, post-order from its root, threading scope through every callback. Use this overload to skip cascade/viewport work when a ResolvedSpec is already in hand.