Files
core2026/docs/architecture/rewrite-plan.md
T

1.5 KiB

TypeScript Rewrite Plan

The rewrite targets a pnpm workspace-based monorepo with Node.js services and Vue 3 frontends.

Planned Layout

  • /packages/common: shared utilities and type definitions
  • /packages/logic: pure game logic with DI and interfaces
  • /app/gateway-frontend: gateway UI
  • /app/gateway-api: gateway service
  • /app/game-frontend: game UI
  • /app/game-api: game backend per server profile
  • /app/game-engine: turn daemon per server profile
  • /tools/build-scripts: build and deployment scripts

Runtime Stack (Planned)

  • Backend: Node.js + Fastify
  • API: tRPC + zod
  • ORM: Prisma
  • Frontend: Vue 3, Pinia, Vue Router, TailwindCSS, Vite
  • Data: PostgreSQL, Redis sessions
  • Testing: Vitest

Frontend Direction

  • Gateway and game apps are separate SPAs (/app/gateway-frontend, /app/game-frontend).
  • UI visuals should stay close to the legacy look, but layout changes are allowed as long as required information is preserved.
  • Prefer client-driven rendering: fetch most data via API and let the client own data shaping and presentation unless the data must be hidden.

Constraint Evaluation Contract

The shared constraint contract (daemon vs API precheck split) is documented in docs/architecture/rewrite-constraints.md.

Legacy Data Migration

  • Legacy data is for migration only; the rewrite runtime does not depend on it.
  • Once DB migration is complete, legacy data can be retired.

Profiles (Planned)

  • che, kwe, pwe, twe, nya, pya