@0xdcf6fa9421875ce0; enum House { stark @7; greyjoy @6; lannister @5; targaryen @4; baratheon @3; tyrell @2; tully @1; varys @0; } struct Location { union { # Is card on the board board :group { x @0 :UInt8 = 0; y @1 :UInt8 = 0; } # Or held by a player player :group { index @2 :UInt8 = 0; } } } struct Card { house @0 :House; location @1 :Location; } struct State { cardlist @0 :List(Card); }