Когда использовать GraphQLID вместо GraphQLInt?

Не понятно когда использоватьGraphQLID вместоGraphQLInt.

Рассмотрим следующую схему:

type User {
  id: Int!
  firstName: String!
  lastName: String!
}

type Query {
  user (id: ID!): User
}

В случаеQuery.userКажется, нет никакой разницы, использовать лиGraphQLID или жеGraphQLInt.

В случаеUser.id, с помощьюGraphQLID приведёт ввод к строке. С помощьюGraphQLInt будет гарантировать, что ввод является целым числом.

Это делает запрос и систему типов несовместимыми.

graphql-JS спекуляция просто говорит:

A GraphQLScalarType это представляет собой идентификатор.

Это деталь реализации (например, если приведен клиент GraphQL)GraphQLID целому числу, когда это возможно), или ожидается, чтоID всегда строка вgraphql?