Added new missing Semantics properties for boarding since iOS 26

This commit is contained in:
Alexander Cerutti
2025-09-16 00:06:40 +02:00
parent 13d037e86f
commit c23c0bebf9

View File

@@ -75,6 +75,13 @@ export interface Semantics {
*/ */
boardingSequenceNumber?: string; boardingSequenceNumber?: string;
/**
* @iOSVersion 26
*
* A zone number for boarding. Don't include the word _zone_.
*/
boardingZone?: string;
/** /**
* The number of the passenger car. * The number of the passenger car.
* A train car is also called a carriage, wagon, coach, or bogie in some countries. * A train car is also called a carriage, wagon, coach, or bogie in some countries.
@@ -98,6 +105,13 @@ export interface Semantics {
*/ */
departureAirportName?: string; departureAirportName?: string;
/**
* @iOSVersion 26
*
* The name of the departure city to display on the boarding pass, such as `London` or `Shanghai`.
*/
departureCityName?: string;
/** /**
* The gate number or letters of the departure gate, such as 1A. Dont include the word gate. * The gate number or letters of the departure gate, such as 1A. Dont include the word gate.
*/ */
@@ -117,14 +131,72 @@ export interface Semantics {
departurePlatform?: string; departurePlatform?: string;
departureStationName?: string; departureStationName?: string;
departureTerminal?: string; departureTerminal?: string;
/**
* @iOSVersion 26
*
* A list of security programs that exist at the departure location.
* This only shows in the UI if a program is in `passengerEligibleSecurityPrograms`
* and at least one of `departureLocationSecurityPrograms` or `destinationLocationSecurityPrograms`
*/
departureLocationSecurityPrograms?: (
| "PKTransitSecurityProgramTSAPreCheck"
| "PKTransitSecurityProgramTSAPreCheckTouchlessID"
| "PKTransitSecurityProgramOSS"
| "PKTransitSecurityProgramITI"
| "PKTransitSecurityProgramITD"
| "PKTransitSecurityProgramGlobalEntry"
| "PKTransitSecurityProgramCLEAR"
)[];
/**
* @iOSVersion 26
*
* The time zone of the departure location, such as `America/Chicago`.
* See the [IANA Time Zone Database](https://www.iana.org/time-zones) for the full list of supported time zones.
*/
departureLocationTimeZone?: string;
destinationAirportCode?: string; destinationAirportCode?: string;
destinationAirportName?: string; destinationAirportName?: string;
/**
* @iOSVersion 26
*
* The name of the destination city to display on the boarding pass, such as `London` or `Shanghai`.
*/
destinationCityName?: string;
destinationGate?: string; destinationGate?: string;
destinationLocation?: SemanticTagType.Location; destinationLocation?: SemanticTagType.Location;
destinationLocationDescription?: string; destinationLocationDescription?: string;
destinationPlatform?: string; destinationPlatform?: string;
destinationStationName?: string; destinationStationName?: string;
destinationTerminal?: string; destinationTerminal?: string;
/**
* @iOSVersion 26
*
* A list of security programs the passenger is eligible for. This only shows in the UI if a program is in `passengerEligibleSecurityPrograms` and at least one of `departureLocationSecurityPrograms` or `destinationLocationSecurityPrograms`.
*/
destinationLocationSecurityPrograms?: (
| "PKTransitSecurityProgramTSAPreCheck"
| "PKTransitSecurityProgramTSAPreCheckTouchlessID"
| "PKTransitSecurityProgramOSS"
| "PKTransitSecurityProgramITI"
| "PKTransitSecurityProgramITD"
| "PKTransitSecurityProgramGlobalEntry"
| "PKTransitSecurityProgramCLEAR"
)[];
/**
* @iOSVersion 26
*
* The time zone of the destination location, such as `America/Los_Angeles`.
* See the [IANA Time Zone Database](https://www.iana.org/time-zones) for the full list of supported time zones.
*/
destinationLocationTimeZone?: string;
duration?: number; duration?: number;
/** /**
@@ -196,6 +268,20 @@ export interface Semantics {
homeTeamLocation?: string; homeTeamLocation?: string;
homeTeamName?: string; homeTeamName?: string;
/**
* @iOSVersion 26
*
* An optional boolean that indicates whether the passenger's international documents are verified. If set to `true` Wallet displays the badge on the boarding pass with the value from `internationalDocumentsVerifiedDeclarationName`.
*/
internationalDocumentsAreVerified?: boolean;
/**
* @iOSVersion 26
*
* The name of the declaration given once the passenger's international documents are verified. Examples include `DOCS OK` or `Travel Ready`. If `internationalDocumentsAreVerified` is true, Wallet displays a badge on the boarding pass with this value.
*/
internationalDocumentsVerifiedDeclarationName?: string;
/** /**
* The abbreviated league name for a sports event. Use this key only for a sports event ticket. * The abbreviated league name for a sports event. Use this key only for a sports event ticket.
*/ */
@@ -207,6 +293,13 @@ export interface Semantics {
*/ */
leagueName?: string; leagueName?: string;
/**
* @iOSVersion 26
*
* The MapKit Place IDs that reference the transit provider lounge locations. For more information, see [Identifying unique locations with Place IDs](https://developer.apple.com/documentation/MapKit/identifying-unique-locations-with-place-ids)
*/
loungePlaceIDs?: string[];
/** /**
* The name of a frequent flyer or loyalty program. * The name of a frequent flyer or loyalty program.
* Use this key for any type of boarding pass. * Use this key for any type of boarding pass.
@@ -237,6 +330,54 @@ export interface Semantics {
*/ */
passengerName?: SemanticTagType.PersonNameComponents; passengerName?: SemanticTagType.PersonNameComponents;
/**
* @iOSVersion 26
*
* An array of airline-specific SSRs (Special Service Requests) that apply to the ticketed passenger.
*/
passengerAirlineSSRs?: string[];
/**
* @iOSVersion 26
*
* A list of capabilties the passenger has. Only use this key for airline boarding passes.
*/
passengerCapabilities?: (
| "PKPassengerCapabilityPreboarding"
| "PKPassengerCapabilityPriorityBoarding"
| "PKPassengerCapabilityCarryon"
| "PKPassengerCapabilityPersonalItem"
)[];
/**
* @iOSVersion 26
*
* A list of security programs the passenger is eligible for. This only shows in the UI if a program is in `passengerEligibleSecurityPrograms` and at least one of `departureLocationSecurityPrograms` or `destinationLocationSecurityPrograms`.
*/
passengerEligibleSecurityPrograms?: (
| "PKTransitSecurityProgramTSAPreCheck"
| "PKTransitSecurityProgramTSAPreCheckTouchlessID"
| "PKTransitSecurityProgramOSS"
| "PKTransitSecurityProgramITI"
| "PKTransitSecurityProgramITD"
| "PKTransitSecurityProgramGlobalEntry"
| "PKTransitSecurityProgramCLEAR"
)[];
/**
* @iOSVersion 26
*
* An array of IATA information SSRs that apply to the ticketed passenger. A comprehensive list of service SSRs can be found in the [IATA Airlines Developer Guide](https://guides.developer.iata.org/docs/21-1_ImplementationGuide.pdf) under A List of Information SSRs.
*/
passengerInformationSSRs?: string[];
/**
* @iOSVersion 26
*
* An array of IATA SSRs that apply to the ticketed passenger. A comprehensive list of service SSRs can be found in the [IATA Airlines Developer Guide](https://guides.developer.iata.org/docs/21-1_ImplementationGuide.pdf) under A List of Service SSRs.
*/
passengerServiceSSRs?: string[];
performerNames?: string[]; performerNames?: string[];
/** /**
@@ -262,6 +403,13 @@ export interface Semantics {
*/ */
tailgatingAllowed?: boolean; tailgatingAllowed?: boolean;
/**
* @iOSVersion 26
*
* A localizable string that denotes the ticket class, such as `Saver`, `Economy`, `First`. This value displays as a badge on the boarding pass.
*/
ticketFareClass?: string;
totalPrice?: SemanticTagType.CurrencyAmount; totalPrice?: SemanticTagType.CurrencyAmount;
/** /**
@@ -425,6 +573,13 @@ export const Semantics = Joi.object<Semantics>().keys({
*/ */
boardingSequenceNumber: Joi.string(), boardingSequenceNumber: Joi.string(),
/**
* @iOSVersion 26
*
* A zone number for boarding. Don't include the word _zone_.
*/
boardingZone: Joi.string(),
/** /**
* The number of the passenger car. * The number of the passenger car.
* A train car is also called a carriage, wagon, coach, or bogie in some countries. * A train car is also called a carriage, wagon, coach, or bogie in some countries.
@@ -449,6 +604,13 @@ export const Semantics = Joi.object<Semantics>().keys({
*/ */
departureAirportName: Joi.string(), departureAirportName: Joi.string(),
/**
* @iOSVersion 26
*
* The name of the departure city to display on the boarding pass, such as London or Shanghai.
*/
departureCityName: Joi.string(),
/** /**
* The gate number or letters of the departure gate, such as 1A. Dont include the word gate. * The gate number or letters of the departure gate, such as 1A. Dont include the word gate.
*/ */
@@ -468,14 +630,58 @@ export const Semantics = Joi.object<Semantics>().keys({
departurePlatform: Joi.string(), departurePlatform: Joi.string(),
departureStationName: Joi.string(), departureStationName: Joi.string(),
departureTerminal: Joi.string(), departureTerminal: Joi.string(),
/**
* @iOSVersion 26
*
* A list of security programs that exist at the departure location. This only shows in the UI if a program is in `passengerEligibleSecurityPrograms` and at least one of `departureLocationSecurityPrograms` or `destinationLocationSecurityPrograms`
*/
departureLocationSecurityPrograms: Joi.array().items(
Joi.string().regex(
/(PKTransitSecurityProgramTSAPreCheck|PKTransitSecurityProgramTSAPreCheckTouchlessID|PKTransitSecurityProgramOSS|PKTransitSecurityProgramITI|PKTransitSecurityProgramITD|PKTransitSecurityProgramGlobalEntry|PKTransitSecurityProgramCLEAR)/,
),
),
/**
* @iOSVersion 26
*
* The time zone of the departure location, such as America/Chicago. See the IANA Time Zone Database for the full list of supported time zones.
*/
departureLocationTimeZone: Joi.string(),
destinationAirportCode: Joi.string(), destinationAirportCode: Joi.string(),
destinationAirportName: Joi.string(), destinationAirportName: Joi.string(),
/**
* @iOSVersion 26
*
* The name of the destination city to display on the boarding pass, such as London or Shanghai.
*/
destinationCityName: Joi.string(),
destinationGate: Joi.string(), destinationGate: Joi.string(),
destinationLocation: SemanticTagType.Location, destinationLocation: SemanticTagType.Location,
destinationLocationDescription: Joi.string(), destinationLocationDescription: Joi.string(),
destinationPlatform: Joi.string(), destinationPlatform: Joi.string(),
destinationStationName: Joi.string(), destinationStationName: Joi.string(),
destinationTerminal: Joi.string(), destinationTerminal: Joi.string(),
/**
* @iOSVersion 26
*
* A list of security programs the passenger is eligible for. This only shows in the UI if a program is in passengerEligibleSecurityPrograms and at least one of departureLocationSecurityPrograms or destinationLocationSecurityPrograms.
*/
destinationLocationSecurityPrograms: Joi.array().items(
Joi.string().regex(
/(PKTransitSecurityProgramTSAPreCheck|PKTransitSecurityProgramTSAPreCheckTouchlessID|PKTransitSecurityProgramOSS|PKTransitSecurityProgramITI|PKTransitSecurityProgramITD|PKTransitSecurityProgramGlobalEntry|PKTransitSecurityProgramCLEAR)/,
),
),
/**
* @iOSVersion 26
*
* The time zone of the destination location, such as America/Los_Angeles. See the IANA Time Zone Database for the full list of supported time zones.
*/
destinationLocationTimeZone: Joi.string(),
duration: Joi.number(), duration: Joi.number(),
/** /**
@@ -522,6 +728,20 @@ export const Semantics = Joi.object<Semantics>().keys({
homeTeamLocation: Joi.string(), homeTeamLocation: Joi.string(),
homeTeamName: Joi.string(), homeTeamName: Joi.string(),
/**
* @iOSVersion 26
*
* An optional boolean that indicates whether the passenger's international documents are verified. If set to `true` Wallet displays the badge on the boarding pass with the value from `internationalDocumentsVerifiedDeclarationName`.
*/
internationalDocumentsAreVerified: Joi.boolean(),
/**
* @iOSVersion 26
*
* The name of the declaration given once the passenger's international documents are verified. Examples include `DOCS OK` or `Travel Ready`. If `internationalDocumentsAreVerified` is true, Wallet displays a badge on the boarding pass with this value.
*/
internationalDocumentsVerifiedDeclarationName: Joi.string(),
/** /**
* The abbreviated league name for a sports event. Use this key only for a sports event ticket. * The abbreviated league name for a sports event. Use this key only for a sports event ticket.
*/ */
@@ -532,6 +752,13 @@ export const Semantics = Joi.object<Semantics>().keys({
*/ */
leagueName: Joi.string(), leagueName: Joi.string(),
/**
* @iOSVersion 26
*
* The MapKit Place IDs that reference the transit provider lounge locations. For more information, see [Identifying unique locations with Place IDs](https://developer.apple.com/documentation/MapKit/identifying-unique-locations-with-place-ids)
*/
loungePlaceIDs: Joi.array().items(Joi.string()),
/** /**
* The name of a frequent flyer or loyalty program. * The name of a frequent flyer or loyalty program.
* Use this key for any type of boarding pass. * Use this key for any type of boarding pass.
@@ -563,6 +790,49 @@ export const Semantics = Joi.object<Semantics>().keys({
*/ */
passengerName: SemanticTagType.PersonNameComponents, passengerName: SemanticTagType.PersonNameComponents,
/**
* @iOSVersion 26
*
* An array of airline-specific SSRs (Special Service Requests) that apply to the ticketed passenger.
*/
passengerAirlineSSRs: Joi.array().items(Joi.string()),
/**
* @iOSVersion 26
*
* A list of capabilties the passenger has. Only use this key for airline boarding passes.
*/
passengerCapabilities: Joi.array().items(
Joi.string().regex(
/(PKPassengerCapabilityPreboarding|PKPassengerCapabilityPriorityBoarding|PKPassengerCapabilityCarryon|PKPassengerCapabilityPersonalItem)/,
),
),
/**
* @iOSVersion 26
*
* A list of security programs the passenger is eligible for. This only shows in the UI if a program is in `passengerEligibleSecurityPrograms` and at least one of `departureLocationSecurityPrograms` or `destinationLocationSecurityPrograms`.
*/
passengerEligibleSecurityPrograms: Joi.array().items(
Joi.string().regex(
/(PKTransitSecurityProgramTSAPreCheck|PKTransitSecurityProgramTSAPreCheckTouchlessID|PKTransitSecurityProgramOSS|PKTransitSecurityProgramITI|PKTransitSecurityProgramITD|PKTransitSecurityProgramGlobalEntry|PKTransitSecurityProgramCLEAR)/,
),
),
/**
* @iOSVersion 26
*
* An array of IATA information SSRs that apply to the ticketed passenger. A comprehensive list of service SSRs can be found in the [IATA Airlines Developer Guide](https://guides.developer.iata.org/docs/21-1_ImplementationGuide.pdf) under A List of Information SSRs.
*/
passengerInformationSSRs: Joi.array().items(Joi.string()),
/**
* @iOSVersion 26
*
* An array of IATA SSRs that apply to the ticketed passenger. A comprehensive list of service SSRs can be found in the [IATA Airlines Developer Guide](https://guides.developer.iata.org/docs/21-1_ImplementationGuide.pdf) under A List of Service SSRs.
*/
passengerServiceSSRs: Joi.array().items(Joi.string()),
performerNames: Joi.array().items(Joi.string()), performerNames: Joi.array().items(Joi.string()),
/** /**
@@ -580,6 +850,13 @@ export const Semantics = Joi.object<Semantics>().keys({
tailgatingAllowed: Joi.boolean(), tailgatingAllowed: Joi.boolean(),
/**
* @iOSVersion 26
*
* A localizable string that denotes the ticket class, such as `Saver`, `Economy`, `First`. This value displays as a badge on the boarding pass.
*/
ticketFareClass: Joi.string(),
totalPrice: SemanticTagType.CurrencyAmount, totalPrice: SemanticTagType.CurrencyAmount,
/** /**