ID are reserved and cannot be used to define any other identifiers.
For each type, Dgraph generates a number of GraphQL types needed to operate the GraphQL API, these generated type names also can’t be present in the input schema. For example, for a type
Author, Dgraph generates
UpdateAuthorPayload. Thus if
Author is present in the input schema, all of those become reserved type names.
This is a companion discussion topic for the original entry at https://dgraph.io/docs/graphql/schema/reserved/