Storing vertex groups with additional properties

Okay, so I had been hacking away at a solution to this problem for a couple of days and after finally getting to the point where I thought I had it figured out, I was informed that the info I was storing can’t be fed into a UIList >.<

So before I start another approach, I want to see if I can get a consensus on what the best way to do this would be.

Basically, I need to be able to store vertex groups, and each group I store needs to be able to have four additional properties associated with it that can be saved with the blend file. Ideally I’d like to use a custom datablock for the vertex/face groups, but if I have to end up using the built in vertex groups it’s not the end of the world.

The way I had been doing it originally was to give the object a custom property named “zones”, which stored an array of dictionaries populated by additional properties:

ob[“zones”] = [{“id”: 1, “name”: “someName”, “verts”: (1, 4, 6), “prop1”: “someValue”, …}]

So, I need a solution that can store similar data points while still being able to populate a list with the “name” values. Any ideas?