{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "LMSFlightFormat v1.1",
"$comment": "Schema version 1.1 — Added DepartTerminal, ArrivalTerminal (default: \"\"), CO2KG, and default \"\" for all string fields",
"type": "object",
"required": ["BookingReference", "PassengerCount", "Currency", "Segments", "FormattingPreferences"],
"properties": {
"BookingReference": {
"type": "string",
"pattern": "^[A-Z0-9\\-]+$",
"default": ""
},
"PassengerCount": {
"type": "integer",
"minimum": 1
},
"Currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"default": ""
},
"Segments": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": [
"FlightNumber",
"Carrier",
"DepartureAirport",
"ArrivalAirport",
"DepartureDate",
"DepartureTime",
"ArrivalDate",
"ArrivalTime",
"CabinClass",
"FareClass",
"Status"
],
"properties": {
"FlightNumber": { "type": "string", "default": "" },
"Carrier": { "type": "string", "default": "" },
"DepartureAirport": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"default": ""
},
"ArrivalAirport": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"default": ""
},
"DepartureDate": {
"type": "string",
"format": "date",
"default": ""
},
"DepartureTime": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
"default": ""
},
"ArrivalDate": {
"type": "string",
"format": "date",
"default": ""
},
"ArrivalTime": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
"default": ""
},
"CabinClass": {
"type": "string",
"enum": ["Economy", "Premium Economy", "Business", "First"],
"default": ""
},
"FareClass": {
"type": "string",
"pattern": "^[A-Z]{1}$",
"default": ""
},
"AircraftType": { "type": "string", "default": "" },
"Status": {
"type": "string",
"enum": ["Confirmed", "Pending", "Cancelled"],
"default": ""
},
"DepartTerminal": {
"type": "string",
"default": ""
},
"ArrivalTerminal": {
"type": "string",
"default": ""
},
"CO2KG": {
"type": "number",
"minimum": 0
},
"Duration": {
"type": "string",
"pattern": "^P(T(?=\d)(\d+H)?(\d+M)?)?$",
"default": ""
}
}
}
},
"FormattingPreferences": {
"type": "object",
"required": ["DateFormat", "TimeFormat", "TimeZoneHandling"],
"properties": {
"DateFormat": {
"type": "string",
"enum": ["yyyy-MM-dd", "dd/MM/yyyy", "MM-dd-yyyy"],
"default": ""
},
"TimeFormat": {
"type": "string",
"enum": ["HH:mm", "hh:mm tt"],
"default": ""
},
"TimeZoneHandling": {
"type": "string",
"enum": ["LocalOnly", "UTC", "Mixed"],
"default": ""
}
}
}
}
}