directive @core(feature: String!) repeatable on SCHEMA directive @join__owner(graph: join__Graph!) on OBJECT directive @join__type( graph: join__Graph! key: String! resolvable: Boolean = true ) repeatable on OBJECT | INTERFACE directive @join__field( graph: join__Graph requires: String provides: String ) on FIELD_DEFINITION directive @join__graph(name: String!, url: String!) on ENUM_VALUE enum join__Graph { ACCOUNTS @join__graph(name: "accounts", url: "http://example.com/accounts") MARKETING @join__graph(name: "marketing", url: "http://example.com/marketing") SUBSCRIPTIONS @join__graph(name: "subscriptions", url: "http://example.com/subscriptions") } type Customer { id: ID! name: String newsletterSubscribed: Boolean @inaccessible other: Int @inaccessible subscriptionPlan: Plan! @inaccessible } type Query { customer(id: ID!): Customer @join__field(graph: ACCOUNTS) } enum Plan { Hobby Pro }