@@ -2336,6 +2336,34 @@ DirectiveArgumentCoordinate : @ Name ( Name : )
2336
2336
5. Return the argument of {directive } named {directiveArgumentName } if it
2337
2337
exists .
2338
2338
2339
+ **Resolving Meta -fields **
2340
+
2341
+ Resolving the _schema coordinate_ of a meta -field is undefined behaviour , 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
+
2349
+ **Result Coercion and Serialization **
2350
+
2351
+ A GraphQL service , when preparing a field of a given scalar type , must uphold
2352
+ the contract the scalar type describes , either by coercing the value or
2353
+ producing an _execution error_ if a value cannot be coerced or if coercion may
2354
+ result in data loss .
2355
+
2356
+ A GraphQL service may decide to allow coercing different internal types to the
2357
+ expected return type . For example when coercing a field of type {Int } a boolean
2358
+ {true } value may produce {1} or a string value {"123" } may be parsed as base -10
2359
+ {123}. However if internal type coercion cannot be reasonably performed without
2360
+ losing information , then it must raise an _execution error_ .
2361
+
2362
+ Since this coercion behavior is not observable to clients of the GraphQL
2363
+ service , the precise rules of coercion are left to the implementation . The only
2364
+ requirement is that the service must yield values which adhere to the expected
2365
+ Scalar type .
2366
+
2339
2367
**Examples **
2340
2368
2341
2369
| Element Kind | _Schema Coordinate_ | _Schema Element_ |
0 commit comments