at.adsb.receiver.sighting

adsb.at

Schema Diff

+52 -0

From

CID
bafyreihgoc5ebgc...
Indexed At
2026-05-23 21:30 UTC
View this version

To

CID
bafyreih3il7ayuj...
Indexed At
2026-05-24 01:57 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

8 breaking changes, 22 non-breaking changes.

Breaking Changes (8)
  • ConstraintAdded ConstraintAdded { vertex_id: "at.adsb.receiver.sighting:body.initialHeadingDeg", sort: "maxLength", value: "10" }
  • ConstraintAdded ConstraintAdded { vertex_id: "at.adsb.receiver.sighting:body.finalGroundSpeedKts", sort: "maxLength", value: "10" }
  • ConstraintAdded ConstraintAdded { vertex_id: "at.adsb.receiver.sighting:body.initialGroundSpeedKts", sort: "maxLength", value: "10" }
  • ConstraintAdded ConstraintAdded { vertex_id: "at.adsb.receiver.sighting:body.finalHeadingDeg", sort: "maxLength", value: "10" }
  • ConstraintAdded ConstraintAdded { vertex_id: "at.adsb.receiver.sighting:body.squawk", sort: "maxLength", value: "4" }
  • ConstraintAdded ConstraintAdded { vertex_id: "at.adsb.receiver.sighting:body.squawk", sort: "minLength", value: "4" }
  • ConstraintAdded ConstraintAdded { vertex_id: "at.adsb.receiver.sighting:body.qnhHpa", sort: "maxLength", value: "10" }
  • ConstraintAdded ConstraintAdded { vertex_id: "at.adsb.receiver.sighting:body.category", sort: "maxLength", value: "4" }
Non-Breaking Changes (22)
  • AddedVertex AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.category" }
  • AddedVertex AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.finalAltitudeFt" }
  • AddedVertex AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.finalGroundSpeedKts" }
  • AddedVertex AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.finalHeadingDeg" }
  • AddedVertex AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.finalVerticalRateFpm" }
  • AddedVertex AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.initialAltitudeFt" }
  • AddedVertex AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.initialGroundSpeedKts" }
  • AddedVertex AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.initialHeadingDeg" }
  • AddedVertex AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.initialVerticalRateFpm" }
  • AddedVertex AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.qnhHpa" }
  • AddedVertex AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.squawk" }
  • AddedEdge AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.category", kind: "prop", name: Some("category") }
  • AddedEdge AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.finalAltitudeFt", kind: "prop", name: Some("finalAltitudeFt") }
  • AddedEdge AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.finalGroundSpeedKts", kind: "prop", name: Some("finalGroundSpeedKts") }
  • AddedEdge AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.finalHeadingDeg", kind: "prop", name: Some("finalHeadingDeg") }
  • AddedEdge AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.finalVerticalRateFpm", kind: "prop", name: Some("finalVerticalRateFpm") }
  • AddedEdge AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.initialAltitudeFt", kind: "prop", name: Some("initialAltitudeFt") }
  • AddedEdge AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.initialGroundSpeedKts", kind: "prop", name: Some("initialGroundSpeedKts") }
  • AddedEdge AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.initialHeadingDeg", kind: "prop", name: Some("initialHeadingDeg") }
  • AddedEdge AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.initialVerticalRateFpm", kind: "prop", name: Some("initialVerticalRateFpm") }
  • AddedEdge AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.qnhHpa", kind: "prop", name: Some("qnhHpa") }
  • AddedEdge AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.squawk", kind: "prop", name: Some("squawk") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.category" }
  • AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.finalAltitudeFt" }
  • AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.finalGroundSpeedKts" }
  • AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.finalHeadingDeg" }
  • AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.finalVerticalRateFpm" }
  • AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.initialAltitudeFt" }
  • AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.initialGroundSpeedKts" }
  • AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.initialHeadingDeg" }
  • AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.initialVerticalRateFpm" }
  • AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.qnhHpa" }
  • AddedVertex { vertex_id: "at.adsb.receiver.sighting:body.squawk" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "at.adsb.receiver.sighting:body.finalGroundSpeedKts", sort: "maxLength", value: "10" }
  • ConstraintAdded ConstraintAdded { vertex_id: "at.adsb.receiver.sighting:body.finalHeadingDeg", sort: "maxLength", value: "10" }
  • ConstraintAdded ConstraintAdded { vertex_id: "at.adsb.receiver.sighting:body.initialHeadingDeg", sort: "maxLength", value: "10" }
  • ConstraintAdded ConstraintAdded { vertex_id: "at.adsb.receiver.sighting:body.initialGroundSpeedKts", sort: "maxLength", value: "10" }
  • ConstraintAdded ConstraintAdded { vertex_id: "at.adsb.receiver.sighting:body.squawk", sort: "minLength", value: "4" }
  • ConstraintAdded ConstraintAdded { vertex_id: "at.adsb.receiver.sighting:body.squawk", sort: "maxLength", value: "4" }
  • ConstraintAdded ConstraintAdded { vertex_id: "at.adsb.receiver.sighting:body.category", sort: "maxLength", value: "4" }
  • ConstraintAdded ConstraintAdded { vertex_id: "at.adsb.receiver.sighting:body.qnhHpa", sort: "maxLength", value: "10" }

