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 { SPINNERS_A @join__graph(name: "spinners-a", url: "http://example.com/spinners-a") SPINNERS_B @join__graph(name: "spinners-b", url: "http://example.com/spinners-b") } type FidgetSpinner implements Spinner { buttonDescriptions: [String!] id: ID! manufacturer: Manufacturer model: String } type Manufacturer { location: String name: String! } type Query { fidgetSpinners(filter: SpinnerFilter!): [FidgetSpinner] @join__field(graph: SPINNERS_A) @join__field(graph: SPINNERS_B) } interface Spinner { id: ID! model: String } input SpinnerFilter { manufacturer: String maxPrice: Float! }