schema { query: RootSchemaQuery } directive @filter( """Name of the filter operation to perform.""" op: String! """List of string operands for the operator.""" value: [String!] ) repeatable on FIELD | INLINE_FRAGMENT directive @tag( """Name to apply to the given property field.""" name: String ) on FIELD directive @output( """What to designate the output field generated from this property field.""" name: String ) on FIELD directive @optional on FIELD directive @recurse( """ Recurse up to this many times on this edge. A depth of 1 produces the current vertex and its immediate neighbors along the given edge. """ depth: Int! ) on FIELD directive @fold on FIELD directive @transform( """ Name of the transformation operation to perform. """ op: String! ) on FIELD type RootSchemaQuery { MetarReport: [MetarReport] LatestMetarReportForAirport(airport_code: String!): MetarReport } type MetarReport { station_id: String! # for airport stations, the 4-letter ICAO airport code: KBOS for Boston Logan raw_report: String! latitude: Float longitude: Float wind_speed_kts: Int # in knots wind_direction: Int # in degrees, if known wind_direction_variable: Boolean # true if the wind direction is inconsistent wind_gusts_kts: Int # in knots temperature: Float # in degrees C dewpoint: Float # in degrees C visibility_unlimited: Boolean # corresponds to visibility 9999 visibility_minimal: Boolean # corresponds to visibility 0000 visibility_statute_mi: Float # in statute miles (the "usual" miles, not nautical miles) altimeter_in_hg: Float # in inches of mercury sea_level_pressure_mb: Float # in milibars cloud_cover: [MetarCloudCover!] } type MetarCloudCover { sky_cover: String! # standard codes: SKC, CLR, FEW, SCT, BKN, OVC base_altitude: Int # in feet above ground level (ft AGL) }