Where does this custom inventory data "live" at runtime?

well, i dont think it is wasteful, because there are times when you want to spawn items in the world dont you?
So without an actor as baseclass how is that supposed to be done?

I never saw someone spawns a struct in the world, so the “real” item should be a class in the end.

However using a struct for an inventory isnt a bad idea, since you could have a struct holding AItem* and f.e. the amount of those items inside an
Array of a character. And when you drop something out of your inventory you would use the item inside the struct and spawn it into the world.

thats my opinion^^