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 { HISTORY @join__graph(name: "history", url: "http://example.com/history") INVENTORY @join__graph(name: "inventory", url: "http://example.com/inventory") PERFORMANCE @join__graph(name: "performance", url: "http://example.com/performance") } type RollerCoaster { height: Float! historicalData: [HistoricalData] @inaccessible id: ID! manufacturer: String! name: String! numberOfInversions: Int! @inaccessible speed: Float! } type HistoricalData { incidents: Int! visitors: Int! year: Int! } type Query { getRollerCoaster(id: ID!): RollerCoaster @join__field(graph: HISTORY) @join__field(graph: INVENTORY) @join__field(graph: PERFORMANCE) }