# farukshihab/mono architecture

> Architecture diagram of the GitHub repository farukshihab/mono, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/farukshihab/mono
- Repository: https://github.com/farukshihab/mono

## Overview

This repository appears to be a Godot UNO-style multiplayer game: players join a lobby, play card-game rounds, and use network/relay components. The tree identifies these product areas, but the README is empty and gameplay source was not sampled, so the connections between them are intentionally left unspecified.

Main entry points: [`scripts/relay_client.gd`](https://github.com/farukshihab/mono/blob/main/scripts/relay_client.gd) (Relay client), [`scenes/lobby.tscn`](https://github.com/farukshihab/mono/blob/main/scenes/lobby.tscn) (Lobby scene), [`scenes/game_ui.tscn`](https://github.com/farukshihab/mono/blob/main/scenes/game_ui.tscn) (Game UI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_presentation["Game presentation"]
  node_lobby_scene["Lobby scene<br/>[lobby.tscn]"]
  node_lobby_script["Lobby logic<br/>[lobby.gd]"]
  node_game_ui["Game UI<br/>[game_ui.tscn]"]
  node_card_art["Card artwork"]
end

subgraph group_gameplay["Card gameplay"]
  node_game_scene["Game scene<br/>[game.tscn]"]
  node_game_logic["Game logic<br/>[game.gd]"]
  node_deck_logic["Deck logic<br/>[deck.gd]"]
  node_card_scene["Card scene<br/>[card.tscn]"]
  node_card_logic["Card logic<br/>[card.gd]"]
end

subgraph group_network["Multiplayer networking"]
  node_multiplayer_player["Remote player"]
  node_network_manager["Network manager<br/>[network_manager.gd]"]
  node_relay_client["Relay client<br/>[relay_client.gd]"]
end

node_player(("Player"))
node_relay_service{{"Relay service"}}

node_player -->|"interacts"| node_lobby_scene
node_player -->|"plays through"| node_game_ui
node_relay_client -.->|"communicates"| node_relay_service

click node_lobby_scene "https://github.com/farukshihab/mono/blob/main/scenes/lobby.tscn"
click node_lobby_script "https://github.com/farukshihab/mono/blob/main/scripts/lobby.gd"
click node_game_ui "https://github.com/farukshihab/mono/blob/main/scenes/game_ui.tscn"
click node_game_scene "https://github.com/farukshihab/mono/blob/main/scenes/game.tscn"
click node_game_logic "https://github.com/farukshihab/mono/blob/main/scripts/game.gd"
click node_deck_logic "https://github.com/farukshihab/mono/blob/main/scripts/deck.gd"
click node_card_scene "https://github.com/farukshihab/mono/blob/main/scenes/card.tscn"
click node_card_logic "https://github.com/farukshihab/mono/blob/main/scripts/card.gd"
click node_multiplayer_player "https://github.com/farukshihab/mono/blob/main/scenes/multiplayer_player.tscn"
click node_network_manager "https://github.com/farukshihab/mono/blob/main/scripts/network_manager.gd"
click node_relay_client "https://github.com/farukshihab/mono/blob/main/scripts/relay_client.gd"
click node_card_art "https://github.com/farukshihab/mono/tree/main/assets/cards"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_lobby_scene,node_lobby_script,node_game_ui,node_card_art toneBlue
class node_game_scene,node_game_logic,node_deck_logic,node_card_scene,node_card_logic toneAmber
class node_multiplayer_player,node_network_manager,node_relay_client toneMint
class node_player,node_relay_service toneIndigo
```

## Components

### Game presentation

- [Lobby scene](https://github.com/farukshihab/mono/blob/main/scenes/lobby.tscn): `scenes/lobby.tscn`
- [Lobby logic](https://github.com/farukshihab/mono/blob/main/scripts/lobby.gd): `scripts/lobby.gd`
- [Game UI](https://github.com/farukshihab/mono/blob/main/scenes/game_ui.tscn): `scenes/game_ui.tscn`
- [Card artwork](https://github.com/farukshihab/mono/tree/main/assets/cards): `assets/cards`

### Card gameplay

- [Game scene](https://github.com/farukshihab/mono/blob/main/scenes/game.tscn): `scenes/game.tscn`
- [Game logic](https://github.com/farukshihab/mono/blob/main/scripts/game.gd): `scripts/game.gd`
- [Deck logic](https://github.com/farukshihab/mono/blob/main/scripts/deck.gd): `scripts/deck.gd`
- [Card scene](https://github.com/farukshihab/mono/blob/main/scenes/card.tscn): `scenes/card.tscn`
- [Card logic](https://github.com/farukshihab/mono/blob/main/scripts/card.gd): `scripts/card.gd`

### Multiplayer networking

- [Remote player](https://github.com/farukshihab/mono/blob/main/scenes/multiplayer_player.tscn): `scenes/multiplayer_player.tscn`
- [Network manager](https://github.com/farukshihab/mono/blob/main/scripts/network_manager.gd): `scripts/network_manager.gd`
- [Relay client](https://github.com/farukshihab/mono/blob/main/scripts/relay_client.gd): `scripts/relay_client.gd`

### Other components

- **Player**
- **Relay service**

## Connections

- Player → Lobby scene: interacts
- Player → Game UI: plays through
- Relay client → Relay service: communicates
