#[derive(Debug)] struct Shop { cards: [Card; 5], coins: [u8; 5], } #[derive(Debug)] enum Icon { Circle, Square, Triangle, Color, } #[derive(Debug)] enum CardField { Icon(Icon), DoubleIcon((Icon, Icon)), PointsPer(Icon), Empty, } #[derive(Debug)] struct Card { field: [CardField; 5], } #[derive(Debug)] struct Player { cards: Vec, coins: u8, paintings: Vec<[Card; 3]>, } #[derive(Debug)] struct Board { players: Vec, shop: Shop, objectives: [Objective; 4], } #[derive(Debug)] struct Objective {} fn main() {}