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 { HAZARDOUS_WASTE @join__graph(name: "hazardous-waste", url: "http://example.com/hazardous-waste") WASTE_COLLECTION @join__graph(name: "waste-collection", url: "http://example.com/waste-collection") } type WasteManagementQuery { ohno: Boolean @join__field(graph: WASTE_COLLECTION) } type RecyclingCenter { address: String @join__field(graph: HAZARDOUS_WASTE) id: ID! @join__field(graph: HAZARDOUS_WASTE) materialsAccepted: [String] @join__field(graph: HAZARDOUS_WASTE) operatingHours: String @join__field(graph: HAZARDOUS_WASTE) } type HazardousWasteStats { categoryBreakdown: [HazardousCategoryBreakdown] @join__field(graph: HAZARDOUS_WASTE) city: String @join__field(graph: HAZARDOUS_WASTE) totalHazardousWaste: Float @join__field(graph: HAZARDOUS_WASTE) } type HazardousCategoryBreakdown { amount: Float @join__field(graph: HAZARDOUS_WASTE) category: String @join__field(graph: HAZARDOUS_WASTE) } type CollectionPoint { address: String @join__field(graph: WASTE_COLLECTION) enquiries: [WasteManagementQuery!] @join__field(graph: WASTE_COLLECTION) id: ID! @join__field(graph: WASTE_COLLECTION) openingHours: String @join__field(graph: WASTE_COLLECTION) type: String @join__field(graph: WASTE_COLLECTION) } type WasteStats { city: String @join__field(graph: WASTE_COLLECTION) totalWasteCollected: Float @join__field(graph: WASTE_COLLECTION) wasteTypeBreakdown: [WasteTypeBreakdown] @join__field(graph: WASTE_COLLECTION) } type WasteTypeBreakdown { amount: Float @join__field(graph: WASTE_COLLECTION) type: String @join__field(graph: WASTE_COLLECTION) } type Query { hazardousWasteData(city: String!): HazardousWasteStats @join__field(graph: HAZARDOUS_WASTE) recyclingCenters(city: String!): [RecyclingCenter] @join__field(graph: HAZARDOUS_WASTE) wasteCollectionPoints(city: String!): [CollectionPoint] @join__field(graph: WASTE_COLLECTION) wasteStatistics(city: String!): WasteStats @join__field(graph: WASTE_COLLECTION) }