### Description The GraphQL schema and resolvers exist in two files. `server/index.ts` is used by the running server, and `server/schema.ts` is an older copy used only by the API tests. The copy is missing `ratePokemon`, the `voterId` argument and sorting by rating, so those features are not covered by any test. The `pokemons` resolver also contains four almost identical SQL queries (with/without type filter, times with/without cursor), plus duplicated count queries. Changes: - Move the complete schema and resolvers (including `ratePokemon`, `voterId` and rating sort) into `server/schema.ts`. - Make `server/index.ts` import `typeDefs` and `resolvers` from `schema.ts`. It should only seed the database and start the server. - Replace the four SQL branches in the `pokemons` resolver with one query built from a list of conditions and parameters (search, optional type filter, optional cursor). - Remove the unused `SORT_COLUMNS` object and the `PokemonSortField`/`SortOrder` enums if they are still unused. ### Rationale Every change to the API currently has to be made twice, and every change to the pokemons query four times. The tests check a copy of the code instead of the code that runs in production, so bugs in rating features would not be caught. This must be fixed before adding sorting by average rating, so that the feature only has to be written once and can be tested. ### Acceptance criteria - [x] The schema and resolvers are defined in one place only - [x] `server/index.ts` imports `typeDefs` and `resolvers` from `server/schema.ts` - [x] The `pokemons` resolver uses one query builder instead of four separate SQL branches - [x] All existing API tests pass without changes to what they expect - [x] New API tests cover `ratePokemon` (valid rating, invalid value, unknown Pokémon) and sorting by own rating - [x] Search, type filter, sorting and pagination work the same in the browser as before - [x] Lint, Prettier and all tests pass