FGN — Feet Game Notation
A chess-like way to write down a game. Every one of the 81 squares has a unique name, so a full game replays from its move list alone.
Coordinates
The whole 9×9 grid is addressed like a chessboard: files a–i left to right, ranks 1–9 top to bottom. One token names one square — e5 is the center of the center board. The small board a square belongs to is just the 3×3 block it falls in, and the square's position within its block is the Send.
a b c d e f g h i +-------+-------+-------+ 1 | . . . | . . . | . . . | 2 | . . . | . . . | . . . | 3 | . . . | . . . | . . . | +-------+-------+-------+ 4 | . . . | . . . | . . . | 5 | . . . | . e5. | . . . | e5 = center square of the center board 6 | . . . | . . . | . . . | +-------+-------+-------+ 7 | . . . | . . . | . . . | 8 | . . . | . . . | . . . | 9 | . . . | . . . | . . . | +-------+-------+-------+
Annotations
| Token | Meaning |
|---|---|
| e5 | A normal placement at file e, rank 5 (dead center). |
| e5x | This move captured a small board (claimed that big square). x = capture, as in chess. |
| e5= | This move filled a small board with no winner — a dead board. |
| e5# | This move won the game. A capturing win is written e5x#. |
| *e5 | A free-choice move: the player was sent to a decided or full board and picked freely. |
| + | Optional: the move creates a winning threat on the big board (like check). |
Recording a game
Games are written like chess: numbered move pairs (X then O), ending in a result token — 1-0, 0-1, or 1/2-1/2. An optional PGN-style header archives the details.
[Event "Ranked"] [Date "2026.07.07"] [X "alice"] [O "bob"] [Result "1-0"] 1. e5 e1 2. b2 d4 3. e4x a5 4. f6 ... ... 1-0
Because coordinates are absolute, the engine can replay any FGN string, verify legality move by move, and reconstruct the full board — which is exactly what powers game archives, shareable links, and the AI.