Right now the client types are hand-written in `client/src/types.ts` and will drift from the SDL. We already shipped one schema-shape bug this way (`GenreFacet.genre`, see `docs/AI-USAGE.md`). - [ ] `@graphql-codegen` with the client preset (or `gql.tada`) - [ ] generate types from `server/src/schema.graphql` - [ ] replace `client/src/types.ts` with the generated types - [ ] `pnpm codegen` script + a CI check that generated files are up to date **Acceptance:** renaming a field in the SDL breaks the client build instead of failing at runtime.