I have been working on a project now for a number of few weeks full time - hundreds of hours.
Every single time I find a need there is already a solution.
For instance, my scene has over 200 chain linked (parent child) objects (bones), I use small mesh spheres to mark the position of what I call joints, they help for visualisation but also form the core of my bespoke rigging and so much more, I can pick them, manipulate them and inquire of them using the debug code I have developed so an indispensable part of my project but with an overhead when I do not need to see the spheres.
I imagined when the project was complete I would simply have to set them to invisible since they would still be a core part of the functionality of my joints, I would have to suffer the performance and memory overhead.
Then today I see a note about performance leading to TransformNode which can do exactly the same job as my little “joint spheres” but without the overhead, I try a single line change and the whole thing works perfectly but without needing to allocate and maintain meshes. All I need to do now is implement a debug switch and optionally replace my sphere joints with TransformNodes.
This is happening time and time again, just reading around doc I find solutions to needs I have and solutions to needs I had not even thought of, this was all very well architected and thought out, its just the mark of excellent software that you only have to seek and you shall find and usually it will take 3 or 4 lines of new code to implement a new feature or optimisation.