@0x8c474a82150f9ee5; enum CardType { chopstick @0; dumpling @1; maki @2; nigiri @3; pudding @4; sashimi @5; tempura @6; wasabi @7; } enum Desserts { pudding @0; } enum PlayerCardLocations { hand @0; meal @1; carry @2; } struct Location { union { deck :group { deck @0 :Bool; } player :group { # Which player index @1 :UInt8; location @2 :PlayerCardLocations; } } } struct Card { type @0 :CardType; location @1 :Location; }