Separating storage for shader widgets

At the moment, if you place several shader widgets on the same screen they share the “storage” argument passed into the Primitive prepare() and render() functions.
Since Storage keys are based on type and same types are used that creates a problem - which can be easily solved, but I was wondering if this is the intended behaviour.
One benefit of the current implementation is that some objects can be shared across several shader widgets and that can improve performance.

Being able to share objects across shader widgets when there are many widgets using same textures is essential in order to avoid wasting VRAM with having to store multiple copies of identical texture data.

Having said that, I also have a use case where I’d prefer a neat way to be able to store certain widget-specific resources separately in the shader::Storage, not having to rely on more-or-less hacky workarounds.