Chess with randomly generated variant pieces.
Using a Clean Architecture system where updates to the board are down from the interactor to a state that is read from the view
┌───────────┐
┌───► Game View │
│ └───────────┘──┐
│ │ Board View │
│ └────┬───────┘
│ │
│ │ Drag Offset
│ │ ┌────────────────────────┐ Move ┌─────────────────┐
│ │ │ ├──────────► │
│ └─► │ │ │
│ │ Positioning Interactor │ │ Game Repository │
│ │ │ Board │ │
│ │ ◄──────────┤ │
│ └────┬─────────────────┬─┘ └─────────────────┘
│ │ │
│ │ Move positions │
│ │ │
│ ┌──────▼────────────┐ │
│◄─────────┤ Positioning State │ │ Board update
│ └───────────────────┘ │
│ │
│ │
│ ┌───────────────────▼─────┐
│◄──────────────┤ Game State │
└─────────────────────────┘
MoreChessApp
ContentView
AppState
LobbyState
GameState
PositioningState
LayoutState
LobbyInteractor
PositioningInteractor