# Contributing Thanks for looking at the project. A few conventions keep the monorepo tidy. ## Setup ```bash pnpm install pnpm typecheck pnpm test ``` ## Packages | Package | Responsibility | | --- | --- | | `client` | Game runtime (must stay free of Node-only APIs) | | `server` | Auth, lobbies, signalling | | `shared` | Types and schemas used by both ends | | `tools` | Character pipeline (Node only) | Put new gameplay types in `shared` before wiring them into client/server. ## Style - TypeScript strict; no `any` without a comment why. - Prefer small declarative room / item / cast data over one-off engine forks. - Keep PSX constraints intentional: low poly, fixed cams, fog, nearest textures. ## Pull requests 1. One concern per PR when possible. 2. `pnpm typecheck && pnpm test` green. 3. Update `README.md` / `GDD.md` when behaviour or demo layout changes. ## Character assets Prefer `pnpm cast` / the creator UI over hand-editing GLBs. Ship `assets/characters/{id}.glb` plus `.recipe.json` (and albedo if textured). Do not commit `.grok-texture-cache` or `*.analysis.json`.