My mental model of the UI says you can change the tree from outside (of course) and during `Update()`, but not during event handlers, `Layout()` or `Draw()`. But we don't enforce that, and probably break those rules. Enforcing it sooner rather than later would be very good.