refactor(api): reorganize services folder by game mode #6

Open
opened 2026-04-17 07:26:11 +00:00 by forgejo-lila · 0 comments
Owner

Background

Currently all services sit flat under apps/api/src/services/:

  • gameService.ts — single-player game logic
  • lobbyService.ts — lobby management
  • multiplayerGameService.ts — multiplayer game logic

As game modes grow, this will become hard to navigate. The folder
should be reorganized by mode:

Proposed structure

apps/api/src/services/
singleplayer/
gameService.ts
gameService.test.ts
multiplayer/
gameService.ts
lobbyService.ts
shared/
(any logic shared across modes)

When to do this

When a third service appears, or when single-player gets its own
mode variants. Not before — premature structure adds friction without
benefit.

Acceptance criteria

  • Services reorganized into mode-specific subfolders.
  • All imports updated across controllers, handlers, and tests.
  • Build and tests pass after reorganization.
  • No behavioral changes.
## Background Currently all services sit flat under `apps/api/src/services/`: - `gameService.ts` — single-player game logic - `lobbyService.ts` — lobby management - `multiplayerGameService.ts` — multiplayer game logic As game modes grow, this will become hard to navigate. The folder should be reorganized by mode: ## Proposed structure apps/api/src/services/ singleplayer/ gameService.ts gameService.test.ts multiplayer/ gameService.ts lobbyService.ts shared/ (any logic shared across modes) ## When to do this When a third service appears, or when single-player gets its own mode variants. Not before — premature structure adds friction without benefit. ## Acceptance criteria - [ ] Services reorganized into mode-specific subfolders. - [ ] All imports updated across controllers, handlers, and tests. - [ ] Build and tests pass after reorganization. - [ ] No behavioral changes.
Sign in to join this conversation.
No labels
feature
multiplayer
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: forgejo-lila/lila#6
No description provided.