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

That’s a really neat way to do things. This is getting into a gray area where game-specific concerns are going to rule, but if workflow between artists and programmers is a big concern for your item system, you should probably also be looking at the possibility of using CSVs/other external data sources to edit and organize your item data, and simply import your CSVs into your game and parse it into a predesigned class.