{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/flightpowers-com/json-schema/flightpowers-com-oneway-flight-schema.json",
  "title": "OnewayFlight",
  "description": "One itinerary from a one-way search. Flat JSON: no nested envelopes to unwrap.",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/flightpowers-com-openapi.json#/components/schemas/OnewayFlight",
  "type": "object",
  "properties": {
    "price_range_in_relation_to_other_periods": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "low",
        "typical",
        "high",
        null
      ],
      "description": "Google's verdict on this fare vs the route's historical range. The field rival Google Flights APIs generally do not return."
    },
    "price_insights_low": {
      "type": [
        "number",
        "null"
      ],
      "description": "Bottom of Google's historical price range for this route and dates."
    },
    "price_insights_high": {
      "type": [
        "number",
        "null"
      ],
      "description": "Top of Google's historical price range for this route and dates."
    },
    "from_airport": {
      "type": "string"
    },
    "to_airport": {
      "type": "string"
    },
    "departure_date": {
      "type": "string",
      "format": "date"
    },
    "price": {
      "type": "string",
      "description": "Display price, e.g. `$433`."
    },
    "price_as_number": {
      "type": "number",
      "description": "Numeric price for sorting and comparison."
    },
    "duration": {
      "type": "string",
      "description": "Human-readable duration."
    },
    "duration_seconds": {
      "type": "integer"
    },
    "buy_link": {
      "type": "string",
      "format": "uri",
      "description": "Deep link to book this exact itinerary on Google Flights."
    },
    "airline": {
      "type": "string"
    },
    "stops": {
      "type": "integer"
    },
    "stops_info": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "stop_airport": {
            "type": "string"
          },
          "stop_duration_seconds": {
            "type": "integer"
          }
        }
      }
    },
    "departure_description": {
      "type": "string",
      "description": "e.g. `8:35 PM on Thu, Oct 15`."
    },
    "arrival_description": {
      "type": "string"
    }
  }
}