Additional Notes

  • Non-breaking: AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.category", kind: "prop", name: Some("category") }
  • Non-breaking: AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.finalAltitudeFt", kind: "prop", name: Some("finalAltitudeFt") }
  • Non-breaking: AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.finalGroundSpeedKts", kind: "prop", name: Some("finalGroundSpeedKts") }
  • Non-breaking: AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.finalHeadingDeg", kind: "prop", name: Some("finalHeadingDeg") }
  • Non-breaking: AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.finalVerticalRateFpm", kind: "prop", name: Some("finalVerticalRateFpm") }
  • Non-breaking: AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.initialAltitudeFt", kind: "prop", name: Some("initialAltitudeFt") }
  • Non-breaking: AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.initialGroundSpeedKts", kind: "prop", name: Some("initialGroundSpeedKts") }
  • Non-breaking: AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.initialHeadingDeg", kind: "prop", name: Some("initialHeadingDeg") }
  • Non-breaking: AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.initialVerticalRateFpm", kind: "prop", name: Some("initialVerticalRateFpm") }
  • Non-breaking: AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.qnhHpa", kind: "prop", name: Some("qnhHpa") }
  • Non-breaking: AddedEdge { src: "at.adsb.receiver.sighting:body", tgt: "at.adsb.receiver.sighting:body.squawk", kind: "prop", name: Some("squawk") }
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
          "icaoHex",
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 +
          "qnhHpa": {
26 +
            "type": "string",
27 +
            "maxLength": 10,
28 +
            "description": "Altimeter setting (QNH) in hectopascals."
29 +
          },
30 +
          "squawk": {
31 +
            "type": "string",
32 +
            "maxLength": 4,
33 +
            "minLength": 4,
34 +
            "description": "Transponder squawk code (e.g. '2636')."
35 +
          },
25 36
          "icaoHex": {
26 37
            "type": "string",
27 38
            "maxLength": 6,
28 39
            "minLength": 6,
29 40
            "description": "ICAO 24-bit aircraft address in hexadecimal (e.g. 'A1B2C3')."
30 41
          },
31 42
          "callsign": {
32 43
            "type": "string",
33 44
            "maxLength": 8,
34 45
            "description": "Flight callsign as broadcast (e.g. 'UAL123')."
35 46
          },
47 +
          "category": {
48 +
            "type": "string",
49 +
            "maxLength": 4,
50 +
            "description": "ADS-B emitter category (e.g. 'A3' for large aircraft)."
51 +
          },
36 52
          "lastSeen": {
37 53
            "type": "string",
38 54
            "format": "datetime",
39 55
            "description": "When this receiver last detected the aircraft."
40 56
          },
41 57
          "createdAt": {
42 58
            "type": "string",
43 59
            "format": "datetime"
44 60
          },
45 61
          "firstSeen": {
46 62
            "type": "string",
47 63
            "format": "datetime",
48 64
            "description": "When this receiver first detected the aircraft."
49 65
          },
50 66
          "maxRangeNm": {
51 67
            "type": "string",
52 68
            "maxLength": 20,
53 69
            "description": "Furthest distance to this aircraft during the sighting, in nautical miles."
54 70
          },
55 71
          "messageCount": {
56 72
            "type": "integer",
57 73
            "minimum": 0,
58 74
            "description": "Total messages received from this aircraft."
59 75
          },
60 76
          "positionCount": {
61 77
            "type": "integer",
62 78
            "minimum": 0,
63 79
            "description": "Number of position reports received."
80 +
          },
81 +
          "finalAltitudeFt": {
82 +
            "type": "integer",
83 +
            "description": "Barometric altitude in feet at last detection."
84 +
          },
85 +
          "finalHeadingDeg": {
86 +
            "type": "string",
87 +
            "maxLength": 10,
88 +
            "description": "Ground track in degrees at last detection."
89 +
          },
90 +
          "initialAltitudeFt": {
91 +
            "type": "integer",
92 +
            "description": "Barometric altitude in feet at first detection."
93 +
          },
94 +
          "initialHeadingDeg": {
95 +
            "type": "string",
96 +
            "maxLength": 10,
97 +
            "description": "Ground track in degrees at first detection."
98 +
          },
99 +
          "finalGroundSpeedKts": {
100 +
            "type": "string",
101 +
            "maxLength": 10,
102 +
            "description": "Ground speed in knots at last detection."
103 +
          },
104 +
          "finalVerticalRateFpm": {
105 +
            "type": "integer",
106 +
            "description": "Vertical rate in feet per minute at last detection. Negative is descending."
107 +
          },
108 +
          "initialGroundSpeedKts": {
109 +
            "type": "string",
110 +
            "maxLength": 10,
111 +
            "description": "Ground speed in knots at first detection."
112 +
          },
113 +
          "initialVerticalRateFpm": {
114 +
            "type": "integer",
115 +
            "description": "Vertical rate in feet per minute at first detection. Negative is descending."
64 116
          }
65 117
        }
66 118
      },
67 119
      "description": "A receiver's sighting of an aircraft transit through its coverage area."
68 120
    }
69 121
  },
70 122
  "$type": "com.atproto.lexicon.schema",
71 123
  "lexicon": 1,
72 124
  "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."
73 125
}

Compare Other Versions

Lexicon Garden

@