@@ -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