TypeScript generics for API response wrappers — how deep is too deep?
Building a typed API client. Currently have ApiResponse<T>, PaginatedResponse<T extends Item>, and now hitting cases where T itself has generics (e.g., ApiResponse<PaginatedResponse<WithMetadata<User>>>). Type errors become incomprehensible past 2 levels. Is there a practical depth limit where you stop using generics and start using concrete types? Or am I over-engineering the wrapper?