com.airplaneian.contrail.temp.flight

airplaneian.com

Schema Diff

+1 -1

From

CID
bafyreicg4kns4gi...
Indexed At
2026-07-25 19:58 UTC
View this version

To

CID
bafyreif5ucbvpqo...
Indexed At
2026-07-25 20:16 UTC
View this version

Compatibility Analysis

Backward Compatible

No changes detected.

1 1
{
2 2
  "id": "com.airplaneian.contrail.temp.flight",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "tid",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "createdAt"
11 11
        ],
12 12
        "properties": {
13 13
          "date": {
14 14
            "type": "string",
15 15
            "maxLength": 10,
16 16
            "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."
17 17
          },
18 18
          "seat": {
19 19
            "type": "string",
20 20
            "maxLength": 16,
21 21
            "description": "Seat occupied, as a string, for example '14C'."
22 22
          },
23 23
          "cabin": {
24 24
            "type": "string",
25 25
            "maxLength": 64,
26 26
            "description": "Cabin or class of service. Open string, lower camel case; readers must tolerate values outside the known list.",
27 27
            "knownValues": [
28 28
              "economy",
29 29
              "premiumEconomy",
30 30
              "business",
31 31
              "first"
32 32
            ]
33 33
          },
34 34
          "notes": {
35 35
            "type": "string",
36 36
            "maxLength": 10000,
37 -
            "description": "Free-text note. Public and permanent once published; do not put booking references or other credentials here.",
37 +
            "description": "Free-text note. Public as soon as the record is written, and copies may persist after the record is deleted. Do not put booking references or other credentials here.",
38 38
            "maxGraphemes": 1000
39 39
          },
40 40
          "route": {
41 41
            "type": "string",
42 42
            "maxLength": 1000,
43 43
            "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."
44 44
          },
45 45
          "icao24": {
46 46
            "type": "string",
47 47
            "maxLength": 8,
48 48
            "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."
49 49
          },
50 50
          "origin": {
51 51
            "ref": "com.airplaneian.contrail.temp.defs#place",
52 52
            "type": "ref",
53 53
            "description": "Where the flight departed. May equal 'destination'; local flights are ordinary."
54 54
          },
55 55
          "source": {
56 56
            "type": "string",
57 57
            "maxLength": 64,
58 58
            "description": "Short identifier for the tool or dataset that wrote this record, for example 'flighty', 'manual', or 'adsb'."
59 59
          },
60 60
          "status": {
61 61
            "type": "string",
62 62
            "maxLength": 32,
63 63
            "description": "How the flight concluded. Absent means unknown, so write 'normal' explicitly when the flight operated as planned.",
64 64
            "knownValues": [
65 65
              "normal",
66 66
              "cancelled",
67 67
              "diverted"
68 68
            ]
69 69
          },
70 70
          "callsign": {
71 71
            "type": "string",
72 72
            "maxLength": 16,
73 73
            "description": "The flight identification the aircraft transmitted, uppercase, verbatim. Never decompose it: populate 'operator' and 'flightNumber' as well only when the split is unambiguous."
74 74
          },
75 75
          "operator": {
76 76
            "type": "string",
77 77
            "maxLength": 8,
78 78
            "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."
79 79
          },
80 80
          "sourceId": {
81 81
            "type": "string",
82 82
            "maxLength": 512,
83 83
            "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'."
84 84
          },
85 85
          "createdAt": {
86 86
            "type": "string",
87 87
            "format": "datetime",
88 88
            "description": "When this record was written, not when the flight happened. Explicit UTC offset, no fractional seconds."
89 89
          },
90 90
          "destination": {
91 91
            "ref": "com.airplaneian.contrail.temp.defs#place",
92 92
            "type": "ref",
93 93
            "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."
94 94
          },
95 95
          "aircraftType": {
96 96
            "type": "string",
97 97
            "maxLength": 128,
98 98
            "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."
99 99
          },
100 100
          "flightNumber": {
101 101
            "type": "string",
102 102
            "maxLength": 16,
103 103
            "description": "The operating agency's flight number, as a string. Digits only, without the operator prefix."
104 104
          },
105 105
          "operatorName": {
106 106
            "type": "string",
107 107
            "maxLength": 128,
108 108
            "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."
109 109
          },
110 110
          "registration": {
111 111
            "type": "string",
112 112
            "maxLength": 16,
113 113
            "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."
114 114
          },
115 115
          "relationship": {
116 116
            "type": "string",
117 117
            "maxLength": 64,
118 118
            "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.",
119 119
            "knownValues": [
120 120
              "passenger",
121 121
              "pic",
122 122
              "sic",
123 123
              "student",
124 124
              "instructor",
125 125
              "crew",
126 126
              "observer"
127 127
            ]
128 128
          },
129 129
          "actualLanding": {
130 130
            "type": "string",
131 131
            "format": "datetime",
132 132
            "description": "Actual 'on' time, wheels on. Explicit UTC offset, no fractional seconds."
133 133
          },
134 134
          "actualTakeoff": {
135 135
            "type": "string",
136 136
            "format": "datetime",
137 137
            "description": "Actual 'off' time, wheels off. Explicit UTC offset, no fractional seconds."
138 138
          },
139 139
          "registeredOwner": {
140 140
            "type": "string",
141 141
            "maxLength": 128,
142 142
            "description": "Free-text name of the party the airframe is registered to. Often a trust or holding company, and frequently not the operator."
143 143
          },
144 144
          "diversionAirport": {
145 145
            "ref": "com.airplaneian.contrail.temp.defs#place",
146 146
            "type": "ref",
147 147
            "description": "Where the flight actually landed, when that was not 'destination'. Present only when 'status' is 'diverted'."
148 148
          },
149 149
          "marketingAirline": {
150 150
            "type": "string",
151 151
            "maxLength": 8,
152 152
            "description": "ICAO designator of the airline that sold the flight, when it differs from 'operator'. Codeshares only."
153 153
          },
154 154
          "scheduledLanding": {
155 155
            "type": "string",
156 156
            "format": "datetime",
157 157
            "description": "Scheduled 'on' time, wheels on. Explicit UTC offset, no fractional seconds."
158 158
          },
159 159
          "scheduledTakeoff": {
160 160
            "type": "string",
161 161
            "format": "datetime",
162 162
            "description": "Scheduled 'off' time, wheels off. Explicit UTC offset, no fractional seconds."
163 163
          },
164 164
          "actualGateArrival": {
165 165
            "type": "string",
166 166
            "format": "datetime",
167 167
            "description": "Actual 'in' time, reaching the gate or parking position. Explicit UTC offset, no fractional seconds."
168 168
          },
169 169
          "icaoTypeDesignator": {
170 170
            "type": "string",
171 171
            "maxLength": 8,
172 172
            "description": "ICAO aircraft type designator, for example 'B77W'. Write it only when the source supplies a designator."
173 173
          },
174 174
          "actualGateDeparture": {
175 175
            "type": "string",
176 176
            "format": "datetime",
177 177
            "description": "Actual 'out' time, leaving the gate or parking position. Explicit UTC offset, no fractional seconds."
178 178
          },
179 179
          "scheduledGateArrival": {
180 180
            "type": "string",
181 181
            "format": "datetime",
182 182
            "description": "Scheduled 'in' time, reaching the gate or parking position. Explicit UTC offset, no fractional seconds."
183 183
          },
184 184
          "marketingFlightNumber": {
185 185
            "type": "string",
186 186
            "maxLength": 16,
187 187
            "description": "Flight number under which the flight was sold, when it differs from 'flightNumber'."
188 188
          },
189 189
          "scheduledGateDeparture": {
190 190
            "type": "string",
191 191
            "format": "datetime",
192 192
            "description": "Scheduled 'out' time, leaving the gate or parking position. Explicit UTC offset, no fractional seconds."
193 193
          }
194 194
        }
195 195
      },
196 196
      "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."
197 197
    }
198 198
  },
199 199
  "$type": "com.atproto.lexicon.schema",
200 200
  "lexicon": 1
201 201
}

Compare Other Versions

Lexicon Garden

@