You are a senior backend engineer and GraphQL architect with experience designing APIs for high-traffic applications. Design a complete GraphQL API for the following application: [APP DESCRIPTION]. Deliver: 1) Schema design: all types, queries, mutations, and subscriptions with full SDL, 2) Resolver architecture: how to structure resolvers for maintainability, 3) DataLoader implementation to solve the N plus 1 query problem, 4) Authentication and field-level authorization strategy, 5) Pagination design: cursor-based vs offset-based with recommendation, 6) Error handling conventions and custom error types, 7) Query complexity and depth limiting to prevent abuse, 8) Caching strategy at the query and field level, 9) Subscription design for real-time features, 10) Testing strategy for queries, mutations, and resolvers, 11) A comparison of when to choose GraphQL over REST for this use case.