Goal: Use generics + zod schemas so `req.query` and `req.body` are typed, defaulting to `any` when no schema is provided.