@@ -1943,11 +1943,6 @@ by a validator, executor, or client tool such as a code generator.
19431943
19441944GraphQL implementations should provide the `@skip ` and `@include ` directives .
19451945
1946- GraphQL implementations are not required to implement the `@defer ` and `@stream `
1947- directives . If either or both of these directives are implemented , they must be
1948- implemented according to this specification . GraphQL implementations that do not
1949- support these directives must not make them available via introspection .
1950-
19511946GraphQL implementations that support the type system definition language must
19521947provide the `@deprecated ` directive if representing deprecated portions of the
19531948schema .
@@ -2169,6 +2164,14 @@ to the relevant IETF specification.
21692164scalar UUID @specifiedBy (url : " https://tools.ietf.org/html/rfc4122" )
21702165```
21712166
2167+ GraphQL implementations are not required to implement the `@defer ` and `@stream `
2168+ directives . If either or both of these directives are implemented , they must be
2169+ implemented according to this specification . GraphQL implementations that do not
2170+ support these directives must not make them available via introspection . The
2171+ [Directives Are Defined ](#sec-Directives-Are-Defined) validation rule will
2172+ prevent GraphQL Operations containing the `@defer` or `@stream` directive from
2173+ being executed by a GraphQL service that does not implement these directives.
2174+
21722175### @defer
21732176
21742177```graphql
@@ -2182,9 +2185,8 @@ The `@defer` directive may be provided for fragment spreads and inline fragments
21822185to inform the executor to delay the execution of the current fragment to
21832186indicate deprioritization of the current fragment . A query with `@defer `
21842187directive will cause the request to potentially return multiple responses , where
2185- non -deferred data is delivered in the initial response and data deferred is
2186- delivered in a subsequent response . `@include ` and `@skip ` take precedence over
2187- `@defer `.
2188+ deferred data is delivered in subsequent responses . `@include ` and `@skip ` take
2189+ precedence over `@defer `.
21882190
21892191```graphql example
21902192query myQuery ($shouldDefer : Boolean ) {
@@ -2226,7 +2228,10 @@ directive @stream(
22262228The `@stream ` directive may be provided for a field of `List ` type so that the
22272229backend can leverage technology such as asynchronous iterators to provide a
22282230partial list in the initial response , and additional list items in subsequent
2229- responses . `@include ` and `@skip ` take precedence over `@stream `.
2231+ responses . `@include ` and `@skip ` take precedence over `@stream `. The
2232+ [Stream Directives Are Used On List Fields ](#sec-Stream-Directives-Are-Used-On-List-Fields)
2233+ validation rule is used to prevent the `@stream` directive from being applied to
2234+ a field that is not a `List` type.
22302235
22312236```graphql example
22322237query myQuery($shouldStream : Boolean ) {
0 commit comments