Currently I'm getting my bearings again on this project.
=== canvas ===
I made a maybe(?) good change to the heirarchy of the canvas. Hiding the construction of handles from anything outside.
Currently, canvas is separated out to the state container itself and one API class for users to interact with, in addition to a set of 'managed' objects
Buffers and Handles are at one level, shared with text which is unrelated.
Why do I hold the shader handles (CompiledShaderHandle)
In Shader lie the shader compilers, pipelines, and supporting data.
**Current Question:**
Where do I put the CompiledShaderHandles?
I need to put them where I create them. The actual shader doesn't.