at.adsb.flight.record
Schema Diff
+6 -17
Compatibility Analysis
Breaking Changes Detected
6 breaking changes, 6 non-breaking changes.
Breaking Changes (6)
- RemovedVertex RemovedVertex { vertex_id: "at.adsb.flight.record:body.aircraftType" }
- RemovedVertex RemovedVertex { vertex_id: "at.adsb.flight.record:body.icaoHex" }
- RemovedVertex RemovedVertex { vertex_id: "at.adsb.flight.record:body.registration" }
- RemovedEdge RemovedEdge { src: "at.adsb.flight.record:body", tgt: "at.adsb.flight.record:body.aircraftType", kind: "prop", name: Some("aircraftType") }
- RemovedEdge RemovedEdge { src: "at.adsb.flight.record:body", tgt: "at.adsb.flight.record:body.icaoHex", kind: "prop", name: Some("icaoHex") }
- RemovedEdge RemovedEdge { src: "at.adsb.flight.record:body", tgt: "at.adsb.flight.record:body.registration", kind: "prop", name: Some("registration") }
Non-Breaking Changes (6)
- AddedVertex AddedVertex { vertex_id: "at.adsb.flight.record:body.aircraft" }
- AddedEdge AddedEdge { src: "at.adsb.flight.record:body", tgt: "at.adsb.flight.record:body.aircraft", kind: "prop", name: Some("aircraft") }
- ConstraintRemoved ConstraintRemoved { vertex_id: "at.adsb.flight.record:body.registration", sort: "maxLength" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "at.adsb.flight.record:body.aircraftType", sort: "maxLength" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "at.adsb.flight.record:body.icaoHex", sort: "minLength" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "at.adsb.flight.record:body.icaoHex", sort: "maxLength" }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "at.adsb.flight.record:body.aircraftType" }RemovedVertex { vertex_id: "at.adsb.flight.record:body.icaoHex" }RemovedVertex { vertex_id: "at.adsb.flight.record:body.registration" }
Added Elements
AddedVertex { vertex_id: "at.adsb.flight.record:body.aircraft" }
Constraint Changes
- ConstraintRemoved ConstraintRemoved { vertex_id: "at.adsb.flight.record:body.aircraftType", sort: "maxLength" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "at.adsb.flight.record:body.icaoHex", sort: "maxLength" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "at.adsb.flight.record:body.icaoHex", sort: "minLength" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "at.adsb.flight.record:body.registration", sort: "maxLength" }
Additional Notes
- Breaking: RemovedEdge { src: "at.adsb.flight.record:body", tgt: "at.adsb.flight.record:body.aircraftType", kind: "prop", name: Some("aircraftType") }
- Breaking: RemovedEdge { src: "at.adsb.flight.record:body", tgt: "at.adsb.flight.record:body.icaoHex", kind: "prop", name: Some("icaoHex") }
- Breaking: RemovedEdge { src: "at.adsb.flight.record:body", tgt: "at.adsb.flight.record:body.registration", kind: "prop", name: Some("registration") }
- Non-breaking: AddedEdge { src: "at.adsb.flight.record:body", tgt: "at.adsb.flight.record:body.aircraft", kind: "prop", name: Some("aircraft") }
1
1
{
2
2
"id": "at.adsb.flight.record",
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
-
"icaoHex",
10
+
"aircraft",
11
11
"firstSeen",
12
12
"lastSeen",
13
13
"contributors",
14
14
"createdAt"
15
15
],
16
16
"properties": {
17
17
"track": {
18
18
"type": "blob",
19
19
"accept": [
20
20
"application/json",
21
21
"application/zstd"
22
22
],
23
23
"maxSize": 2000000,
24
24
"description": "Full position track as a JSON array of at.adsb.flight.defs#position objects, optionally compressed."
25
25
},
26
26
"origin": {
27
27
"ref": "#airport",
28
28
"type": "ref",
29
29
"description": "Departure airport, if known."
30
-
},
31
-
"icaoHex": {
32
-
"type": "string",
33
-
"maxLength": 6,
34
-
"minLength": 6,
35
-
"description": "ICAO 24-bit aircraft address in hexadecimal (e.g. 'A1B2C3')."
36
30
},
37
31
"summary": {
38
32
"ref": "at.adsb.flight.defs#trackSummary",
39
33
"type": "ref",
40
34
"description": "Summary of the flight path."
41
35
},
36
+
"aircraft": {
37
+
"ref": "com.atproto.repo.strongRef",
38
+
"type": "ref",
39
+
"description": "Strong reference to the at.adsb.aircraft.identity record for this aircraft."
40
+
},
42
41
"callsign": {
43
42
"type": "string",
44
43
"maxLength": 8,
45
44
"description": "Flight callsign as broadcast (e.g. 'UAL123')."
46
45
},
47
46
"lastSeen": {
48
47
"type": "string",
49
48
"format": "datetime",
50
49
"description": "When the aircraft was last observed by any contributor."
51
50
},
52
51
"createdAt": {
53
52
"type": "string",
54
53
"format": "datetime"
55
54
},
56
55
"firstSeen": {
57
56
"type": "string",
58
57
"format": "datetime",
59
58
"description": "When the aircraft was first observed by any contributor."
60
59
},
61
60
"destination": {
62
61
"ref": "#airport",
63
62
"type": "ref",
64
63
"description": "Arrival airport, if known."
65
-
},
66
-
"aircraftType": {
67
-
"type": "string",
68
-
"maxLength": 4,
69
-
"description": "ICAO type designator (e.g. 'B738', 'A320')."
70
64
},
71
65
"contributors": {
72
66
"type": "array",
73
67
"items": {
74
68
"ref": "at.adsb.flight.defs#contributor",
75
69
"type": "ref"
76
70
},
77
71
"maxLength": 100,
78
72
"minLength": 1,
79
73
"description": "Receivers that contributed data to this flight record."
80
-
},
81
-
"registration": {
82
-
"type": "string",
83
-
"maxLength": 10,
84
-
"description": "Aircraft registration (e.g. 'N12345', 'C-GABC')."
85
74
},
86
75
"positionCount": {
87
76
"type": "integer",
88
77
"minimum": 0,
89
78
"description": "Total position reports across all contributors."
90
79
}
91
80
}
92
81
},
93
82
"description": "A completed flight record with receiver attribution."
94
83
},
95
84
"airport": {
96
85
"type": "object",
97
86
"properties": {
98
87
"iata": {
99
88
"type": "string",
100
89
"maxLength": 3,
101
90
"minLength": 3,
102
91
"description": "IATA airport code (e.g. 'BOS', 'LHR')."
103
92
},
104
93
"icao": {
105
94
"type": "string",
106
95
"maxLength": 4,
107
96
"minLength": 4,
108
97
"description": "ICAO airport code (e.g. 'KBOS', 'EGLL')."
109
98
},
110
99
"name": {
111
100
"type": "string",
112
101
"maxLength": 1280,
113
102
"description": "Human-readable airport name.",
114
103
"maxGraphemes": 128
115
104
},
116
105
"location": {
117
106
"ref": "community.lexicon.location.geo",
118
107
"type": "ref",
119
108
"description": "Geographic position of the airport."
120
109
}
121
110
},
122
111
"description": "An airport identified by ICAO or IATA code."
123
112
}
124
113
},
125
114
"$type": "com.atproto.lexicon.schema",
126
115
"lexicon": 1,
127
116
"description": "A completed flight as synthesised from one or more receiver sightings. Created by an aggregator after the flight is no longer tracked. Links back to the individual receiver sightings that contributed data."
128
117
}