From 21a2a8c38f706392abe934d59343e5aa05a02916 Mon Sep 17 00:00:00 2001 From: Benjie Gillam Date: Sat, 23 May 2026 15:37:52 -0700 Subject: [PATCH] Allow empty object types --- spec/Section 3 -- Type System.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/spec/Section 3 -- Type System.md b/spec/Section 3 -- Type System.md index 9b3b36796..ba2c6a2f9 100644 --- a/spec/Section 3 -- Type System.md +++ b/spec/Section 3 -- Type System.md @@ -921,8 +921,7 @@ Objects are never valid inputs. Object types have the potential to be invalid if incorrectly defined. This set of rules must be adhered to by every Object type in a GraphQL schema. -1. An Object type must define one or more fields. -2. For each field of an Object type: +1. For each field of an Object type: 1. The field must have a unique name within that Object type; no two fields may share the same name. 2. The field must not have a name which begins with the characters {"\_\_"} @@ -940,8 +939,8 @@ of rules must be adhered to by every Object type in a GraphQL schema. 1. The `@deprecated` directive must not be applied to this argument. 5. If the argument has a default value it must be compatible with {argumentType} as per the coercion rules for that type. -3. An object type may declare that it implements one or more unique interfaces. -4. An object type must be a super-set of all interfaces it implements: +2. An object type may declare that it implements one or more unique interfaces. +3. An object type must be a super-set of all interfaces it implements: 1. Let this object type be {objectType}. 2. For each interface declared implemented as {interfaceType}, {IsValidImplementation(objectType, interfaceType)} must be {true}.