at.adsb.receiver.sighting
Schema Diff
+11 -0
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 4 non-breaking changes.
Breaking Changes (1)
- ConstraintAdded ConstraintAdded { vertex_id: "at.adsb.receiver.sighting:body.sources:items", sort: "maxLength", value: "32" }
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.sources" }
- AddedVertex AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.sources:items" }
- AddedEdge AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.sources", kind: "prop", name: Some("sources") }
- AddedEdge AddedEdge { src: "at.adsb.receiver.sighting:body.sources", tgt: "at.adsb.receiver.sighting:body.sources:items", kind: "items", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.sources" }AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.sources:items" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "at.adsb.receiver.sighting:body.sources:items", sort: "maxLength", value: "32" }
Additional Notes
- Non-breaking: AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.sources", kind: "prop", name: Some("sources") }
- Non-breaking: AddedEdge { src: "at.adsb.receiver.sighting:body.sources", tgt: "at.adsb.receiver.sighting:body.sources:items", kind: "items", name: None }
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
10
"windowStart",
11
11
"windowEnd",
12
12
"manifest",
13
13
"telemetry",
14
+
"sources",
14
15
"createdAt"
15
16
],
16
17
"properties": {
18
+
"sources": {
19
+
"type": "array",
20
+
"items": {
21
+
"type": "string",
22
+
"maxLength": 32
23
+
},
24
+
"maxLength": 50,
25
+
"minLength": 1,
26
+
"description": "Deduplicated list of decoder source types that contributed position fixes in this batch window."
27
+
},
17
28
"manifest": {
18
29
"type": "array",
19
30
"items": {
20
31
"ref": "#manifestEntry",
21
32
"type": "ref"
22
33
},
23
34
"maxLength": 1000,
24
35
"minLength": 1,
25
36
"description": "Lightweight list of all aircraft observed in this window."
26
37
},
27
38
"createdAt": {
28
39
"type": "string",
29
40
"format": "datetime"
30
41
},
31
42
"telemetry": {
32
43
"type": "blob",
33
44
"accept": [
34
45
"application/zstd"
35
46
],
36
47
"maxSize": 2000000,
37
48
"description": "Zstd-compressed JSON object keyed by ICAO hex, values are arrays of at.adsb.flight.defs#position objects."
38
49
},
39
50
"windowEnd": {
40
51
"type": "string",
41
52
"format": "datetime",
42
53
"description": "End of the observation window (exclusive)."
43
54
},
44
55
"rawCapture": {
45
56
"type": "blob",
46
57
"accept": [
47
58
"application/vnd.at-adsb.raw-capture+zstd"
48
59
],
49
60
"maxSize": 2000000,
50
61
"description": "Raw demodulated SDR frames captured during this window, in ATRX envelope format. Optional — strengthens provenance but not required."
51
62
},
52
63
"windowStart": {
53
64
"type": "string",
54
65
"format": "datetime",
55
66
"description": "Start of the observation window (inclusive)."
56
67
}
57
68
}
58
69
},
59
70
"description": "A receiver's batch sighting covering a configurable observation window."
60
71
},
61
72
"manifestEntry": {
62
73
"type": "object",
63
74
"required": [
64
75
"icaoHex"
65
76
],
66
77
"properties": {
67
78
"icaoHex": {
68
79
"type": "string",
69
80
"maxLength": 6,
70
81
"minLength": 6,
71
82
"description": "ICAO 24-bit hex address (uppercased)."
72
83
}
73
84
},
74
85
"description": "An aircraft observed in this batch window."
75
86
}
76
87
},
77
88
"$type": "com.atproto.lexicon.schema",
78
89
"lexicon": 1,
79
90
"description": "A batch of aircraft observations from a single receiver covering a configurable time window (default 60 seconds). Contains a manifest of observed aircraft and blobbed telemetry data."
80
91
}