at.adsb.flight.record

adsb.at

Schema Diff

+6 -17

From

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

To

CID
bafyreig5rjdodd4...
Indexed At
2026-05-24 04:21 UTC
View this version

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
}

Compare Other Versions

Lexicon Garden

@