Skip to content

Commit 5cbfeb4

Browse files
committed
Apply edits along the lines suggested by Lee
1 parent 40feac2 commit 5cbfeb4

File tree

3 files changed

+22
-12
lines changed

3 files changed

+22
-12
lines changed

spec/GraphQL.md

+6-7
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,14 @@ Conformance requirements expressed as algorithms can be fulfilled by an
9292
implementation of this specification in any way as long as the perceived result
9393
is equivalent. Algorithms described in this document are written to be easy to
9494
understand. Implementers are encouraged to include equivalent but optimized
95-
implementations.
95+
implementations. Similarly, data collections such as _list_, _set_ and _map_
96+
also introduce conformance requirements. Implementers are free to use
97+
alternative data collections as long as the perceived result remains equivalent.
9698

9799
See [Appendix A](#sec-Appendix-Notation-Conventions) for more details about the
98-
definition of algorithms and other notational conventions used in this document.
100+
definition of algorithms and other notational conventions used in this document,
101+
and [Appendix A: Data Collections](#sec-Data-Collections) for specifics of data
102+
collections and their ordering.
99103

100104
**Non-Normative Portions**
101105

@@ -122,11 +126,6 @@ explicitly in prose (e.g. "Note: ") or are set apart in a note block, like this:
122126

123127
Note: This is an example of a non-normative note.
124128

125-
**Lists Are Ordered**
126-
127-
Unless otherwise stated (for example, "an unordered list"), any mention of the
128-
term "list" in this document indicates an ordered collection.
129-
130129
# [Overview](Section%201%20--%20Overview.md)
131130

132131
# [Language](Section%202%20--%20Language.md)

spec/Section 3 -- Type System.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ types which implement this Interface are guaranteed to implement those fields.
312312
Whenever a field claims it will return an Interface type, it will return a valid
313313
implementing Object type during execution.
314314

315-
A `Union` defines a list of possible types; similar to interfaces, whenever the
315+
A `Union` defines a set of possible types; similar to interfaces, whenever the
316316
type system claims a union will be returned, one of the possible types will be
317317
returned.
318318

@@ -1409,7 +1409,7 @@ A valid operation includes typed fragments (in this example, inline fragments):
14091409
```
14101410

14111411
Union members may be defined with an optional leading `|` character to aid
1412-
formatting when representing a longer list of possible types:
1412+
formatting when representing a longer set of possible types:
14131413

14141414
```raw graphql example
14151415
union SearchResult =
@@ -1474,7 +1474,7 @@ EnumValuesDefinition : { EnumValueDefinition+ }
14741474
EnumValueDefinition : Description? EnumValue Directives[Const]?
14751475

14761476
GraphQL Enum types, like Scalar types, also represent leaf values in a GraphQL
1477-
type system. However Enum types describe the list of possible values.
1477+
type system. However Enum types describe the set of possible values.
14781478

14791479
Enums are not references for a numeric value, but are unique values in their own
14801480
right. They may serialize as a string: the name of the represented value.
@@ -1492,7 +1492,7 @@ enum Direction {
14921492

14931493
**Result Coercion**
14941494

1495-
GraphQL services must return one of the defined list of possible values. If a
1495+
GraphQL services must return one of the defined set of possible values. If a
14961496
reasonable coercion is not possible they must raise a _field error_.
14971497

14981498
**Input Coercion**
@@ -1988,7 +1988,7 @@ fragment SomeFragment on SomeType {
19881988
```
19891989

19901990
Directive locations may be defined with an optional leading `|` character to aid
1991-
formatting when representing a longer list of possible locations:
1991+
formatting when representing a longer set of possible locations:
19921992

19931993
```raw graphql example
19941994
directive @example on

spec/Section 4 -- Introspection.md

+11
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,17 @@ Tools built using GraphQL introspection should respect deprecation by
117117
discouraging deprecated use through information hiding or developer-facing
118118
warnings.
119119

120+
**Ordering**
121+
122+
When possible implementations should preserve observable order for unordered
123+
data collections. For example, if a schema was produced from a source
124+
{TypeSystemDocument} then introspection of fields, input fields, arguments, enum
125+
values, directives and so on should produce the same order as found in the
126+
source.
127+
128+
Note: This recommendation is to improve legibility and stability of schema
129+
representations.
130+
120131
**Schema Introspection Schema**
121132

122133
The schema introspection system is itself represented as a GraphQL schema. Below

0 commit comments

Comments
 (0)