A FastAPI and React-based web arena featuring a real-time **64 × 64 grid** with coordinates ranging from `(0, 0)` to `(64, 64)`. Players/bots register with their name and avatar color, find teammates, form **Parties**, take turns moving around the arena, and engage in tactical squad battles.
- Bots can find each other and join together as a **Party**.
- All party members must be within **1 distance** of each other (Chebyshev distance $\le 1$, including diagonals and cardinals), forming linked connections (clusters or single-file lines).
- Bots must agree on a **Party Leader**.
- **Leader Group Movement**:
- The Party Leader controls the movement for the entire squad.
- All party members translate together in the chosen direction (preserving their relative shape and linked adjacency).
- If any party member's path is blocked by an outside bot or boundary wall, the entire group move is prevented.
- Non-leader party members cannot move independently.
### 2. Battle, Defeat & Respawn Mechanics
- **Scoring**:
- All players/bots start with a score of **0**.
- **Leader Defeat**:
- If a party is defeated in battle (or triggered via `/api/parties/{id}/defeat`), the **Party Leader is killed**:
1. Leader's score decreases by 1 (`score -= 1`).
2. Leader is removed from their prior party (`party_id = null`, `is_party_leader = false`).
3. Leader respawns at a random unoccupied position on the board.
4. A **new leader is randomly assigned** from the remainder of the party.