A schema defines the initial root operation type for each kind of operation it supports: query, mutation, and subscription; this determines the place in the type system where those operations begin.
Query: For fetching data. The query root operation type must be provided and must be an Object type.
Mutation: For modifying data (create, update, delete). The mutation root operation type is optional; if it is not provided, the service does not support mutations. If it is provided, it must be an Object type.
Subscription: For real-time data (using WebSockets). Similarly, the subscription root operation type is also optional; if it is not provided, the service does not support subscriptions. If it is provided, it must be an Object type.