# pomb/palinum architecture

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

- Interactive diagram: https://gitdiagram.com/pomb/palinum
- Repository: https://github.com/pomb/palinum

## Overview

Palinum is a LÖVE palindrome-matching game. The documented player workflow is to move a cursor, connect blocks, form palindromes, and score. The README also documents a toggleable console with help. Source excerpts were unavailable, so links between implementation modules are omitted where the tree and README do not establish them.

Main entry points: [`src/game_board.lua`](https://github.com/pomb/palinum/blob/master/src/game_board.lua) (Game board), [`libraries/doodlehouse/board/cursor.lua`](https://github.com/pomb/palinum/blob/master/libraries/doodlehouse/board/cursor.lua) (Cursor), [`src/console.lua`](https://github.com/pomb/palinum/blob/master/src/console.lua) (Console), [`src/gameStates/helpState.lua`](https://github.com/pomb/palinum/blob/master/src/gameStates/helpState.lua) (Help state)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_gameplay["Gameplay"]
  node_entry["Game entry<br/>[main.lua]"]
  node_game_state["Game state<br/>[gameState.lua]"]
  node_board["Game board<br/>[game_board.lua]"]
  node_cursor["Cursor<br/>[cursor.lua]"]
  node_cells["Board cells<br/>[cell.lua]"]
  node_blocks["Blocks<br/>[block.lua]"]
  node_score["Score result<br/>[game_board.lua]"]
end

subgraph group_interface["Interface"]
  node_console["Console<br/>[console.lua]"]
  node_help_state["Help state<br/>[helpState.lua]"]
  node_menu_state["Menu state<br/>[menuState.lua]"]
end

node_player(("Player"))

node_player -->|"connects blocks"| node_board
node_player -->|"moves"| node_cursor
node_board -->|"scores palindromes"| node_score
node_player -->|"toggles"| node_console
node_player -->|"requests help"| node_help_state

click node_entry "https://github.com/pomb/palinum/blob/master/main.lua"
click node_game_state "https://github.com/pomb/palinum/blob/master/src/gameStates/gameState.lua"
click node_board "https://github.com/pomb/palinum/blob/master/src/game_board.lua"
click node_cursor "https://github.com/pomb/palinum/blob/master/libraries/doodlehouse/board/cursor.lua"
click node_cells "https://github.com/pomb/palinum/blob/master/libraries/doodlehouse/board/cell.lua"
click node_blocks "https://github.com/pomb/palinum/blob/master/src/objects/block.lua"
click node_score "https://github.com/pomb/palinum/blob/master/src/game_board.lua"
click node_console "https://github.com/pomb/palinum/blob/master/src/console.lua"
click node_help_state "https://github.com/pomb/palinum/blob/master/src/gameStates/helpState.lua"
click node_menu_state "https://github.com/pomb/palinum/blob/master/src/gameStates/menuState.lua"

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_entry,node_game_state,node_board,node_cursor,node_cells,node_blocks,node_score toneBlue
class node_console,node_help_state,node_menu_state toneAmber
class node_player toneIndigo
```

## Components

### Gameplay

- [Game entry](https://github.com/pomb/palinum/blob/master/main.lua): `main.lua`
- [Game state](https://github.com/pomb/palinum/blob/master/src/gameStates/gameState.lua): `src/gameStates/gameState.lua`
- [Game board](https://github.com/pomb/palinum/blob/master/src/game_board.lua): `src/game_board.lua`
- [Cursor](https://github.com/pomb/palinum/blob/master/libraries/doodlehouse/board/cursor.lua): `libraries/doodlehouse/board/cursor.lua`
- [Board cells](https://github.com/pomb/palinum/blob/master/libraries/doodlehouse/board/cell.lua): `libraries/doodlehouse/board/cell.lua`
- [Blocks](https://github.com/pomb/palinum/blob/master/src/objects/block.lua): `src/objects/block.lua`
- [Score result](https://github.com/pomb/palinum/blob/master/src/game_board.lua): `src/game_board.lua`

### Interface

- [Console](https://github.com/pomb/palinum/blob/master/src/console.lua): `src/console.lua`
- [Help state](https://github.com/pomb/palinum/blob/master/src/gameStates/helpState.lua): `src/gameStates/helpState.lua`
- [Menu state](https://github.com/pomb/palinum/blob/master/src/gameStates/menuState.lua): `src/gameStates/menuState.lua`

### Other components

- **Player**

## Connections

- Player → Game board: connects blocks
- Player → Cursor: moves
- Game board → Score result: scores palindromes
- Player → Console: toggles
- Player → Help state: requests help
