com.airplaneian.contrail.temp.flight

airplaneian.com

{
  "id": "com.airplaneian.contrail.temp.flight",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "createdAt"
        ],
        "properties": {
          "date": {
            "type": "string",
            "maxLength": 10,
            "description": "Calendar date of departure at the origin, as 'YYYY-MM-DD'. Part of the identity key with 'operator' and 'flightNumber'. Must agree with any departure timestamp."
          },
          "seat": {
            "type": "string",
            "maxLength": 16,
            "description": "Seat occupied, as a string, for example '14C'."
          },
          "cabin": {
            "type": "string",
            "maxLength": 64,
            "description": "Cabin or class of service. Open string, lower camel case; readers must tolerate values outside the known list.",
            "knownValues": [
              "economy",
              "premiumEconomy",
              "business",
              "first"
            ]
          },
          "notes": {
            "type": "string",
            "maxLength": 10000,
            "description": "Free-text note. Public and permanent once published; do not put booking references or other credentials here.",
            "maxGraphemes": 1000
          },
          "route": {
            "type": "string",
            "maxLength": 1000,
            "description": "The route as filed, written as the flight plan expressed it, for example 'SSTIK2 SSTIK Q90 AVOSE'. Free text, not normalised and not reliable for matching. This is the planned route, not the flown track: a track belongs in a surveillance archive, which 'icao24' and a departure time are enough to query."
          },
          "icao24": {
            "type": "string",
            "maxLength": 8,
            "description": "The airframe's 24-bit ICAO address, six lowercase hexadecimal characters. With an actual departure time this is the identity key for flights with no flight number."
          },
          "origin": {
            "ref": "com.airplaneian.contrail.temp.defs#place",
            "type": "ref",
            "description": "Where the flight departed. May equal 'destination'; local flights are ordinary."
          },
          "source": {
            "type": "string",
            "maxLength": 64,
            "description": "Short identifier for the tool or dataset that wrote this record, for example 'flighty', 'manual', or 'adsb'."
          },
          "status": {
            "type": "string",
            "maxLength": 32,
            "description": "How the flight concluded. Absent means unknown, so write 'normal' explicitly when the flight operated as planned.",
            "knownValues": [
              "normal",
              "cancelled",
              "diverted"
            ]
          },
          "callsign": {
            "type": "string",
            "maxLength": 16,
            "description": "The flight identification the aircraft transmitted, uppercase, verbatim. Never decompose it: populate 'operator' and 'flightNumber' as well only when the split is unambiguous."
          },
          "operator": {
            "type": "string",
            "maxLength": 8,
            "description": "ICAO designator of the agency that operated the flight, three letters, uppercase. Not airlines only: 'UAL', 'FDX', 'RCH'. Use 'operatorName' where no designator exists."
          },
          "sourceId": {
            "type": "string",
            "maxLength": 512,
            "description": "That tool's own identifier for this flight. Kept in the record body rather than the record key, so a record can be corrected without becoming a new one. Meaningful only with 'source'."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "When this record was written, not when the flight happened. Explicit UTC offset, no fractional seconds."
          },
          "destination": {
            "ref": "com.airplaneian.contrail.temp.defs#place",
            "type": "ref",
            "description": "Where the flight arrived, or was intended to arrive if it was cancelled. If it diverted, this stays the intended destination and 'diversionAirport' holds where it landed."
          },
          "aircraftType": {
            "type": "string",
            "maxLength": 128,
            "description": "Free-text aircraft type as the source expressed it, for example 'Boeing 737-800'. Not reliable for matching. Do not derive it from 'icaoTypeDesignator' or the reverse."
          },
          "flightNumber": {
            "type": "string",
            "maxLength": 16,
            "description": "The operating agency's flight number, as a string. Digits only, without the operator prefix."
          },
          "operatorName": {
            "type": "string",
            "maxLength": 128,
            "description": "Free-text name of the operating agency, for operators with no ICAO designator. Not reliable for matching. This is who flew the aircraft, which is often not who owns it."
          },
          "registration": {
            "type": "string",
            "maxLength": 16,
            "description": "Registration or tail number, uppercase with no hyphens or spaces, so that 'G-VBOW' and 'GVBOW' are one aircraft. Military and state identifiers go here too."
          },
          "relationship": {
            "type": "string",
            "maxLength": 64,
            "description": "The author's connection to this flight. Absent means no claim is being made, unlike every other field where absent means unknown. Open string: readers must tolerate values outside the known list.",
            "knownValues": [
              "passenger",
              "pic",
              "sic",
              "student",
              "instructor",
              "crew",
              "observer"
            ]
          },
          "actualLanding": {
            "type": "string",
            "format": "datetime",
            "description": "Actual 'on' time, wheels on. Explicit UTC offset, no fractional seconds."
          },
          "actualTakeoff": {
            "type": "string",
            "format": "datetime",
            "description": "Actual 'off' time, wheels off. Explicit UTC offset, no fractional seconds."
          },
          "registeredOwner": {
            "type": "string",
            "maxLength": 128,
            "description": "Free-text name of the party the airframe is registered to. Often a trust or holding company, and frequently not the operator."
          },
          "diversionAirport": {
            "ref": "com.airplaneian.contrail.temp.defs#place",
            "type": "ref",
            "description": "Where the flight actually landed, when that was not 'destination'. Present only when 'status' is 'diverted'."
          },
          "marketingAirline": {
            "type": "string",
            "maxLength": 8,
            "description": "ICAO designator of the airline that sold the flight, when it differs from 'operator'. Codeshares only."
          },
          "scheduledLanding": {
            "type": "string",
            "format": "datetime",
            "description": "Scheduled 'on' time, wheels on. Explicit UTC offset, no fractional seconds."
          },
          "scheduledTakeoff": {
            "type": "string",
            "format": "datetime",
            "description": "Scheduled 'off' time, wheels off. Explicit UTC offset, no fractional seconds."
          },
          "actualGateArrival": {
            "type": "string",
            "format": "datetime",
            "description": "Actual 'in' time, reaching the gate or parking position. Explicit UTC offset, no fractional seconds."
          },
          "icaoTypeDesignator": {
            "type": "string",
            "maxLength": 8,
            "description": "ICAO aircraft type designator, for example 'B77W'. Write it only when the source supplies a designator."
          },
          "actualGateDeparture": {
            "type": "string",
            "format": "datetime",
            "description": "Actual 'out' time, leaving the gate or parking position. Explicit UTC offset, no fractional seconds."
          },
          "scheduledGateArrival": {
            "type": "string",
            "format": "datetime",
            "description": "Scheduled 'in' time, reaching the gate or parking position. Explicit UTC offset, no fractional seconds."
          },
          "marketingFlightNumber": {
            "type": "string",
            "maxLength": 16,
            "description": "Flight number under which the flight was sold, when it differs from 'flightNumber'."
          },
          "scheduledGateDeparture": {
            "type": "string",
            "format": "datetime",
            "description": "Scheduled 'out' time, leaving the gate or parking position. Explicit UTC offset, no fractional seconds."
          }
        }
      },
      "description": "An assertion that a particular flight existed, rather than a personal log entry about the author. Only 'createdAt' is required. Every other field is optional, and absent means unknown or not applicable rather than empty or zero. The exception is 'relationship', where absent means no claim is being made. Records of the same flight written by different people are expected, so write the identifying fields consistently. Any kind of flying is in scope, and origin may equal destination."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against com.airplaneian.contrail.temp.flight

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:5jsivedaksbcc4n2epiegflk
CID
bafyreicg4kns4gimbiipck2kqg4rmhb4sznfmyn3ukh5myfpvvd63i5nii
Indexed At
2026-07-25 19:58 UTC
AT-URI
at://did:plc:5jsivedaksbcc4n2epiegflk/com.atproto.lexicon.schema/com.airplaneian.contrail.temp.flight

Version History (7 versions)

Referenced Schemas (1)

Lexicon Garden

@