docs: consolidate current architecture documentation

This commit is contained in:
2026-07-30 14:15:47 +00:00
parent 2045086278
commit 027225081d
56 changed files with 924 additions and 6369 deletions
-55
View File
@@ -1,55 +0,0 @@
# 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 (RNG/bytes/테스트 RNG 포함, no infra)
- `/packages/infra`: Prisma/Redis connectors and other runtime infra
- `/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+scenario profile
- `/app/game-engine`: turn daemon per server+scenario profile
- `/tools/build-scripts`: build and deployment scripts
## Current Implementation Notes
- `packages/infra` is live and used by game-api/game-engine services.
- `app/game-api` and `app/game-engine` have initial implementations (tRPC endpoints, turn daemon loop).
- Redis transport for turn daemon control is implemented and wired.
- Frontend apps remain placeholders while backend/runtime stabilizes.
## 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)
- Profiles are server+scenario pairs; scenario selection is required for build/runtime.
- Server IDs: `che`, `kwe`, `pwe`, `twe`, `nya`, `pya`