Learning GraphQL is learning 2 languages:
The language used by services to describe schemas: object types, scalars, lists, enums, unions, interfaces
The language used by consumers to describe data needs: queries, mutations, subscriptions, fragments, fields, aliases, directives