mirror of
https://github.com/PlaneQuery/OpenAirframes.git
synced 2026-04-23 11:36:35 +02:00
334 lines
9.8 KiB
JSON
Executable File
334 lines
9.8 KiB
JSON
Executable File
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://github.com/fleet-catalog/schema/aircraft.schema.json",
|
|
"title": "Airline Fleet Catalog",
|
|
"description": "Standardized schema for tracking airline fleet properties across multiple carriers",
|
|
"type": "object",
|
|
"required": ["schema_version", "airline", "generated_at", "aircraft"],
|
|
"properties": {
|
|
"schema_version": {
|
|
"type": "string",
|
|
"description": "Semantic version of the schema",
|
|
"pattern": "^\\d+\\.\\d+\\.\\d+$"
|
|
},
|
|
"airline": {
|
|
"type": "object",
|
|
"required": ["iata_code", "name"],
|
|
"properties": {
|
|
"iata_code": {
|
|
"type": "string",
|
|
"description": "2-letter IATA airline code",
|
|
"pattern": "^[A-Z0-9]{2}$"
|
|
},
|
|
"icao_code": {
|
|
"type": ["string", "null"],
|
|
"description": "3-letter ICAO airline code",
|
|
"pattern": "^[A-Z]{3}$"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Full airline name"
|
|
},
|
|
"country": {
|
|
"type": ["string", "null"],
|
|
"description": "ISO 3166-1 alpha-2 country code"
|
|
}
|
|
}
|
|
},
|
|
"generated_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "ISO 8601 timestamp when this file was generated"
|
|
},
|
|
"aircraft_count": {
|
|
"type": "integer",
|
|
"description": "Total number of aircraft in this file"
|
|
},
|
|
"aircraft": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/aircraft"
|
|
}
|
|
}
|
|
},
|
|
"$defs": {
|
|
"aircraft": {
|
|
"type": "object",
|
|
"required": ["registration"],
|
|
"properties": {
|
|
"registration": {
|
|
"type": "string",
|
|
"description": "Aircraft registration (tail number) without dashes"
|
|
},
|
|
"icao24": {
|
|
"type": ["string", "null"],
|
|
"description": "24-bit ICAO Mode-S transponder address in hexadecimal"
|
|
},
|
|
"aircraft_type": {
|
|
"$ref": "#/$defs/aircraft_type"
|
|
},
|
|
"operator": {
|
|
"$ref": "#/$defs/operator"
|
|
},
|
|
"cabin": {
|
|
"$ref": "#/$defs/cabin"
|
|
},
|
|
"connectivity": {
|
|
"$ref": "#/$defs/connectivity"
|
|
},
|
|
"ife": {
|
|
"$ref": "#/$defs/ife"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": ["active", "stored", "maintenance", "retired"],
|
|
"description": "Current operational status"
|
|
},
|
|
"tracking": {
|
|
"$ref": "#/$defs/tracking"
|
|
},
|
|
"metadata": {
|
|
"$ref": "#/$defs/metadata"
|
|
},
|
|
"history": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/history_entry"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"aircraft_type": {
|
|
"type": "object",
|
|
"properties": {
|
|
"iata_code": {
|
|
"type": ["string", "null"],
|
|
"description": "IATA aircraft type code (e.g., 77W, 359)"
|
|
},
|
|
"icao_code": {
|
|
"type": ["string", "null"],
|
|
"description": "ICAO aircraft type designator (e.g., B77W, A359)"
|
|
},
|
|
"manufacturer": {
|
|
"type": ["string", "null"],
|
|
"description": "Aircraft manufacturer (Airbus, Boeing, Embraer, etc.)"
|
|
},
|
|
"model": {
|
|
"type": ["string", "null"],
|
|
"description": "Aircraft model (A350, 777, etc.)"
|
|
},
|
|
"variant": {
|
|
"type": ["string", "null"],
|
|
"description": "Aircraft variant (900, 300ER, etc.)"
|
|
},
|
|
"full_name": {
|
|
"type": ["string", "null"],
|
|
"description": "Full aircraft type name"
|
|
}
|
|
}
|
|
},
|
|
"operator": {
|
|
"type": "object",
|
|
"description": "Operational details specific to this aircraft",
|
|
"properties": {
|
|
"sub_fleet_code": {
|
|
"type": ["string", "null"],
|
|
"description": "Internal sub-fleet code (e.g., AB, CA, AR)"
|
|
},
|
|
"cabin_crew_employer": {
|
|
"type": ["string", "null"],
|
|
"description": "Airline code of cabin crew employer"
|
|
},
|
|
"cockpit_crew_employer": {
|
|
"type": ["string", "null"],
|
|
"description": "Airline code of cockpit crew employer"
|
|
}
|
|
}
|
|
},
|
|
"cabin": {
|
|
"type": "object",
|
|
"properties": {
|
|
"physical_configuration": {
|
|
"type": ["string", "null"],
|
|
"description": "Physical seat configuration code (e.g., J034W024Y266)"
|
|
},
|
|
"operational_configuration": {
|
|
"type": ["string", "null"],
|
|
"description": "Operational/saleable seat configuration"
|
|
},
|
|
"saleable_configuration": {
|
|
"type": ["string", "null"],
|
|
"description": "Saleable seat configuration"
|
|
},
|
|
"total_seats": {
|
|
"type": ["integer", "null"],
|
|
"description": "Total number of passenger seats"
|
|
},
|
|
"classes": {
|
|
"type": "object",
|
|
"properties": {
|
|
"first": {
|
|
"type": "integer",
|
|
"description": "Number of first class seats"
|
|
},
|
|
"business": {
|
|
"type": "integer",
|
|
"description": "Number of business class seats"
|
|
},
|
|
"premium_economy": {
|
|
"type": "integer",
|
|
"description": "Number of premium economy seats"
|
|
},
|
|
"economy": {
|
|
"type": "integer",
|
|
"description": "Number of economy seats"
|
|
}
|
|
}
|
|
},
|
|
"freight_configuration": {
|
|
"type": ["string", "null"],
|
|
"description": "Cargo hold configuration (e.g., PP008LL012)"
|
|
}
|
|
}
|
|
},
|
|
"connectivity": {
|
|
"type": "object",
|
|
"properties": {
|
|
"wifi": {
|
|
"type": "string",
|
|
"enum": ["none", "low-speed", "high-speed"],
|
|
"description": "WiFi availability and speed tier"
|
|
},
|
|
"wifi_provider": {
|
|
"type": ["string", "null"],
|
|
"description": "WiFi service provider (Starlink, Viasat, Gogo 2Ku, etc.)"
|
|
},
|
|
"satellite": {
|
|
"type": ["boolean", "null"],
|
|
"description": "Whether satellite connectivity is available"
|
|
},
|
|
"live_tv": {
|
|
"type": ["boolean", "null"],
|
|
"description": "Whether live TV is available"
|
|
},
|
|
"power_outlets": {
|
|
"type": ["boolean", "null"],
|
|
"description": "Whether AC power outlets are available"
|
|
},
|
|
"usb_ports": {
|
|
"type": ["boolean", "null"],
|
|
"description": "Whether USB charging ports are available"
|
|
}
|
|
}
|
|
},
|
|
"ife": {
|
|
"type": "object",
|
|
"description": "In-flight entertainment system",
|
|
"properties": {
|
|
"type": {
|
|
"type": ["string", "null"],
|
|
"enum": ["none", "overhead", "seatback", "streaming", "hybrid", null],
|
|
"description": "Type of IFE system"
|
|
},
|
|
"personal_screens": {
|
|
"type": ["boolean", "null"],
|
|
"description": "Whether personal seatback screens are available"
|
|
}
|
|
}
|
|
},
|
|
"tracking": {
|
|
"type": "object",
|
|
"description": "Flight tracking statistics",
|
|
"properties": {
|
|
"first_seen": {
|
|
"type": ["string", "null"],
|
|
"format": "date",
|
|
"description": "Date when aircraft was first tracked"
|
|
},
|
|
"last_seen": {
|
|
"type": ["string", "null"],
|
|
"format": "date",
|
|
"description": "Date when aircraft was last tracked"
|
|
},
|
|
"total_flights": {
|
|
"type": ["integer", "null"],
|
|
"description": "Total number of flights tracked"
|
|
}
|
|
}
|
|
},
|
|
"metadata": {
|
|
"type": "object",
|
|
"description": "Additional metadata about the aircraft",
|
|
"properties": {
|
|
"delivery_date": {
|
|
"type": ["string", "null"],
|
|
"format": "date",
|
|
"description": "Date aircraft was delivered to airline"
|
|
},
|
|
"msn": {
|
|
"type": ["string", "null"],
|
|
"description": "Manufacturer Serial Number"
|
|
},
|
|
"line_number": {
|
|
"type": ["string", "null"],
|
|
"description": "Production line number"
|
|
},
|
|
"production_site": {
|
|
"type": ["string", "null"],
|
|
"description": "Factory/production site (e.g., Toulouse, Hamburg, Mirabel)"
|
|
},
|
|
"engine_type": {
|
|
"type": ["string", "null"],
|
|
"description": "Engine model (e.g., Trent XWB-84, GE90-115B)"
|
|
},
|
|
"aircraft_name": {
|
|
"type": ["string", "null"],
|
|
"description": "Aircraft given name (e.g., 'Fort-de-France')"
|
|
},
|
|
"livery": {
|
|
"type": ["string", "null"],
|
|
"description": "Special livery or paint scheme"
|
|
},
|
|
"comments": {
|
|
"type": ["string", "null"],
|
|
"description": "Additional notes or comments"
|
|
},
|
|
"created_at": {
|
|
"type": ["string", "null"],
|
|
"format": "date-time"
|
|
},
|
|
"updated_at": {
|
|
"type": ["string", "null"],
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"history_entry": {
|
|
"type": "object",
|
|
"required": ["timestamp", "property"],
|
|
"properties": {
|
|
"timestamp": {
|
|
"type": "string",
|
|
"description": "Date or datetime when change was detected"
|
|
},
|
|
"property": {
|
|
"type": "string",
|
|
"description": "Dot-notation path to the changed property"
|
|
},
|
|
"old_value": {
|
|
"description": "Previous value"
|
|
},
|
|
"new_value": {
|
|
"description": "New value"
|
|
},
|
|
"source": {
|
|
"type": ["string", "null"],
|
|
"enum": ["flight_api", "airline_api", "manual", "planespotters", "community", null],
|
|
"description": "Source of the change detection"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|