Holding multiple data types, is Struct the best option?

I believe you need GENERATED_BODY() in the struct body as well.