at.adsb.receiver.sighting
Schema Diff
+5 -6
Compatibility Analysis
Breaking Changes Detected
2 breaking changes, 4 non-breaking changes.
Breaking Changes (2)
- RemovedVertex RemovedVertex { vertex_id: "at.adsb.receiver.sighting:body.icaoHex" }
- RemovedEdge RemovedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.icaoHex", kind: "prop", name: Some("icaoHex") }
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.aircraft" }
- AddedEdge AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.aircraft", kind: "prop", name: Some("aircraft") }
- ConstraintRemoved ConstraintRemoved { vertex_id: "at.adsb.receiver.sighting:body.icaoHex", sort: "minLength" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "at.adsb.receiver.sighting:body.icaoHex", sort: "maxLength" }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "at.adsb.receiver.sighting:body.icaoHex" }
Added Elements
AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.aircraft" }
Constraint Changes
- ConstraintRemoved ConstraintRemoved { vertex_id: "at.adsb.receiver.sighting:body.icaoHex", sort: "minLength" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "at.adsb.receiver.sighting:body.icaoHex", sort: "maxLength" }
Additional Notes
- Breaking: RemovedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.icaoHex", kind: "prop", name: Some("icaoHex") }
- Non-breaking: AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.aircraft", kind: "prop", name: Some("aircraft") }
1
1
{
2
2
"id": "at.adsb.receiver.sighting",
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
"createdAt"
14
14
],
15
15
"properties": {
16
16
"track": {
17
17
"type": "blob",
18
18
"accept": [
19
19
"application/json",
20
20
"application/zstd"
21
21
],
22
22
"maxSize": 2000000,
23
23
"description": "Position track as a JSON array of at.adsb.flight.defs#position objects, optionally compressed. This is the receiver's partial view of the flight."
24
24
},
25
25
"qnhHpa": {
26
26
"type": "string",
27
27
"maxLength": 10,
28
28
"description": "Altimeter setting (QNH) in hectopascals."
29
29
},
30
30
"squawk": {
31
31
"type": "string",
32
32
"maxLength": 4,
33
33
"minLength": 4,
34
34
"description": "Transponder squawk code (e.g. '2636')."
35
35
},
36
-
"icaoHex": {
37
-
"type": "string",
38
-
"maxLength": 6,
39
-
"minLength": 6,
40
-
"description": "ICAO 24-bit aircraft address in hexadecimal (e.g. 'A1B2C3')."
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."
41
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
"category": {
48
47
"type": "string",
49
48
"maxLength": 4,
50
49
"description": "ADS-B emitter category (e.g. 'A3' for large aircraft)."
51
50
},
52
51
"lastSeen": {
53
52
"type": "string",
54
53
"format": "datetime",
55
54
"description": "When this receiver last detected the aircraft."
56
55
},
57
56
"createdAt": {
58
57
"type": "string",
59
58
"format": "datetime"
60
59
},
61
60
"firstSeen": {
62
61
"type": "string",
63
62
"format": "datetime",
64
63
"description": "When this receiver first detected the aircraft."
65
64
},
66
65
"maxRangeNm": {
67
66
"type": "string",
68
67
"maxLength": 20,
69
68
"description": "Furthest distance to this aircraft during the sighting, in nautical miles."
70
69
},
71
70
"messageCount": {
72
71
"type": "integer",
73
72
"minimum": 0,
74
73
"description": "Total messages received from this aircraft."
75
74
},
76
75
"positionCount": {
77
76
"type": "integer",
78
77
"minimum": 0,
79
78
"description": "Number of position reports received."
80
79
},
81
80
"finalAltitudeFt": {
82
81
"type": "integer",
83
82
"description": "Barometric altitude in feet at last detection."
84
83
},
85
84
"finalHeadingDeg": {
86
85
"type": "string",
87
86
"maxLength": 10,
88
87
"description": "Ground track in degrees at last detection."
89
88
},
90
89
"initialAltitudeFt": {
91
90
"type": "integer",
92
91
"description": "Barometric altitude in feet at first detection."
93
92
},
94
93
"initialHeadingDeg": {
95
94
"type": "string",
96
95
"maxLength": 10,
97
96
"description": "Ground track in degrees at first detection."
98
97
},
99
98
"finalGroundSpeedKts": {
100
99
"type": "string",
101
100
"maxLength": 10,
102
101
"description": "Ground speed in knots at last detection."
103
102
},
104
103
"finalVerticalRateFpm": {
105
104
"type": "integer",
106
105
"description": "Vertical rate in feet per minute at last detection. Negative is descending."
107
106
},
108
107
"initialGroundSpeedKts": {
109
108
"type": "string",
110
109
"maxLength": 10,
111
110
"description": "Ground speed in knots at first detection."
112
111
},
113
112
"initialVerticalRateFpm": {
114
113
"type": "integer",
115
114
"description": "Vertical rate in feet per minute at first detection. Negative is descending."
116
115
}
117
116
}
118
117
},
119
118
"description": "A receiver's sighting of an aircraft transit through its coverage area."
120
119
}
121
120
},
122
121
"$type": "com.atproto.lexicon.schema",
123
122
"lexicon": 1,
124
123
"description": "A single receiver's sighting of an aircraft. Created when the aircraft leaves the receiver's coverage area. Feeder-authoritative — published immediately without waiting for the full flight to complete."
125
124
}