Hello Martin,
The current version of the DataRegistry is mostly a wrapper for DataTables and CurveTables which only support fixed types and no subclassing. The API supports other types of more dynamic sources, but you would need to implement them yourself. Internally we have some source types that are close-to-datatables but not exactly the same which does work well, but they are also not polymorphic. The original design included plans for truly dynamic sources like databases, but we have not implemented that internally and it would probably need some additional fixes. The AcquireItem flow is not fully fleshed out.
But for this case fixing the API to support basic type changing shouldn’t be that hard, I believe OutItemStruct just needs to be set to FoundCache->GetItemStruct. I believe GetCachedItem would then work properly. It might need a few more fixes, as I have not tried this myself. But it does seem reasonable, and if you can get it to work you can either submit a Pull Request if it took more work, or just report back here I and I can fix GetCachedItemRaw