@yottagraph-app/data-model-skill 0.0.21 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yottagraph-app/data-model-skill",
3
- "version": "0.0.21",
3
+ "version": "0.0.23",
4
4
  "description": "Data model skill documentation for AI agents - entity types, properties, and schemas from Lovelace fetch sources",
5
5
  "repository": {
6
6
  "type": "git",
@@ -0,0 +1,140 @@
1
+ # Data Dictionary: DOT Authority
2
+
3
+ ## Source Overview
4
+
5
+ FMCSA Carrier Authority data from the "Carrier All With History" Socrata dataset (`6eyk-hxee`), published by the Federal Motor Carrier Safety Administration. Contains operating authority records for motor carriers, brokers, and freight forwarders, including docket numbers, authority statuses (common, contract, broker), insurance requirements, and business contact information.
6
+
7
+ Bulk-refreshed periodically by FMCSA; no per-row timestamps. The streamer performs a single full download per run.
8
+
9
+ | Pipeline | `Record.Source` |
10
+ |----------|----------------|
11
+ | Carrier Authority | `dotauthority` |
12
+
13
+ This is a companion dataset to DOT Census (`dotcensus`), which covers company registration, fleet size, and safety ratings. Authority covers operating authority statuses and insurance/bond requirements. Both sources share the `usdot_number` strong ID, enabling entity merging across datasets.
14
+
15
+ ---
16
+
17
+ ## Entity Types
18
+
19
+ ### `organization`
20
+
21
+ A motor carrier, broker, or freight forwarder registered with FMCSA.
22
+
23
+ - Primary key: `usdot_number` (USDOT number assigned by FMCSA)
24
+ - Entity resolver: named entity. Strong ID = `usdot_number`. Disambiguation via legal name and business address.
25
+ - Entity name: DBA name if present (with legal name as the owner entity); otherwise the legal name.
26
+
27
+ ### `person`
28
+
29
+ A named individual who is the legal owner of a carrier operating under a DBA name.
30
+
31
+ - Only created when the carrier has a DBA name different from the legal name, and the legal name appears to be a person (not an organization).
32
+ - Entity resolver: named entity. No strong ID.
33
+
34
+ ### `location`
35
+
36
+ The business location of a carrier, derived from city, state, and country fields.
37
+
38
+ - Entity resolver: named entity. No strong ID.
39
+ - Entity name: formatted as "City, State" or "City, State, Country".
40
+
41
+ ---
42
+
43
+ ## Properties
44
+
45
+ ### Organization: Identity and Registration
46
+
47
+ * `usdot_number`
48
+ * Definition: USDOT number uniquely identifying the registered motor carrier, broker, or shipper.
49
+ * Examples: `1234567`, `3456789`
50
+ * Derivation: `dot_number` field from the Socrata API. Carriers with DOT number `00000000` or empty are treated as not having a DOT number.
51
+
52
+ * `dot_docket_number`
53
+ * Definition: FMCSA docket number (MC/FF/MX number) for the carrier's operating authority.
54
+ * Examples: `MC012892`, `MC599911`
55
+ * Derivation: `docket_number` field from the Socrata API.
56
+
57
+ ### Organization: Business Contact
58
+
59
+ * `address`
60
+ * Definition: Formatted business street address of the carrier.
61
+ * Examples: `1200 SEABOARD DR, HIALEAH, FL 33010`
62
+ * Derivation: Composed from `bus_street_po`, `bus_city`, `bus_state_code`, `bus_zip_code`, and `bus_ctry_code` fields, formatted as "Street, City, State Zip".
63
+
64
+ * `dot_phone_number`
65
+ * Definition: Primary business phone number of the carrier.
66
+ * Examples: `5551234567`
67
+ * Derivation: `bus_telno` field from the Socrata API.
68
+
69
+ ### Organization: Authority Status
70
+
71
+ * `dot_common_authority_status`
72
+ * Definition: Status of the carrier's common carrier authority.
73
+ * Examples: `A (Active)`, `I (Inactive)`, `N (None)`
74
+ * Derivation: `common_stat` field. Single-letter code expanded to include the human-readable label.
75
+
76
+ * `dot_contract_authority_status`
77
+ * Definition: Status of the carrier's contract carrier authority.
78
+ * Examples: `A (Active)`, `I (Inactive)`, `N (None)`
79
+ * Derivation: `contract_stat` field. Same code expansion as common authority.
80
+
81
+ * `dot_broker_authority_status`
82
+ * Definition: Status of the carrier's broker authority.
83
+ * Examples: `A (Active)`, `I (Inactive)`, `N (None)`
84
+ * Derivation: `broker_stat` field. Same code expansion as common authority.
85
+
86
+ * `dot_authority_type`
87
+ * Definition: Authority type flags indicating which categories the carrier is authorized for.
88
+ * Examples: `Property`, `Passenger`, `Household Goods`, `Property; Passenger`
89
+ * Derivation: Composed from five checkbox fields (`property_chk`, `passenger_chk`, `hhg_chk`, `private_auth_chk`, `enterprise_chk`). Values with `Y` are included, joined with `; `.
90
+
91
+ ### Organization: Insurance and Bonding
92
+
93
+ * `dot_min_coverage_amount`
94
+ * Definition: Minimum insurance coverage amount required, in thousands of dollars.
95
+ * Examples: `00750`, `05000`
96
+ * Derivation: `min_cov_amount` field. Values of `00000` are suppressed.
97
+
98
+ * `dot_cargo_insurance_required`
99
+ * Definition: Whether cargo insurance is required for this carrier.
100
+ * Examples: `1.0` (yes), `0.0` (no)
101
+ * Derivation: `cargo_req` field. `Y` → 1.0, `N` → 0.0. Other values are not emitted.
102
+ * Note: Stored as float per KG boolean convention.
103
+
104
+ * `dot_bond_required`
105
+ * Definition: Whether a surety bond is required for this carrier.
106
+ * Examples: `1.0` (yes), `0.0` (no)
107
+ * Derivation: `bond_req` field. `Y` → 1.0, `N` → 0.0. Other values are not emitted.
108
+ * Note: Stored as float per KG boolean convention.
109
+
110
+ * `dot_bipd_insurance_on_file`
111
+ * Definition: Bodily injury / property damage insurance filing amount on file.
112
+ * Examples: `01000`, `05000`
113
+ * Derivation: `bipd_file` field. Values of `00000` are suppressed.
114
+
115
+ ---
116
+
117
+ ## Entity Relationships Summary
118
+
119
+ ```
120
+ organization ──[is_located_at]──→ location
121
+ person ──[doing_business_as]──→ organization
122
+ organization ──[doing_business_as]──→ organization
123
+ ```
124
+
125
+ The `doing_business_as` relationship is created when a carrier's legal name differs from its DBA name. The legal entity (person or organization, determined by name heuristics) is the subject; the DBA organization is the target. The DBA organization is also the primary record subject carrying all authority properties.
126
+
127
+ The `is_located_at` relationship is created when both city and state are present. The target is a location entity named "City, State" (or "City, State, Country" if the country code is present).
128
+
129
+ ---
130
+
131
+ ## Source Fields Not Mapped
132
+
133
+ The following Socrata fields are present in the API response but not currently mapped to KG properties:
134
+
135
+ - `common_app_pend`, `contract_app_pend`, `broker_app_pend` -- application pending flags
136
+ - `common_rev_pend`, `contract_rev_pend`, `broker_rev_pend` -- revocation pending flags
137
+ - `cargo_file` -- cargo insurance filing amount
138
+ - `bond_file` -- bond filing amount
139
+
140
+ These were omitted as lower-priority. They could be added as future enhancements if needed for analysis.
@@ -0,0 +1,161 @@
1
+ # Dataset schema for FMCSA Carrier Authority (All With History).
2
+ #
3
+ # Source: https://data.transportation.gov/Trucking-and-Motorcoaches/Carrier-All-With-History/6eyk-hxee
4
+ # Bulk-refreshed periodically by FMCSA; no per-row timestamps.
5
+ #
6
+ # This schema describes motor carrier operating authority records including
7
+ # docket information, authority statuses, insurance requirements, and
8
+ # business contact information.
9
+ name: "dotauthority"
10
+ description: "FMCSA carrier operating authority data including docket numbers, authority statuses, insurance requirements, and business contact information from the Carrier All With History file"
11
+
12
+ extraction:
13
+ flavors: closed
14
+ properties: closed
15
+ relationships: closed
16
+ attributes: closed
17
+ events: closed
18
+
19
+ flavors:
20
+ - name: "organization"
21
+ description: "A particular business, institution, or organization such as a corporation, university, government agency, or non-profit"
22
+ display_name: "Organization"
23
+ mergeability: not_mergeable
24
+ strong_id_properties: ["usdot_number"]
25
+ passive: true
26
+
27
+ - name: "person"
28
+ description: "A named individual such as a business owner, executive, or public figure"
29
+ display_name: "Person"
30
+ mergeability: not_mergeable
31
+ passive: true
32
+
33
+ - name: "location"
34
+ description: "A specific named geographic location such as a city, country, region, or landmark"
35
+ display_name: "Location"
36
+ mergeability: not_mergeable
37
+ examples: ["New York City", "San Francisco", "North America", "Bakery Square"]
38
+ passive: true
39
+
40
+ properties:
41
+ - name: "usdot_number"
42
+ type: string
43
+ description: "USDOT number assigned by FMCSA, uniquely identifying a registered motor carrier, broker, or shipper"
44
+ display_name: "USDOT Number"
45
+ mergeability: not_mergeable
46
+ domain_flavors: ["organization"]
47
+ passive: true
48
+
49
+ - name: "dot_docket_number"
50
+ type: string
51
+ description: "FMCSA docket number (MC number) for operating authority"
52
+ display_name: "Docket Number"
53
+ mergeability: not_mergeable
54
+ domain_flavors: ["organization"]
55
+ examples: ["MC012892", "MC599911"]
56
+ passive: true
57
+
58
+ - name: "address"
59
+ type: string
60
+ description: "Physical street address of the entity"
61
+ display_name: "Address"
62
+ mergeability: not_mergeable
63
+ domain_flavors: ["organization"]
64
+ examples: ["1200 SEABOARD DR, HIALEAH, FL 33010"]
65
+ passive: true
66
+
67
+ - name: "dot_phone_number"
68
+ type: string
69
+ description: "Primary phone number of the carrier"
70
+ display_name: "Phone Number"
71
+ mergeability: not_mergeable
72
+ domain_flavors: ["organization"]
73
+ examples: ["5551234567"]
74
+ passive: true
75
+
76
+ - name: "dot_common_authority_status"
77
+ type: string
78
+ description: "Status of common carrier authority (A=Active, I=Inactive, N=None)"
79
+ display_name: "Common Authority Status"
80
+ mergeability: not_mergeable
81
+ domain_flavors: ["organization"]
82
+ examples: ["A (Active)", "I (Inactive)", "N (None)"]
83
+ passive: true
84
+
85
+ - name: "dot_contract_authority_status"
86
+ type: string
87
+ description: "Status of contract carrier authority (A=Active, I=Inactive, N=None)"
88
+ display_name: "Contract Authority Status"
89
+ mergeability: not_mergeable
90
+ domain_flavors: ["organization"]
91
+ examples: ["A (Active)", "I (Inactive)", "N (None)"]
92
+ passive: true
93
+
94
+ - name: "dot_broker_authority_status"
95
+ type: string
96
+ description: "Status of broker authority (A=Active, I=Inactive, N=None)"
97
+ display_name: "Broker Authority Status"
98
+ mergeability: not_mergeable
99
+ domain_flavors: ["organization"]
100
+ examples: ["A (Active)", "I (Inactive)", "N (None)"]
101
+ passive: true
102
+
103
+ - name: "dot_authority_type"
104
+ type: string
105
+ description: "Carrier authority type flags indicating property, passenger, household goods, private, or enterprise authorization"
106
+ display_name: "Authority Type"
107
+ mergeability: not_mergeable
108
+ domain_flavors: ["organization"]
109
+ examples: ["Property", "Passenger", "Household Goods", "Property; Passenger"]
110
+ passive: true
111
+
112
+ - name: "dot_min_coverage_amount"
113
+ type: string
114
+ description: "Minimum insurance coverage amount required (in thousands of dollars)"
115
+ display_name: "Minimum Coverage Amount"
116
+ mergeability: not_mergeable
117
+ domain_flavors: ["organization"]
118
+ examples: ["00750", "05000"]
119
+ passive: true
120
+
121
+ - name: "dot_cargo_insurance_required"
122
+ type: float
123
+ description: "Whether cargo insurance is required (1.0 = yes, 0.0 = no)"
124
+ display_name: "Cargo Insurance Required"
125
+ mergeability: not_mergeable
126
+ domain_flavors: ["organization"]
127
+ passive: true
128
+
129
+ - name: "dot_bond_required"
130
+ type: float
131
+ description: "Whether a surety bond is required (1.0 = yes, 0.0 = no)"
132
+ display_name: "Bond Required"
133
+ mergeability: not_mergeable
134
+ domain_flavors: ["organization"]
135
+ passive: true
136
+
137
+ - name: "dot_bipd_insurance_on_file"
138
+ type: string
139
+ description: "Bodily injury / property damage insurance filing amount"
140
+ display_name: "BIPD Insurance On File"
141
+ mergeability: not_mergeable
142
+ domain_flavors: ["organization"]
143
+ examples: ["01000", "05000"]
144
+ passive: true
145
+
146
+ relationships:
147
+ - name: "doing_business_as"
148
+ description: "A legal entity is doing business as (DBA) an organization"
149
+ display_name: "Doing Business As"
150
+ mergeability: not_mergeable
151
+ domain_flavors: ["person", "organization"]
152
+ target_flavors: ["organization"]
153
+ passive: true
154
+
155
+ - name: "is_located_at"
156
+ description: "An entity is located at, operates in, resides in, is headquartered in, was born in, visits, or died in a location"
157
+ display_name: "Located At"
158
+ mergeability: not_mergeable
159
+ domain_flavors: ["organization"]
160
+ target_flavors: ["location"]
161
+ passive: true
@@ -0,0 +1,381 @@
1
+ # Data Dictionary: FAA Aircraft Registry
2
+
3
+ ## Source Overview
4
+
5
+ The FAA Releasable Aircraft Database is published by the Federal Aviation Administration, Civil Aviation Registry, Aircraft Registration Branch (AFS-750). It contains registration records for all U.S. civil aircraft, plus reference tables, deregistered aircraft, dealer certificates, document indices, and reserved N-numbers.
6
+
7
+ The database is distributed as a single ZIP archive (~60MB) refreshed daily at 11:30 PM Central Time. It contains 7 comma-delimited `.txt` files. Field definitions are documented in [ardata.pdf](https://registry.faa.gov/database/ardata.pdf).
8
+
9
+ Download URL: `https://registry.faa.gov/database/ReleasableAircraft.zip`
10
+
11
+ The implementation joins ACFTREF.txt and ENGINE.txt as in-memory lookup tables into MASTER.txt rows, producing denormalized aircraft registration records. DEREG.txt uses a similar structure and is processed alongside MASTER.txt. DEALER.txt, DOCINDEX.txt, and RESERVED.txt are processed as separate entity types.
12
+
13
+ | File | Record Count (approx) | Entity Type |
14
+ |------|----------------------|-------------|
15
+ | MASTER.txt | ~300,000+ | `aircraft` |
16
+ | ACFTREF.txt | ~few thousand | Lookup table (joined into `aircraft`) |
17
+ | ENGINE.txt | ~few thousand | Lookup table (joined into `aircraft`) |
18
+ | DEREG.txt | ~300,000+ | `aircraft` (deregistered) |
19
+ | DEALER.txt | ~few thousand | `organization` (aircraft dealers) |
20
+ | DOCINDEX.txt | ~millions | `document` (aircraft document index) |
21
+ | RESERVED.txt | ~tens of thousands | `aircraft` (reserved N-numbers) |
22
+
23
+ | Pipeline | `Record.Source` |
24
+ |----------|----------------|
25
+ | All files | `faaregistry` |
26
+
27
+ ---
28
+
29
+ ## Entity Types
30
+
31
+ ### `aircraft`
32
+
33
+ A U.S. civil aircraft identified by its FAA registration N-number. Includes active registrations (MASTER.txt), deregistered aircraft (DEREG.txt), and reserved N-numbers (RESERVED.txt).
34
+
35
+ - Primary key: N-Number (e.g., `"12345"` for N12345)
36
+ - Entity resolver: named entity. Strong ID = `n_number`. Mode S hex code as secondary identifier. Disambiguation via manufacturer, model, serial number, registrant name.
37
+
38
+ ### `organization`
39
+
40
+ An aircraft dealer or manufacturer holding an FAA Dealer's Aircraft Registration Certificate.
41
+
42
+ - Primary key: Certificate number (e.g., `"24-0001"`)
43
+ - Entity resolver: named entity. Strong ID = `dealer_certificate_number`. Disambiguation via name, address.
44
+
45
+ ### `document`
46
+
47
+ A document recorded with the FAA Aircraft Registry, indexed by collateral identification (usually the N-number).
48
+
49
+ - Primary key: Document ID (12-character unique identifier)
50
+ - Entity resolver: named entity. Strong ID = `faa_document_id`. Not mergeable.
51
+
52
+ ### `location`
53
+
54
+ A geographic location derived from the registrant's address (city + state).
55
+
56
+ - Primary key: city + state combination
57
+ - Entity resolver: named entity. Disambiguation via city name, state code.
58
+
59
+ ---
60
+
61
+ ## Properties
62
+
63
+ ### Aircraft Properties (from MASTER.txt + ACFTREF.txt + ENGINE.txt joins)
64
+
65
+ #### Identity and Registration
66
+
67
+ * `n_number`
68
+ * Definition: FAA registration number assigned to the aircraft (without the "N" prefix).
69
+ * Examples: `"12345"`, `"789AB"`, `"5NJ"`
70
+ * Derivation: `N-NUMBER` field from MASTER.txt, positions 1-5.
71
+
72
+ * `serial_number`
73
+ * Definition: Complete aircraft serial number assigned by the manufacturer.
74
+ * Examples: `"28-7990244"`, `"172S10245"`
75
+ * Derivation: `SERIAL NUMBER` field from MASTER.txt, positions 7-36.
76
+
77
+ * `mode_s_code_hex`
78
+ * Definition: Aircraft Mode S transponder code in hexadecimal format (ICAO 24-bit address).
79
+ * Examples: `"A12345"`, `"ABCDEF"`
80
+ * Derivation: `MODE S CODE HEX` field from MASTER.txt, positions 602-611.
81
+ * Note: This corresponds to the `icaoAddress` property in the KG aircraft flavor schema.
82
+
83
+ * `mode_s_code`
84
+ * Definition: Aircraft Mode S transponder code in octal format.
85
+ * Examples: `"50712345"`
86
+ * Derivation: `MODE S CODE` field from MASTER.txt, positions 257-264.
87
+
88
+ * `unique_id`
89
+ * Definition: FAA-assigned unique identification number for the registration record.
90
+ * Examples: `"01234567"`
91
+ * Derivation: `UNIQUE ID` field from MASTER.txt, positions 541-548.
92
+
93
+ #### Aircraft Details (joined from ACFTREF.txt)
94
+
95
+ * `manufacturer_name`
96
+ * Definition: Name of the aircraft manufacturer.
97
+ * Examples: `"CESSNA"`, `"BOEING"`, `"PIPER"`, `"BEECH"`
98
+ * Derivation: Joined from ACFTREF.txt `AIRCRAFT MANUFACTURER NAME` (positions 9-38) via `AIRCRAFT MFR MODEL CODE` foreign key.
99
+
100
+ * `model_name`
101
+ * Definition: Aircraft model and series name.
102
+ * Examples: `"172S"`, `"737-800"`, `"PA-28-181"`
103
+ * Derivation: Joined from ACFTREF.txt `MODEL NAME` (positions 40-59) via `AIRCRAFT MFR MODEL CODE` foreign key.
104
+
105
+ * `aircraft_type`
106
+ * Definition: Type of aircraft.
107
+ * Examples: `"Fixed wing single engine"`, `"Rotorcraft"`, `"Balloon"`
108
+ * Derivation: `TYPE AIRCRAFT` field from MASTER.txt (position 249), decoded: 1=Glider, 2=Balloon, 3=Blimp/Dirigible, 4=Fixed wing single engine, 5=Fixed wing multi engine, 6=Rotorcraft, 7=Weight-shift-control, 8=Powered Parachute, 9=Gyroplane, H=Hybrid Lift, O=Other.
109
+
110
+ * `engine_type`
111
+ * Definition: Type of engine installed.
112
+ * Examples: `"Reciprocating"`, `"Turbo-fan"`, `"Electric"`
113
+ * Derivation: `TYPE ENGINE` field from MASTER.txt (positions 251-252), decoded: 0=None, 1=Reciprocating, 2=Turbo-prop, 3=Turbo-shaft, 4=Turbo-jet, 5=Turbo-fan, 6=Ramjet, 7=2 Cycle, 8=4 Cycle, 9=Unknown, 10=Electric, 11=Rotary.
114
+
115
+ * `year_manufactured`
116
+ * Definition: Year the aircraft was manufactured.
117
+ * Examples: `"1978"`, `"2023"`
118
+ * Derivation: `YEAR MFR` field from MASTER.txt, positions 52-55.
119
+
120
+ * `number_of_engines`
121
+ * Definition: Number of engines on the aircraft.
122
+ * Examples: `"1"`, `"2"`, `"4"`
123
+ * Derivation: Joined from ACFTREF.txt `NUMBER OF ENGINES` (positions 70-71).
124
+
125
+ * `number_of_seats`
126
+ * Definition: Maximum number of seats in the aircraft.
127
+ * Examples: `"4"`, `"189"`, `"12"`
128
+ * Derivation: Joined from ACFTREF.txt `NUMBER OF SEATS` (positions 73-75).
129
+
130
+ * `aircraft_weight_class`
131
+ * Definition: Maximum gross takeoff weight class.
132
+ * Examples: `"Up to 12,499 lbs"`, `"12,500 - 19,999 lbs"`, `"20,000 and over"`, `"UAV up to 55 lbs"`
133
+ * Derivation: Joined from ACFTREF.txt `AIRCRAFT WEIGHT` (positions 77-83), decoded: 1=Up to 12,499, 2=12,500-19,999, 3=20,000 and over, 4=UAV up to 55.
134
+
135
+ * `cruising_speed`
136
+ * Definition: Average cruising speed in miles per hour.
137
+ * Examples: `"124"`, `"530"`
138
+ * Derivation: Joined from ACFTREF.txt `AIRCRAFT CRUISING SPEED` (positions 85-88).
139
+ * Note: Not present on all records.
140
+
141
+ * `aircraft_category`
142
+ * Definition: Land/sea/amphibian classification.
143
+ * Examples: `"Land"`, `"Sea"`, `"Amphibian"`
144
+ * Derivation: Joined from ACFTREF.txt `AIRCRAFT CATEGORY CODE` (position 66), decoded: 1=Land, 2=Sea, 3=Amphibian.
145
+
146
+ * `builder_certification`
147
+ * Definition: Builder certification classification.
148
+ * Examples: `"Type Certificated"`, `"Not Type Certificated"`, `"Light Sport"`
149
+ * Derivation: Joined from ACFTREF.txt `BUILDER CERTIFICATION CODE` (position 68), decoded: 0=Type Certificated, 1=Not Type Certificated, 2=Light Sport.
150
+
151
+ * `type_certificate_data_sheet`
152
+ * Definition: FAA Type Certificate Data Sheet reference.
153
+ * Derivation: Joined from ACFTREF.txt `TC DATA SHEET` (positions 90-105).
154
+
155
+ * `type_certificate_holder`
156
+ * Definition: Name of the Type Certificate holder.
157
+ * Derivation: Joined from ACFTREF.txt `TC DATA HOLDER` (positions 107-157).
158
+
159
+ #### Engine Details (joined from ENGINE.txt)
160
+
161
+ * `engine_manufacturer`
162
+ * Definition: Name of the engine manufacturer.
163
+ * Examples: `"LYCOMING"`, `"CONT MOTOR"`, `"P&W"`
164
+ * Derivation: Joined from ENGINE.txt `ENGINE MANUFACTURER NAME` (positions 7-16) via `ENGINE MFR MODEL CODE` foreign key.
165
+
166
+ * `engine_model`
167
+ * Definition: Engine model name.
168
+ * Examples: `"O-320-D2J"`, `"IO-540"`
169
+ * Derivation: Joined from ENGINE.txt `ENGINE MODEL NAME` (positions 18-30).
170
+
171
+ * `engine_horsepower`
172
+ * Definition: Engine horsepower (for reciprocating, turbo-prop, turbo-shaft, 2-cycle, 4-cycle engines). Unit: HP.
173
+ * Examples: `"180"`, `"310"`
174
+ * Derivation: Joined from ENGINE.txt `ENGINE HORSEPOWER` (positions 35-39).
175
+ * Note: Only populated for engine types 1, 2, 3, 7, 8.
176
+
177
+ * `engine_thrust`
178
+ * Definition: Engine thrust (for turbo-jet, turbo-fan, ramjet engines). Unit: pounds of thrust.
179
+ * Examples: `"27300"`, `"56000"`
180
+ * Derivation: Joined from ENGINE.txt `POUNDS OF THRUST` (positions 41-46).
181
+ * Note: Only populated for engine types 4, 5, 6.
182
+
183
+ #### Registration Status
184
+
185
+ * `registration_status`
186
+ * Definition: Current status of the aircraft registration.
187
+ * Examples: `"Valid Registration"`, `"Registration Expired"`, `"Sale Reported"`, `"Administratively Canceled"`
188
+ * Derivation: `STATUS CODE` field from MASTER.txt (positions 254-255), decoded to human-readable text. Codes include V=Valid, R=Pending, E=Revoked by enforcement, M=Manufacturer, etc.
189
+
190
+ * `registrant_type`
191
+ * Definition: Type of entity that owns the aircraft.
192
+ * Examples: `"Individual"`, `"Corporation"`, `"LLC"`, `"Government"`
193
+ * Derivation: `TYPE REGISTRANT` field from MASTER.txt (position 57), decoded: 1=Individual, 2=Partnership, 3=Corporation, 4=Co-Owned, 5=Government, 7=LLC, 8=Non Citizen Corporation, 9=Non Citizen Co-Owned.
194
+
195
+ * `fractional_ownership`
196
+ * Definition: Whether the registration has fractional ownership.
197
+ * Examples: `"true"`, `"false"`
198
+ * Derivation: `FRACTIONAL OWNERSHIP` field from MASTER.txt (position 266), `Y` = true, blank = false.
199
+
200
+ #### Certification
201
+
202
+ * `airworthiness_class`
203
+ * Definition: Airworthiness certificate classification.
204
+ * Examples: `"Standard"`, `"Experimental"`, `"Restricted"`, `"Light Sport"`
205
+ * Derivation: `CERTIFICATION A - AIRWORTHINESS CLASSIFICATION CODE` from MASTER.txt (position 238), decoded: 1=Standard, 2=Limited, 3=Restricted, 4=Experimental, 5=Provisional, 6=Multiple, 7=Primary, 8=Special Flight Permit, 9=Light Sport.
206
+
207
+ * `approved_operations`
208
+ * Definition: Approved operations for the airworthiness certificate.
209
+ * Examples: `"Normal"`, `"Utility"`, `"Agriculture and Pest Control"`, `"Amateur Built"`
210
+ * Derivation: `CERTIFICATION B - APPROVED OPERATION CODES` from MASTER.txt (positions 239-247), decoded based on airworthiness class.
211
+
212
+ #### Registrant Information
213
+
214
+ * `registrant_name`
215
+ * Definition: Name of the registered owner as it appears on the Application for Registration.
216
+ * Examples: `"SMITH JOHN"`, `"DELTA AIR LINES INC"`, `"UNITED STATES GOVERNMENT"`
217
+ * Derivation: `REGISTRANT'S NAME` field from MASTER.txt, positions 59-108.
218
+
219
+ * `registrant_address`
220
+ * Definition: Formatted street address of the registrant.
221
+ * Derivation: Concatenation of `STREET1` (positions 110-142) and `STREET2` (positions 144-176) from MASTER.txt.
222
+
223
+ * `registrant_city`
224
+ * Definition: City of the registrant.
225
+ * Examples: `"ATLANTA"`, `"WICHITA"`, `"SEATTLE"`
226
+ * Derivation: `REGISTRANT'S CITY` field from MASTER.txt, positions 178-195.
227
+
228
+ * `registrant_state`
229
+ * Definition: Two-letter state code of the registrant.
230
+ * Examples: `"GA"`, `"KS"`, `"WA"`
231
+ * Derivation: `REGISTRANT'S STATE` field from MASTER.txt, positions 197-198.
232
+
233
+ * `registrant_zip_code`
234
+ * Definition: Postal ZIP code of the registrant.
235
+ * Examples: `"30320"`, `"67201-1234"`
236
+ * Derivation: `REGISTRANT'S ZIP CODE` field from MASTER.txt, positions 200-209.
237
+
238
+ * `registrant_region`
239
+ * Definition: FAA region of the registrant.
240
+ * Examples: `"Eastern"`, `"Western-Pacific"`, `"Great Lakes"`
241
+ * Derivation: `REGISTRANT'S REGION` field from MASTER.txt (position 211), decoded: 1=Eastern, 2=Southwestern, 3=Central, 4=Western-Pacific, 5=Alaskan, 7=Southern, 8=European, C=Great Lakes, E=New England, S=Northwest Mountain.
242
+
243
+ #### Dates
244
+
245
+ * `last_activity_date`
246
+ * Definition: Date of last registration activity.
247
+ * Examples: `"2024/03/15"`
248
+ * Derivation: `LAST ACTIVITY DATE` from MASTER.txt (positions 220-227), format YYYY/MM/DD.
249
+
250
+ * `certificate_issue_date`
251
+ * Definition: Date the registration certificate was issued.
252
+ * Examples: `"2023/06/01"`
253
+ * Derivation: `CERTIFICATE ISSUE DATE` from MASTER.txt (positions 229-236), format YYYY/MM/DD.
254
+
255
+ * `airworthiness_date`
256
+ * Definition: Date of airworthiness certification.
257
+ * Examples: `"2001/09/14"`
258
+ * Derivation: `AIRWORTHINESS DATE` from MASTER.txt (positions 268-275).
259
+
260
+ * `expiration_date`
261
+ * Definition: Certificate of Registration expiration date.
262
+ * Examples: `"2027/03/31"`
263
+ * Derivation: `EXPIRATION DATE` from MASTER.txt (positions 532-539), format YYYY/MM/DD.
264
+
265
+ #### Co-Owners
266
+
267
+ * `other_owner_name`
268
+ * Definition: Co-owner or partnership name (up to 5 additional names).
269
+ * Derivation: `OTHER NAME 1` through `OTHER NAME 5` from MASTER.txt (positions 277-530).
270
+ * Note: Stored as multiple atoms when multiple co-owners exist.
271
+
272
+ #### Kit Aircraft
273
+
274
+ * `kit_manufacturer`
275
+ * Definition: Kit manufacturer name (for kit-built aircraft).
276
+ * Derivation: `KIT MFR` from MASTER.txt (positions 550-579).
277
+
278
+ * `kit_model`
279
+ * Definition: Kit model name.
280
+ * Derivation: `KIT MODEL` from MASTER.txt (positions 581-600).
281
+
282
+ ### Aircraft Properties (from DEREG.txt -- additional fields)
283
+
284
+ Deregistered aircraft share all properties above where available, plus:
285
+
286
+ * `cancel_date`
287
+ * Definition: Date the registration was canceled.
288
+ * Examples: `"2023/01/15"`
289
+ * Derivation: `CANCEL DATE` from DEREG.txt (positions 240-247).
290
+
291
+ * `export_country`
292
+ * Definition: Country the aircraft was exported to upon deregistration.
293
+ * Examples: `"CANADA"`, `"BRAZIL"`
294
+ * Derivation: `EXPORT COUNTRY` from DEREG.txt (positions 260-277).
295
+
296
+ ### Organization Properties (from DEALER.txt)
297
+
298
+ #### Identity
299
+
300
+ * `dealer_certificate_number`
301
+ * Definition: FAA dealer certificate number.
302
+ * Examples: `"24-0001"`, `"23-1234"`
303
+ * Derivation: `CERTIFICATE NUMBER` from DEALER.txt (positions 1-7), format YY-NNNN.
304
+
305
+ * `dealer_ownership_type`
306
+ * Definition: Ownership type of the dealer.
307
+ * Examples: `"Individual"`, `"Corporation"`, `"LLC"`
308
+ * Derivation: `OWNERSHIP` from DEALER.txt (position 9), decoded: 1=Individual, 2=Partnership, 3=Corporation, 4=Co-Ownership, 7=LLC, 8=Non Citizen Corporation.
309
+
310
+ * `dealer_certificate_issue_date`
311
+ * Definition: Date the dealer certificate was issued.
312
+ * Derivation: `CERTIFICATE ISSUE DATE` from DEALER.txt (positions 11-18), format YYYYMMDD.
313
+
314
+ * `dealer_expiration_date`
315
+ * Definition: Dealer certificate expiration date.
316
+ * Derivation: `EXPIRATION DATE` from DEALER.txt (positions 20-27), format YYYYMMDD.
317
+
318
+ * `dealer_expired`
319
+ * Definition: Whether the dealer certificate has expired.
320
+ * Examples: `"true"`, `"false"`
321
+ * Derivation: `EXPIRATION FLAG` from DEALER.txt (position 29), `*` = true.
322
+
323
+ #### Address
324
+
325
+ * `dealer_address`
326
+ * Definition: Mailing address of the dealer.
327
+ * Derivation: Concatenation of DEALER.txt address fields (STREET1, STREET2, CITY, STATE, ZIP CODE).
328
+
329
+ ### Document Properties (from DOCINDEX.txt)
330
+
331
+ * `faa_document_id`
332
+ * Definition: Unique document identifier assigned by the FAA.
333
+ * Examples: `"000123456789"`
334
+ * Derivation: `DOCUMENT ID` from DOCINDEX.txt (positions 92-103).
335
+
336
+ * `collateral_type`
337
+ * Definition: Type of collateral the document pertains to.
338
+ * Examples: `"Aircraft"`, `"Engine"`, `"Propeller"`, `"Spare Parts"`
339
+ * Derivation: `TYPE COLLATERAL` from DOCINDEX.txt (position 1), decoded: 1=Aircraft, 2=Engine, 3=Propeller, 4=Spare Parts, 5=Document, 9=Unidentified.
340
+
341
+ * `collateral_identifier`
342
+ * Definition: Collateral identification -- typically an N-number for aircraft, or make/model/serial for engines and propellers.
343
+ * Derivation: `COLLATERAL` from DOCINDEX.txt (positions 3-39).
344
+
345
+ * `document_receipt_date`
346
+ * Definition: Date the document was filed for recordation with the Aircraft Registry.
347
+ * Derivation: `DOCUMENT RECEIPT DATE` from DOCINDEX.txt (positions 105-112), format YYYYMMDD.
348
+
349
+ * `document_type`
350
+ * Definition: Type of document being indexed.
351
+ * Examples: `"BOS"` (Evidence of Ownership), `"S/A"` (Security Conveyance/Lien), `"REL"` (Lien Release)
352
+ * Derivation: `DOC TYPE` from DOCINDEX.txt (positions 165-167).
353
+
354
+ ### Aircraft Properties (from RESERVED.txt)
355
+
356
+ Reserved N-numbers produce minimal `aircraft` records:
357
+
358
+ * `reservation_type`
359
+ * Definition: Type of N-number reservation.
360
+ * Examples: `"Fee paid"`, `"Reserved to manufacturer"`, `"N-Number change in process"`
361
+ * Derivation: `TYPE RESERVATION` from RESERVED.txt (positions 168-169), decoded.
362
+
363
+ * `reservation_date`
364
+ * Definition: Date the N-number was reserved.
365
+ * Derivation: `RESERVE DATE` from RESERVED.txt (positions 159-166), format YYYYMMDD.
366
+
367
+ * `reservation_expiration_date`
368
+ * Definition: Date the reservation expiration notice was sent.
369
+ * Derivation: `EXPIRATION NOTICE DATE` from RESERVED.txt (positions 171-178), format YYYYMMDD.
370
+
371
+ ---
372
+
373
+ ## Entity Relationships
374
+
375
+ ```
376
+ aircraft ──[is_located_at]──────→ location (registrant city/state)
377
+ aircraft ──[has_document]───────→ document (via N-number in DOCINDEX collateral)
378
+ organization ──[is_located_at]──────→ location (dealer address)
379
+ ```
380
+
381
+ ---
@@ -0,0 +1,386 @@
1
+ # Dataset schema for FAA Releasable Aircraft Database.
2
+ #
3
+ # Source: https://www.faa.gov/licenses_certificates/aircraft_certification/aircraft_registry/releasable_aircraft_download
4
+ # Updated daily at 11:30 PM CT.
5
+ #
6
+ # This schema describes U.S. civil aircraft registrations from the FAA
7
+ # Aircraft Registry, including MASTER.txt records joined with ENGINE.txt
8
+ # reference data for engine manufacturer, model, and performance details.
9
+ name: "faaregistry"
10
+ description: "FAA aircraft registration data including N-number identity, aircraft and engine details, registration status, certification, and registrant information"
11
+
12
+ extraction:
13
+ flavors: closed
14
+ properties: closed
15
+ relationships: closed
16
+ attributes: closed
17
+ events: closed
18
+
19
+ flavors:
20
+ - name: "aircraft"
21
+ description: "An aircraft such as a plane, helicopter, glider, or unmanned aerial vehicle"
22
+ display_name: "Aircraft"
23
+ mergeability: not_mergeable
24
+ strong_id_properties: ["aircraft_id"]
25
+ passive: true
26
+
27
+ - name: "organization"
28
+ description: "A particular business, institution, or organization such as a corporation, university, government agency, or non-profit"
29
+ display_name: "Organization"
30
+ mergeability: not_mergeable
31
+ passive: true
32
+
33
+ - name: "person"
34
+ description: "A named individual such as a business owner, executive, or public figure"
35
+ display_name: "Person"
36
+ mergeability: not_mergeable
37
+ passive: true
38
+
39
+ - name: "location"
40
+ description: "A specific named geographic location such as a city, country, region, or landmark"
41
+ display_name: "Location"
42
+ mergeability: not_mergeable
43
+ examples: ["WICHITA, KS", "SEATTLE, WA", "ATLANTA, GA"]
44
+ passive: true
45
+
46
+ properties:
47
+ # Identity and Registration
48
+ - name: "aircraft_id"
49
+ type: string
50
+ description: "Composite aircraft identifier combining manufacturer name and serial number (format: MANUFACTURER:SERIAL)"
51
+ display_name: "Aircraft ID"
52
+ mergeability: not_mergeable
53
+ domain_flavors: ["aircraft"]
54
+ examples: ["CESSNA:172S10245", "BOEING:28-7990244"]
55
+ passive: true
56
+
57
+ - name: "n_number"
58
+ type: string
59
+ description: "FAA registration N-number uniquely identifying a U.S. civil aircraft"
60
+ display_name: "N-Number"
61
+ mergeability: not_mergeable
62
+ domain_flavors: ["aircraft"]
63
+ examples: ["12345", "789AB"]
64
+ passive: true
65
+
66
+ - name: "serial_number"
67
+ type: string
68
+ description: "Complete aircraft serial number assigned by the manufacturer"
69
+ display_name: "Serial Number"
70
+ mergeability: not_mergeable
71
+ domain_flavors: ["aircraft"]
72
+ examples: ["28-7990244", "172S10245"]
73
+ passive: true
74
+
75
+ - name: "mode_s_code_hex"
76
+ type: string
77
+ description: "Aircraft Mode S transponder code in hexadecimal format (ICAO 24-bit address)"
78
+ display_name: "Mode S Code (Hex)"
79
+ mergeability: not_mergeable
80
+ domain_flavors: ["aircraft"]
81
+ examples: ["A12345", "ABCDEF"]
82
+ passive: true
83
+
84
+ - name: "mode_s_code"
85
+ type: string
86
+ description: "Aircraft Mode S transponder code in octal format"
87
+ display_name: "Mode S Code"
88
+ mergeability: not_mergeable
89
+ domain_flavors: ["aircraft"]
90
+ passive: true
91
+
92
+ - name: "unique_id"
93
+ type: string
94
+ description: "FAA-assigned unique identification number for the registration record"
95
+ display_name: "Unique ID"
96
+ mergeability: not_mergeable
97
+ domain_flavors: ["aircraft"]
98
+ passive: true
99
+
100
+ # Aircraft Details (joined from ACFTREF.txt)
101
+ - name: "manufacturer_name"
102
+ type: string
103
+ description: "Name of the aircraft manufacturer, joined from the FAA aircraft reference table"
104
+ display_name: "Manufacturer Name"
105
+ mergeability: not_mergeable
106
+ domain_flavors: ["aircraft"]
107
+ examples: ["CESSNA", "BOEING", "PIPER", "BEECH"]
108
+ passive: true
109
+
110
+ - name: "model_name"
111
+ type: string
112
+ description: "Aircraft model and series name, joined from the FAA aircraft reference table"
113
+ display_name: "Model Name"
114
+ mergeability: not_mergeable
115
+ domain_flavors: ["aircraft"]
116
+ examples: ["172S", "737-800", "PA-28-181"]
117
+ passive: true
118
+
119
+ - name: "number_of_engines"
120
+ type: string
121
+ description: "Number of engines on the aircraft, from the FAA aircraft reference table"
122
+ display_name: "Number of Engines"
123
+ mergeability: not_mergeable
124
+ domain_flavors: ["aircraft"]
125
+ examples: ["1", "2", "4"]
126
+ passive: true
127
+
128
+ - name: "number_of_seats"
129
+ type: string
130
+ description: "Maximum number of seats in the aircraft, from the FAA aircraft reference table"
131
+ display_name: "Number of Seats"
132
+ mergeability: not_mergeable
133
+ domain_flavors: ["aircraft"]
134
+ examples: ["4", "189", "12"]
135
+ passive: true
136
+
137
+ - name: "aircraft_weight_class"
138
+ type: string
139
+ description: "Maximum gross takeoff weight classification of the aircraft"
140
+ display_name: "Aircraft Weight Class"
141
+ mergeability: not_mergeable
142
+ domain_flavors: ["aircraft"]
143
+ examples: ["Up to 12,499 lbs", "12,500 - 19,999 lbs", "20,000 and over"]
144
+ passive: true
145
+
146
+ - name: "cruising_speed"
147
+ type: string
148
+ description: "Average cruising speed of the aircraft in miles per hour, from the FAA aircraft reference table"
149
+ display_name: "Cruising Speed"
150
+ mergeability: not_mergeable
151
+ domain_flavors: ["aircraft"]
152
+ examples: ["124", "530"]
153
+ passive: true
154
+
155
+ - name: "aircraft_category"
156
+ type: string
157
+ description: "Land, sea, or amphibian classification of the aircraft"
158
+ display_name: "Aircraft Category"
159
+ mergeability: not_mergeable
160
+ domain_flavors: ["aircraft"]
161
+ examples: ["Land", "Sea", "Amphibian"]
162
+ passive: true
163
+
164
+ - name: "builder_certification"
165
+ type: string
166
+ description: "Builder certification classification indicating whether the aircraft is type certificated"
167
+ display_name: "Builder Certification"
168
+ mergeability: not_mergeable
169
+ domain_flavors: ["aircraft"]
170
+ examples: ["Type Certificated", "Not Type Certificated", "Light Sport"]
171
+ passive: true
172
+
173
+ - name: "type_certificate_data_sheet"
174
+ type: string
175
+ description: "FAA Type Certificate Data Sheet reference number"
176
+ display_name: "TC Data Sheet"
177
+ mergeability: not_mergeable
178
+ domain_flavors: ["aircraft"]
179
+ passive: true
180
+
181
+ - name: "type_certificate_holder"
182
+ type: string
183
+ description: "Name of the Type Certificate holder for this aircraft model"
184
+ display_name: "TC Data Holder"
185
+ mergeability: not_mergeable
186
+ domain_flavors: ["aircraft"]
187
+ passive: true
188
+
189
+ - name: "aircraft_type"
190
+ type: string
191
+ description: "Type of aircraft such as fixed wing, rotorcraft, glider, or balloon"
192
+ display_name: "Aircraft Type"
193
+ mergeability: not_mergeable
194
+ domain_flavors: ["aircraft"]
195
+ examples: ["Fixed wing single engine", "Rotorcraft", "Balloon"]
196
+ passive: true
197
+
198
+ - name: "engine_type"
199
+ type: string
200
+ description: "Type of engine installed on the aircraft"
201
+ display_name: "Engine Type"
202
+ mergeability: not_mergeable
203
+ domain_flavors: ["aircraft"]
204
+ examples: ["Reciprocating", "Turbo-fan", "Electric"]
205
+ passive: true
206
+
207
+ - name: "year_manufactured"
208
+ type: string
209
+ description: "Year the aircraft was manufactured"
210
+ display_name: "Year Manufactured"
211
+ mergeability: not_mergeable
212
+ domain_flavors: ["aircraft"]
213
+ examples: ["1978", "2023"]
214
+ passive: true
215
+
216
+ # Joined Engine Details (from ENGINE.txt)
217
+ - name: "engine_manufacturer"
218
+ type: string
219
+ description: "Name of the engine manufacturer, joined from the FAA engine reference table"
220
+ display_name: "Engine Manufacturer"
221
+ mergeability: not_mergeable
222
+ domain_flavors: ["aircraft"]
223
+ examples: ["LYCOMING", "CONT MOTOR", "P&W"]
224
+ passive: true
225
+
226
+ - name: "engine_model"
227
+ type: string
228
+ description: "Engine model name, joined from the FAA engine reference table"
229
+ display_name: "Engine Model"
230
+ mergeability: not_mergeable
231
+ domain_flavors: ["aircraft"]
232
+ examples: ["O-320-D2J", "IO-540"]
233
+ passive: true
234
+
235
+ - name: "engine_horsepower"
236
+ type: string
237
+ description: "Engine horsepower for reciprocating and turboprop engines, from the FAA engine reference table"
238
+ display_name: "Engine Horsepower"
239
+ mergeability: not_mergeable
240
+ domain_flavors: ["aircraft"]
241
+ examples: ["180", "310"]
242
+ passive: true
243
+
244
+ - name: "engine_thrust"
245
+ type: string
246
+ description: "Engine thrust in pounds for turbojet and turbofan engines, from the FAA engine reference table"
247
+ display_name: "Engine Thrust"
248
+ mergeability: not_mergeable
249
+ domain_flavors: ["aircraft"]
250
+ examples: ["27300", "56000"]
251
+ passive: true
252
+
253
+ # Registration Status
254
+ - name: "aircraft_registration_status"
255
+ type: string
256
+ description: "Current FAA registration status of the aircraft"
257
+ display_name: "Registration Status"
258
+ mergeability: not_mergeable
259
+ domain_flavors: ["aircraft"]
260
+ examples: ["Valid Registration", "Registration Expired", "Sale reported"]
261
+ passive: true
262
+
263
+ - name: "registrant_type"
264
+ type: string
265
+ description: "Type of entity that owns the aircraft"
266
+ display_name: "Registrant Type"
267
+ mergeability: not_mergeable
268
+ domain_flavors: ["person", "organization"]
269
+ examples: ["Individual", "Corporation", "LLC", "Government"]
270
+ passive: true
271
+
272
+ - name: "fractional_ownership"
273
+ type: string
274
+ description: "Whether the aircraft registration has fractional ownership"
275
+ display_name: "Fractional Ownership"
276
+ mergeability: not_mergeable
277
+ domain_flavors: ["aircraft"]
278
+ examples: ["true", "false"]
279
+ passive: true
280
+
281
+ # Certification
282
+ - name: "airworthiness_class"
283
+ type: string
284
+ description: "FAA airworthiness certificate classification"
285
+ display_name: "Airworthiness Class"
286
+ mergeability: not_mergeable
287
+ domain_flavors: ["aircraft"]
288
+ examples: ["Standard", "Experimental", "Restricted", "Light Sport"]
289
+ passive: true
290
+
291
+ # Registrant address (on person/organization entities)
292
+ - name: "address"
293
+ type: string
294
+ description: "Physical street address of the entity"
295
+ display_name: "Address"
296
+ mergeability: not_mergeable
297
+ domain_flavors: ["person", "organization"]
298
+ examples: ["1030 DELTA BLVD, ATLANTA, GA 30354"]
299
+ passive: true
300
+
301
+ # Dates
302
+ - name: "last_activity_date"
303
+ type: string
304
+ description: "Date of last registration activity"
305
+ display_name: "Last Activity Date"
306
+ mergeability: not_mergeable
307
+ domain_flavors: ["aircraft"]
308
+ passive: true
309
+
310
+ - name: "certificate_issue_date"
311
+ type: string
312
+ description: "Date the registration certificate was issued"
313
+ display_name: "Certificate Issue Date"
314
+ mergeability: not_mergeable
315
+ domain_flavors: ["aircraft"]
316
+ passive: true
317
+
318
+ - name: "airworthiness_date"
319
+ type: string
320
+ description: "Date of airworthiness certification"
321
+ display_name: "Airworthiness Date"
322
+ mergeability: not_mergeable
323
+ domain_flavors: ["aircraft"]
324
+ passive: true
325
+
326
+ - name: "expiration_date"
327
+ type: string
328
+ description: "Certificate of Registration expiration date"
329
+ display_name: "Expiration Date"
330
+ mergeability: not_mergeable
331
+ domain_flavors: ["aircraft"]
332
+ passive: true
333
+
334
+ # DEREG.txt-specific
335
+ - name: "cancel_date"
336
+ type: string
337
+ description: "Date the aircraft registration was canceled"
338
+ display_name: "Cancel Date"
339
+ mergeability: not_mergeable
340
+ domain_flavors: ["aircraft"]
341
+ passive: true
342
+
343
+ - name: "export_country"
344
+ type: string
345
+ description: "Country the aircraft was exported to upon deregistration"
346
+ display_name: "Export Country"
347
+ mergeability: not_mergeable
348
+ domain_flavors: ["aircraft"]
349
+ examples: ["AUSTRALIA", "CANADA", "BRAZIL"]
350
+ passive: true
351
+
352
+ # Kit Aircraft
353
+ - name: "kit_manufacturer"
354
+ type: string
355
+ description: "Kit manufacturer name for kit-built aircraft"
356
+ display_name: "Kit Manufacturer"
357
+ mergeability: not_mergeable
358
+ domain_flavors: ["aircraft"]
359
+ passive: true
360
+
361
+ - name: "kit_model"
362
+ type: string
363
+ description: "Kit model name for kit-built aircraft"
364
+ display_name: "Kit Model"
365
+ mergeability: not_mergeable
366
+ domain_flavors: ["aircraft"]
367
+ passive: true
368
+
369
+ relationships:
370
+ - name: "owns_aircraft"
371
+ description: "A person or organization owns (is the registered owner of) an aircraft"
372
+ display_name: "Owns Aircraft"
373
+ mergeability: not_mergeable
374
+ domain_flavors: ["person", "organization"]
375
+ target_flavors: ["aircraft"]
376
+ examples: ["DELTA AIR LINES INC owns aircraft N12345"]
377
+ passive: true
378
+
379
+ - name: "is_located_at"
380
+ description: "An entity is located at, operates in, resides in, is headquartered in, was born in, visits, or died in a location"
381
+ display_name: "Located At"
382
+ mergeability: not_mergeable
383
+ domain_flavors: ["person", "organization"]
384
+ target_flavors: ["location"]
385
+ examples: ["DELTA AIR LINES INC is located at ATLANTA, GA"]
386
+ passive: true
@@ -51,7 +51,7 @@ flavors:
51
51
  passive: true
52
52
 
53
53
  - name: "aircraft"
54
- description: "An airplane identified in sanctions designations"
54
+ description: "An aircraft such as a plane, helicopter, glider, or unmanned aerial vehicle"
55
55
  display_name: "Aircraft"
56
56
  mergeability: not_mergeable
57
57
  strong_id_properties: ["sanctions_id"]