@@ -141,24 +141,24 @@ introspection system.
141141
142142### Root Operation Types
143143
144- A schema defines the initial root operation type for each kind of operation it
145- supports: query, mutation, and subscription; this determines the place in the
144+ :: A schema defines the initial _ root operation type _ for each kind of operation
145+ it supports: query, mutation, and subscription; this determines the place in the
146146type system where those operations begin.
147147
148- The {` query ` } root operation type must be provided and must be an Object type.
148+ The {` query ` } _ root operation type _ must be provided and must be an Object type.
149149
150- The {` mutation ` } root operation type is optional; if it is not provided, the
150+ The {` mutation ` } _ root operation type _ is optional; if it is not provided, the
151151service does not support mutations. If it is provided, it must be an Object
152152type.
153153
154- Similarly, the {` subscription ` } root operation type is also optional; if it is
154+ Similarly, the {` subscription ` } _ root operation type _ is also optional; if it is
155155not provided, the service does not support subscriptions. If it is provided, it
156156must be an Object type.
157157
158158The {` query ` }, {` mutation ` }, and {` subscription ` } root types must all be
159159different types if provided.
160160
161- The fields on the {` query ` } root operation type indicate what fields are
161+ The fields on the {` query ` } _ root operation type _ indicate what fields are
162162available at the top level of a GraphQL query operation.
163163
164164For example, this example operation:
@@ -169,7 +169,8 @@ query {
169169}
170170```
171171
172- is only valid when the {` query ` } root operation type has a field named "myName":
172+ is only valid when the {` query ` } _ root operation type_ has a field named
173+ "myName":
173174
174175``` graphql example
175176type Query {
@@ -211,18 +212,18 @@ type MyMutationRootType {
211212
212213**Default Root Operation Type Names **
213214
214- :: While any type can be the root operation type for a GraphQL operation , the
215- _default root type name_ for the {` query ` }, {` mutation ` }, and {` subscription `}
216- root types are { "Query" }, { "Mutation" }, and {"Subscription" } respectively .
215+ :: The _default root type name_ for each {` query `}, {` mutation `}, and
216+ {` subscription `} _root operation type_ are { "Query" }, {"Mutation" }, and
217+ {"Subscription" } respectively .
217218
218219The type system definition language can omit the schema definition when each
219- root type present uses its respective _default root type name_ and no other type
220- uses a default root type name .
220+ _root operation type_ uses its respective _default root type name_ and no other
221+ type uses any _default root type name_ .
221222
222223Likewise, when representing a GraphQL schema using the type system definition
223- language, a schema definition should be omitted if each root type present uses
224- its respective _default root type name_ and no other type uses a default root
225- type name .
224+ language, a schema definition should be omitted if each _root operation type_
225+ uses its respective _default root type name_ and no other type uses any _default
226+ root type name_ .
226227
227228This example describes a valid complete GraphQL schema, despite not explicitly
228229including a {`schema`} definition . The {"Query" } type is presumed to be the
@@ -234,6 +235,30 @@ type Query {
234235}
235236```
236237
238+ While this example describes a valid GraphQL schema which happens to contain a
239+ type called {"Mutation"} which is not the {` mutation ` } _ root operation type_ .
240+ Even though {"Query"} is a _ default root type name_ , the schema definition must
241+ still be printed to indicate that it does not provide a {` mutation ` } root type.
242+
243+ ``` graphql example
244+ schema {
245+ query : Query
246+ }
247+
248+ type Query {
249+ latestVirus : Virus
250+ }
251+
252+ type Virus {
253+ name : String
254+ mutations : Mutation []
255+ }
256+
257+ type Mutation {
258+ name : String
259+ }
260+ ```
261+
237262### Schema Extension
238263
239264SchemaExtension :
0 commit comments