How to instance a custom Blueprint Object into a variable?

I looked into soft and weak pointers and from what I can tell I can reference a class instead of an instance if I use Soft Class Reference type in VarThing which doesn’t seem ideal since I’d have to make a new class everytime I make a new MyThing.

I have no idea what you mean by PrimaryAssetID and AssetManager setup

However I did looked into Data Assets and these do look promising and would work if I made MyThing blueprint inherit from Primary Data Asset and then created instances of it as such:

are there any limitations I might face while doing this? other than not having custom icons? lol