39 lines
1.1 KiB
Markdown
39 lines
1.1 KiB
Markdown
# 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
|
|
|
|
## 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`
|