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