### Description Ratings are stored per voter in the ratings table, but the API only exposes them indirectly through sorting by the current voter's own rating. Expose aggregated rating data on the Pokemon type. - Add averageRating: Float to the Pokemon type. It is null when the Pokémon has no ratings. - Add ratingCount: Int! to the Pokemon type. - Implement both as field resolvers that aggregate from the ratings table. - Apply the same changes to server/schema.ts so the API tests cover them. ### Rationale The assignment requires user-generated data that is stored on the server and presented to users. The API must expose the aggregate before the frontend can present other users' ratings. Returning the updated Pokémon from the mutation lets Apollo Client update the cache without an extra refetch, which reduces requests. ### Acceptance criteria - [x] averageRating and ratingCount are returned by both the pokemons and pokemon queries - [x] A Pokemon without ratings returns averageRating: null and ratingCount: 0 - [x] ratePokemon returns the Pokémon with an updated averageRating and ratingCount - [x] Changing an existing rating updates the average without increasing the count - [x] Existing validation in ratePokemon (ID, voter ID, value 1-5) is unchanged - [x] API tests cover: no ratings, one rating, several ratings, and an updated rating - [x] Lint, Prettier and all tests pass