In order to use a Text instance, for example, you need a boundaryLocator to find the bounds. But there's no nice way to hook that in and keep the lower level components stateless.
Also the Theme instances clearly expect a terminal, they don't relate to anything else.
The alternative is to double down on terminals, at least for the component system/built in components?