@@ -2252,23 +2252,26 @@ DirectiveArgumentCoordinate : @ Name ( Name : )
22522252_schema element_ within a GraphQL Schema .
22532253
22542254:: A _schema element_ can be a named type , a field , an input field , an enum
2255- value , a field argument , a directive , or a directive argument .
2255+ value , a field argument , a directive , or a directive argument defined within a
2256+ schema (including built-in types and directives).
2257+
2258+ Note : Meta -fields are not defined within a schema , and thus are not _schema
2259+ element_ . By extension , an introspection type is not a _schema element_ .
22562260
22572261:: The _containing element_ of a _schema element_ is the schema element with one
22582262fewer {Name } token that syntactically contains it . Specifically :
22592263
2260- - { MemberCoordinate } has a {TypeCoordinate } containing element .
2261- - { ArgumentCoordinate } has a {MemberCoordinate } containing element .
2262- - {DirectiveArgumentCoordinate } has a {DirectiveCoordinate } containing element .
2264+ - The containing element of an { ArgumentCoordinate } is a {MemberCoordinate } .
2265+ - The containing element of a {MemberCoordinate } is a { TypeCoordinate } .
2266+ - The containing element of a {DirectiveArgumentCoordinate } is a {DirectiveCoordinate }.
22632267- {TypeCoordinate } and {DirectiveCoordinate } have no containing element .
22642268
2265- A _schema coordinate_ is always unique . Each non meta - field _schema element_ can
2266- be referenced by exactly one possible schema coordinate .
2269+ A _schema coordinate_ is always unique . Each _schema element_ can be referenced
2270+ by exactly one possible schema coordinate .
22672271
22682272A _schema coordinate_ may refer to either a defined or built -in _schema
22692273element_ . For example , `String ` and `@deprecated (reason :)` are both valid schema
2270- coordinates which refer to built -in schema elements . Meta -fields may also be
2271- referenced . For example , `Business .__typename ` is a valid schema coordinate .
2274+ coordinates which refer to built -in schema elements .
22722275
22732276Note : Union members are not valid _schema coordinate_ as they reference existing
22742277types in the schema . This preserves the uniqueness property of a _schema
@@ -2290,6 +2293,11 @@ If the _schema element_ cannot be found, the resolve function will not yield a
22902293value (without raising an error). However , an error will be raised if any
22912294non -leaf nodes within a _schema coordinate_ cannot be found in the {schema }.
22922295
2296+ Note : Although it is syntactically possible to describe a meta -field or element
2297+ of the introspection schema with a schema coordinate (e.g. `Business.__typename`
2298+ or `__Type.fields(includeDeprecated :)`), they are not _schema element_ and
2299+ therefore resolving such coordinates results in implementation -defined behavior .
2300+
22932301TypeCoordinate : Name
22942302
229523031. Let {typeName } be the value of {Name }.
@@ -2336,16 +2344,6 @@ DirectiveArgumentCoordinate : @ Name ( Name : )
233623445. Return the argument of {directive } named {directiveArgumentName } if it
23372345 exists .
23382346
2339- **Resolving Meta -fields **
2340-
2341- Resolving the _schema coordinate_ of a meta -field is undefined behavior , since
2342- these fields may be implemented in such a way that makes it impossible to return
2343- a unique value specific to that instance of the meta -field .
2344-
2345- Therefore , it is left up to the implementation to decide whether or not to
2346- return a value for a meta -field . If a value is returned , it must meet the
2347- requirement that it is unique to that _schema coordinate_ .
2348-
23492347**Examples **
23502348
23512349| Element Kind | _Schema Coordinate_ | _Schema Element_ |
0 commit comments