UNPKG

ws-dottie

Version:

Your friendly TypeScript companion for Washington State transportation APIs - WSDOT and WSF data with smart caching and React Query integration

3,932 lines 261 kB
openapi: 3.0.0
info:
  title: Wsf Terminals API
  version: 1.0.0
  description: Wsf Terminals API - Washington State Department of Transportation APIs
servers:
  - url: https://www.wsdot.wa.gov/ferries/api/terminals/rest
    description: Production server
components:
  schemas:
    RoadwayLocation:
      type: object
      properties:
        Description:
          type: string
          nullable: true
          description: Human-readable description of the roadway location, such as interchange names or cross streets.
        Direction:
          type: string
          nullable: true
          description: 'Traffic direction designation: N, S, B, NB, or SB, indicating which side of the highway is affected.'
        Latitude:
          type: number
          description: Latitude of the roadway location in decimal degrees.
        Longitude:
          type: number
          description: Longitude of the roadway location in decimal degrees.
        MilePost:
          type: number
          description: Milepost marker along the highway corridor, with 0 indicating route terminus.
        RoadName:
          type: string
          nullable: true
          description: Highway or route designation code, such as '005' for I-5 or '090' for I-90.
      required:
        - Description
        - Direction
        - Latitude
        - Longitude
        - MilePost
        - RoadName
      description: Roadway location information including route, milepost, coordinates, and direction.
    FetchCacheFlushDateTerminalsOutput:
      type: string
      description: UTC datetime when static endpoint data was last updated, or undefined if no update has occurred.
      format: date-time
    FetchTerminalBasicsByTerminalIdOutput:
      type: object
      properties:
        TerminalID:
          type: integer
          description: Numeric ID of the terminal.
        TerminalSubjectID:
          type: integer
          description: Numeric ID of the terminal in the WSF subject management system.
        RegionID:
          type: integer
          description: Numeric ID of the geographical region where the terminal is located.
        TerminalName:
          type: string
          nullable: true
          description: Display name of the terminal.
        TerminalAbbrev:
          type: string
          nullable: true
          description: Abbreviation code for the terminal.
        SortSeq:
          type: integer
          description: Display sort order; lower values appear first in lists.
        OverheadPassengerLoading:
          type: boolean
          description: True if overhead passenger loading facility is available; otherwise false.
        Elevator:
          type: boolean
          description: True if terminal has elevator access; otherwise false.
        WaitingRoom:
          type: boolean
          description: True if terminal has waiting room facility; otherwise false.
        FoodService:
          type: boolean
          description: True if terminal offers food service; otherwise false.
        Restroom:
          type: boolean
          description: True if terminal has restroom facilities; otherwise false.
      required:
        - TerminalID
        - TerminalSubjectID
        - RegionID
        - TerminalName
        - TerminalAbbrev
        - SortSeq
        - OverheadPassengerLoading
        - Elevator
        - WaitingRoom
        - FoodService
        - Restroom
      description: Basic terminal information including identification, amenities, and regional assignments.
    FetchTerminalBulletinsByTerminalIdOutput:
      type: object
      properties:
        TerminalID:
          type: integer
          description: Numeric ID of the terminal.
        TerminalSubjectID:
          type: integer
          description: Numeric ID of the terminal in the WSF subject management system.
        RegionID:
          type: integer
          description: Numeric ID of the geographical region where the terminal is located.
        TerminalName:
          type: string
          nullable: true
          description: Display name of the terminal.
        TerminalAbbrev:
          type: string
          nullable: true
          description: Abbreviation code for the terminal.
        SortSeq:
          type: integer
          description: Display sort order; lower values appear first in lists.
        Bulletins:
          type: array
          items:
            type: object
            properties:
              BulletinTitle:
                type: string
                nullable: true
                description: Title of the bulletin.
              BulletinText:
                type: string
                nullable: true
                description: HTML-formatted content of the bulletin.
              BulletinSortSeq:
                type: integer
                description: Display sort order for the bulletin; lower values appear first.
              BulletinLastUpdated:
                type: string
                nullable: true
                description: UTC datetime when the bulletin was last updated.
                format: date-time
              BulletinLastUpdatedSortable:
                type: string
                nullable: true
                description: Legacy sortable string representation of the bulletin update date.
                format: date-time
            required:
              - BulletinTitle
              - BulletinText
              - BulletinSortSeq
              - BulletinLastUpdated
              - BulletinLastUpdatedSortable
            description: Bulletin information including title, HTML content, sort order, and update date.
          description: Array of bulletins and alerts associated with the terminal.
      required:
        - TerminalID
        - TerminalSubjectID
        - RegionID
        - TerminalName
        - TerminalAbbrev
        - SortSeq
        - Bulletins
      description: Terminal information with associated bulletins and alerts.
    FetchTerminalLocationsByTerminalIdOutput:
      type: object
      properties:
        TerminalID:
          type: integer
          description: Numeric ID of the terminal.
        TerminalSubjectID:
          type: integer
          description: Numeric ID of the terminal in the WSF subject management system.
        RegionID:
          type: integer
          description: Numeric ID of the geographical region where the terminal is located.
        TerminalName:
          type: string
          nullable: true
          description: Display name of the terminal.
        TerminalAbbrev:
          type: string
          nullable: true
          description: Abbreviation code for the terminal.
        SortSeq:
          type: integer
          description: Display sort order; lower values appear first in lists.
        Latitude:
          type: number
          nullable: true
          description: Latitude of the terminal in decimal degrees.
        Longitude:
          type: number
          nullable: true
          description: Longitude of the terminal in decimal degrees.
        AddressLineOne:
          type: string
          nullable: true
          description: First line of the terminal street address.
        AddressLineTwo:
          type: string
          nullable: true
          description: Second line of the terminal street address.
        City:
          type: string
          nullable: true
          description: City where the terminal is located.
        State:
          type: string
          nullable: true
          description: State code where the terminal is located.
        ZipCode:
          type: string
          nullable: true
          description: Postal zip code for the terminal location.
        Country:
          type: string
          nullable: true
          description: Country code where the terminal is located.
        MapLink:
          type: string
          nullable: true
          description: URL to a map displaying the terminal location.
        Directions:
          type: string
          nullable: true
          description: HTML-formatted driving directions to the terminal.
        DispGISZoomLoc:
          type: array
          nullable: true
          items:
            type: object
            properties:
              ZoomLevel:
                type: integer
                description: GIS zoom level for map display.
              Latitude:
                type: number
                nullable: true
                description: Latitude coordinate for this zoom level in decimal degrees.
              Longitude:
                type: number
                nullable: true
                description: Longitude coordinate for this zoom level in decimal degrees.
            required:
              - ZoomLevel
              - Latitude
              - Longitude
            description: GIS zoom level location information including zoom level and coordinates.
          description: Array of GIS zoom level locations for the terminal.
      required:
        - TerminalID
        - TerminalSubjectID
        - RegionID
        - TerminalName
        - TerminalAbbrev
        - SortSeq
        - Latitude
        - Longitude
        - AddressLineOne
        - AddressLineTwo
        - City
        - State
        - ZipCode
        - Country
        - MapLink
        - Directions
        - DispGISZoomLoc
      description: Detailed terminal location information including coordinates, address, map link, driving directions, and GIS zoom level locations.
    FetchTerminalSailingSpaceByTerminalIdOutput:
      type: object
      properties:
        TerminalID:
          type: integer
          description: Numeric ID of the terminal.
        TerminalSubjectID:
          type: integer
          description: Numeric ID of the terminal in the WSF subject management system.
        RegionID:
          type: integer
          description: Numeric ID of the geographical region where the terminal is located.
        TerminalName:
          type: string
          nullable: true
          description: Display name of the terminal.
        TerminalAbbrev:
          type: string
          nullable: true
          description: Abbreviation code for the terminal.
        SortSeq:
          type: integer
          description: Display sort order; lower values appear first in lists.
        DepartingSpaces:
          type: array
          nullable: true
          items:
            type: object
            properties:
              Departure:
                type: string
                description: Date and time of departure, as a UTC datetime. E.g., '2025-11-02T21:35:00.000Z' for departure at 9:35 PM on November 2, 2025. Used for departure schedule display and space availability timing.
                format: date-time
              IsCancelled:
                type: boolean
                description: Indicator whether departure is cancelled, as a boolean. E.g., false for active departures, true for cancelled departures. Used to determine if departure is operational.
              VesselID:
                type: integer
                description: Unique identifier for vessel planned to service departure, as an integer ID. E.g., '69' for Samish vessel, '38' for Yakima vessel, '17' for Kaleetan vessel. Used to identify which vessel operates departure.
              VesselName:
                type: string
                nullable: true
                description: Human-readable name of vessel planned to service departure, as a vessel name. E.g., 'Samish' for vessel 69, 'Yakima' for vessel 38, 'Kaleetan' for vessel 17, null when vessel name is unavailable. Provides vessel identification for display.
              MaxSpaceCount:
                type: integer
                description: Maximum vehicle capacity on vessel making departure, as an integer count. E.g., '141' for Samish vessel capacity, '139' for Yakima vessel capacity, '197' for Tacoma vessel capacity. Used to calculate space availability percentage.
              SpaceForArrivalTerminals:
                type: array
                nullable: true
                items:
                  type: object
                  properties:
                    TerminalID:
                      type: integer
                      description: Unique identifier for arrival terminal destination, as an integer ID. E.g., '10' for Friday Harbor terminal, '13' for Lopez Island terminal. Used to identify destination terminal for space availability.
                    TerminalName:
                      type: string
                      nullable: true
                      description: Human-readable name of arrival terminal destination, as a terminal name. E.g., 'Anacortes -> Friday Harbor' for multi-destination sailing, 'Seattle' for single destination, null when terminal name is unavailable. Provides destination identification for display.
                    VesselID:
                      type: integer
                      description: Unique identifier for vessel planned to service departure, as an integer ID. E.g., '69' for Samish vessel, '38' for Yakima vessel, '17' for Kaleetan vessel. Used to identify which vessel operates departure.
                    VesselName:
                      type: string
                      nullable: true
                      description: Human-readable name of vessel planned to service departure, as a vessel name. E.g., 'Samish' for vessel 69, 'Yakima' for vessel 38, 'Kaleetan' for vessel 17, null when vessel name is unavailable. Provides vessel identification for display.
                    DisplayReservableSpace:
                      type: boolean
                      description: Indicator whether reservable space information should be displayed, as a boolean. E.g., true for routes supporting reservations, false for routes without reservations. Used to determine if reservation space data should be shown.
                    ReservableSpaceCount:
                      type: integer
                      nullable: true
                      description: Remaining reservable vehicle spaces available on vessel, as an integer count. E.g., '45' for 45 reservable spaces remaining, '36' for 36 reservable spaces, null when reservations are not supported or count is unavailable. Used for reservation availability display.
                    ReservableSpaceHexColor:
                      type: string
                      nullable: true
                      description: Hex color code representing reservable space availability status, as a hex color. E.g., '#FFFF00' for yellow (limited availability), '#888888' for gray (not available), null when color is unavailable. Used for visual space availability indicators.
                    DisplayDriveUpSpace:
                      type: boolean
                      description: Indicator whether drive-up space information should be displayed, as a boolean. E.g., true for routes with drive-up space tracking, false when drive-up space is not tracked. Used to determine if drive-up space data should be shown.
                    DriveUpSpaceCount:
                      type: integer
                      nullable: true
                      description: Remaining drive-up vehicle spaces available on vessel, as an integer count. E.g., '67' for 67 drive-up spaces remaining, '197' for 197 drive-up spaces, null when drive-up space is not tracked or count is unavailable. Used for drive-up availability display.
                    DriveUpSpaceHexColor:
                      type: string
                      nullable: true
                      description: Hex color code representing drive-up space availability status, as a hex color. E.g., '#00FF00' for green (good availability), '#FFFF00' for yellow (limited availability), null when color is unavailable. Used for visual space availability indicators.
                    MaxSpaceCount:
                      type: integer
                      description: Maximum vehicle capacity on vessel making departure, as an integer count. E.g., '141' for Samish vessel capacity, '139' for Yakima vessel capacity, '197' for Tacoma vessel capacity. Used to calculate space availability percentage.
                    ArrivalTerminalIDs:
                      type: array
                      nullable: true
                      items:
                        type: integer
                      description: Array of arrival terminal IDs associated with this space count set, as terminal ID integers. E.g., array containing terminal 10 for single destination, array containing terminals 13, 10 for multi-destination sailing, null when terminal IDs are unavailable. Used to identify all destinations served by this space count.
                  required:
                    - TerminalID
                    - TerminalName
                    - VesselID
                    - VesselName
                    - DisplayReservableSpace
                    - ReservableSpaceCount
                    - ReservableSpaceHexColor
                    - DisplayDriveUpSpace
                    - DriveUpSpaceCount
                    - DriveUpSpaceHexColor
                    - MaxSpaceCount
                    - ArrivalTerminalIDs
                  description: Represents space availability information for arrival terminal destination including terminal/vessel identification, reservable space count and color, drive-up space count and color, maximum capacity, and arrival terminal IDs. E.g., Friday Harbor destination with 67 drive-up spaces (green) and 141 maximum capacity on Samish vessel. Used for real-time space availability display.
                description: Array of space availability information for one or more arrival terminal destinations, as space for arrival terminal objects. E.g., array containing Friday Harbor destination with space counts, array containing multiple destinations for multi-destination sailing, null when space information is unavailable. Used for real-time space availability display by destination.
            required:
              - Departure
              - IsCancelled
              - VesselID
              - VesselName
              - MaxSpaceCount
              - SpaceForArrivalTerminals
            description: Represents departing space information including departure time, cancellation status, vessel details, maximum capacity, and space availability for arrival terminals. E.g., departure at 9:35 PM with Samish vessel (ID 69, capacity 141) and space information for Friday Harbor destination. Used for real-time departure space availability display.
          description: Array of upcoming departures leaving terminal with space availability information, as departing space objects. E.g., array containing multiple departures with vessel and space details, null when departure information is unavailable. Used for real-time departure space availability display.
        IsNoFareCollected:
          type: boolean
          nullable: true
          description: Indicator whether terminal is capable of collecting fares, as a boolean. E.g., null when fare collection status is unknown, false when terminal collects fares, true when terminal does not collect fares. Used to determine fare collection capability.
        NoFareCollectedMsg:
          type: string
          nullable: true
          description: Optional message explaining how inability to collect fares affects terminal conditions data, as a message string. E.g., null when fare collection is available, message when fare collection affects space tracking accuracy. Used to inform users about data limitations.
      required:
        - TerminalID
        - TerminalSubjectID
        - RegionID
        - TerminalName
        - TerminalAbbrev
        - SortSeq
        - IsNoFareCollected
        - NoFareCollectedMsg
      description: Terminal sailing space information including terminal identification, upcoming departures with space availability, and fare collection status.
    FetchTerminalTransportsByTerminalIdOutput:
      type: object
      properties:
        TerminalID:
          type: integer
          description: Numeric ID of the terminal.
        TerminalSubjectID:
          type: integer
          description: Numeric ID of the terminal in the WSF subject management system.
        RegionID:
          type: integer
          description: Numeric ID of the geographical region where the terminal is located.
        TerminalName:
          type: string
          nullable: true
          description: Display name of the terminal.
        TerminalAbbrev:
          type: string
          nullable: true
          description: Abbreviation code for the terminal.
        SortSeq:
          type: integer
          description: Display sort order; lower values appear first in lists.
        ParkingInfo:
          type: string
          nullable: true
          description: HTML-formatted parking information for terminal, as parking details. E.g., 'Off-Peak rates effective October 1 through April 30, 2026...' for Anacortes parking rates, null when parking information is unavailable. HTML-formatted text for parking information display.
        ParkingShuttleInfo:
          type: string
          nullable: true
          description: HTML-formatted information about parking-related shuttles servicing terminal, as shuttle information. E.g., null when no parking shuttles, shuttle details when available. Used for parking shuttle information display.
        AirportInfo:
          type: string
          nullable: true
          description: HTML-formatted tips for commuting to terminal from airport, as airport directions. E.g., 'From the Seattle-Tacoma International Airport, allow a minimum of 2 1/2 hours...' for Anacortes airport directions, null when airport information is unavailable. HTML-formatted text for airport commuter information.
        AirportShuttleInfo:
          type: string
          nullable: true
          description: HTML-formatted information about airport shuttles servicing terminal, as shuttle information. E.g., 'When traveling from Sea-Tac Airport to Anacortes there is a shuttle...' for Anacortes airport shuttle, null when airport shuttle information is unavailable. HTML-formatted text for airport shuttle information.
        MotorcycleInfo:
          type: string
          nullable: true
          description: HTML-formatted information for motorcycle travelers, as motorcycle tips. E.g., 'While motorcycles are not, by Washington Administrative Code...' for motorcycle staging and loading information, null when motorcycle information is unavailable. HTML-formatted text for motorcycle commuter information.
        TruckInfo:
          type: string
          nullable: true
          description: HTML-formatted information for truck travelers, as truck tips. E.g., 'Expect heavy truck traffic on the first 3 sailings in the morning...' for truck travel information, null when truck information is unavailable. HTML-formatted text for truck commuter information.
        BikeInfo:
          type: string
          nullable: true
          description: HTML-formatted information for bicycle travelers, as bicycle tips. E.g., 'Approaching the Anacortes Terminal, you will arrive at the vehicle tollbooths...' for bicycle staging information, null when bicycle information is unavailable. HTML-formatted text for bicycle commuter information.
        TrainInfo:
          type: string
          nullable: true
          description: HTML-formatted information about trains servicing terminal, as train information. E.g., null when no train service, train details when available. Used for train commuter information display.
        TaxiInfo:
          type: string
          nullable: true
          description: HTML-formatted information about taxis servicing terminal, as taxi information. E.g., null when no taxi information, taxi details when available. Used for taxi commuter information display.
        HovInfo:
          type: string
          nullable: true
          description: HTML-formatted tips for carpool/vanpool commuters, as HOV information. E.g., 'Carpool/Vanpools must be ticketed and in line 10 minutes before...' for Bainbridge Island HOV information, null when HOV information is unavailable. HTML-formatted text for carpool/vanpool commuter information.
        TransitLinks:
          type: array
          nullable: true
          items:
            type: object
            properties:
              LinkURL:
                type: string
                nullable: true
                description: URL to transit agency website or service page, as a transit URL. E.g., 'http://www.skagittransit.org/' for Skagit Transit, 'http://www.kitsaptransit.com/service/routed-buses' for Kitsap Transit, null when transit link is unavailable. Used for accessing transit agency information.
              LinkName:
                type: string
                nullable: true
                description: Human-readable name of transit agency, as a transit agency name. E.g., 'Skagit Transit' for Skagit Transit agency, 'Kitsap Transit' for Kitsap Transit agency, null when transit name is unavailable. Provides transit agency identification for display.
              SortSeq:
                type: integer
                nullable: true
                description: Preferred sort order for transit link display, as an integer. E.g., null when sort order is not specified. Lower values appear first when sorting transit links in ascending order. Used for transit link display ordering.
            required:
              - LinkURL
              - LinkName
              - SortSeq
            description: Represents transit link information including transit agency URL, name, and sort order. E.g., Skagit Transit link (http://www.skagittransit.org/). Used for displaying transit agency connections and links.
          description: Array of transit agency links servicing terminal, as transit link objects. E.g., array containing Skagit Transit link for Anacortes terminal, array containing Kitsap Transit link for Bainbridge Island terminal, null when transit links are unavailable. Used for displaying transit agency connections.
      required:
        - TerminalID
        - TerminalSubjectID
        - RegionID
        - TerminalName
        - TerminalAbbrev
        - SortSeq
        - ParkingInfo
        - ParkingShuttleInfo
        - AirportInfo
        - AirportShuttleInfo
        - MotorcycleInfo
        - TruckInfo
        - BikeInfo
        - TrainInfo
        - TaxiInfo
        - HovInfo
        - TransitLinks
      description: Terminal transportation and commuter information including parking details, vehicle-specific tips, airport information, transit links, and HOV/carpool information.
    FetchTerminalVerboseByTerminalIdOutput:
      allOf:
        - type: object
          properties:
            TerminalID:
              type: integer
              description: Numeric ID of the terminal.
            TerminalSubjectID:
              type: integer
              description: Numeric ID of the terminal in the WSF subject management system.
            RegionID:
              type: integer
              description: Numeric ID of the geographical region where the terminal is located.
            TerminalName:
              type: string
              nullable: true
              description: Display name of the terminal.
            TerminalAbbrev:
              type: string
              nullable: true
              description: Abbreviation code for the terminal.
            SortSeq:
              type: integer
              description: Display sort order; lower values appear first in lists.
            OverheadPassengerLoading:
              type: boolean
              description: Indicator whether terminal supports overhead passenger loading from upper vehicle deck, as a boolean. E.g., true for terminals with overhead walkways like Anacortes and Bainbridge Island, false for terminals without overhead loading capability. Used to determine passenger boarding capabilities and accessibility features.
            Elevator:
              type: boolean
              description: Indicator whether terminal has elevator access for passengers, as a boolean. E.g., false for terminals like Anacortes and Bainbridge Island without elevators, true for terminals with elevator access. Used to determine ADA accessibility and passenger mobility accommodations.
            WaitingRoom:
              type: boolean
              description: Indicator whether terminal has indoor waiting room facility, as a boolean. E.g., true for terminals like Anacortes and Bainbridge Island with waiting rooms, false for terminals without waiting facilities. Used to determine passenger comfort amenities and sheltered waiting areas.
            FoodService:
              type: boolean
              description: Indicator whether terminal offers food service facilities, as a boolean. E.g., true for terminals like Anacortes and Bainbridge Island with galleys or cafes, false for terminals without food service. Used to determine available amenities for passengers during wait times.
            Restroom:
              type: boolean
              description: Indicator whether terminal has restroom facilities, as a boolean. E.g., true for terminals like Anacortes and Bainbridge Island with restrooms, false for terminals without restroom access. Used to determine passenger comfort amenities and basic facility availability.
          required:
            - TerminalID
            - TerminalSubjectID
            - RegionID
            - TerminalName
            - TerminalAbbrev
            - SortSeq
            - OverheadPassengerLoading
            - Elevator
            - WaitingRoom
            - FoodService
            - Restroom
          description: Base terminal information including identification, naming, regional association, and display ordering.
        - type: object
          properties:
            Bulletins:
              type: array
              items:
                type: object
                properties:
                  BulletinTitle:
                    type: string
                    nullable: true
                    description: Title of the bulletin.
                  BulletinText:
                    type: string
                    nullable: true
                    description: HTML-formatted content of the bulletin.
                  BulletinSortSeq:
                    type: integer
                    description: Display sort order for the bulletin; lower values appear first.
                  BulletinLastUpdated:
                    type: string
                    nullable: true
                    description: UTC datetime when the bulletin was last updated.
                    format: date-time
                  BulletinLastUpdatedSortable:
                    type: string
                    nullable: true
                    description: Legacy sortable string representation of the bulletin update date.
                    format: date-time
                required:
                  - BulletinTitle
                  - BulletinText
                  - BulletinSortSeq
                  - BulletinLastUpdated
                  - BulletinLastUpdatedSortable
                description: Bulletin information including title, HTML content, sort order, and update date.
              description: Active bulletins and alerts associated with terminal, as an array of bulletin objects. E.g., array containing vehicle reservation notices for Anacortes terminal, empty array for terminals without active bulletins. Used to display important terminal information, service changes, and passenger notifications.
          required:
            - Bulletins
        - type: object
          properties:
            Latitude:
              type: number
              nullable: true
              description: Terminal latitude coordinate, in decimal degrees. E.g., 48.507351 for Anacortes terminal, 47.622339 for Bainbridge Island terminal, null when coordinate data is unavailable. Used for mapping, distance calculations, and geographic display.
            Longitude:
              type: number
              nullable: true
              description: Terminal longitude coordinate, in decimal degrees. E.g., -122.677 for Anacortes terminal, -122.509617 for Bainbridge Island terminal, null when coordinate data is unavailable. Used for mapping, distance calculations, and geographic display.
            AddressLineOne:
              type: string
              nullable: true
              description: Primary street address line for terminal location, as a street address. E.g., '2100 Ferry Terminal Road' for Anacortes terminal, '270 Olympic Drive SE' for Bainbridge Island terminal, null when address is unavailable. Used for navigation, mapping, and location identification.
            AddressLineTwo:
              type: string
              nullable: true
              description: Secondary address line for terminal location, as an address supplement. E.g., null for most terminals without suite or building numbers, present when additional address details are needed. Used for complete address formatting when available.
            City:
              type: string
              nullable: true
              description: City name where terminal is located, as a city name. E.g., 'Anacortes' for Anacortes terminal, 'Bainbridge Island' for Bainbridge Island terminal, null when city is unavailable. Used for location identification and address formatting.
            State:
              type: string
              nullable: true
              description: State abbreviation where terminal is located, as a state code. E.g., 'WA' for Washington state terminals, null when state is unavailable. Used for location identification and address formatting.
            ZipCode:
              type: string
              nullable: true
              description: Postal code for terminal location, as a zip code string. E.g., '98221' for Anacortes terminal, '98110' for Bainbridge Island terminal, null when zip code is unavailable. Used for location identification and address formatting.
            Country:
              type: string
              nullable: true
              description: Country name where terminal is located, as a country code. E.g., 'USA' for United States terminals, null when country is unavailable. Used for location identification and international address formatting.
            MapLink:
              type: string
              nullable: true
              description: URL link to external mapping service displaying terminal location, as a map URL. E.g., Google Maps link for Anacortes terminal, null when map link is unavailable. Used for providing direct navigation links to terminal location.
            Directions:
              type: string
              nullable: true
              description: Driving directions to terminal from major routes, as HTML-formatted text. E.g., directions from Interstate 5 to Anacortes terminal, null when directions are unavailable. Used for navigation assistance and route planning.
            DispGISZoomLoc:
              type: array
              nullable: true
              items:
                type: object
                properties:
                  ZoomLevel:
                    type: integer
                    description: GIS zoom level for map display.
                  Latitude:
                    type: number
                    nullable: true
                    description: Latitude coordinate for this zoom level in decimal degrees.
                  Longitude:
                    type: number
                    nullable: true
                    description: Longitude coordinate for this zoom level in decimal degrees.
                required:
                  - ZoomLevel
                  - Latitude
                  - Longitude
                description: GIS zoom level location information including zoom level and coordinates.
              description: GIS map display coordinates for terminal at various zoom levels, as an array of zoom-level coordinates. E.g., array with 18 zoom levels for Anacortes terminal, null when zoom-level data is unavailable. Used for optimized map rendering at different zoom levels.
          required:
            - Latitude
            - Longitude
            - AddressLineOne
            - AddressLineTwo
            - City
            - State
            - ZipCode
            - Country
            - MapLink
            - Directions
            - DispGISZoomLoc
        - type: object
          properties:
            DepartingSpaces:
              type: array
              nullable: true
              items:
                type: object
                properties:
                  Departure:
                    type: string
                    description: Date and time of departure, as a UTC datetime. E.g., '2025-11-02T21:35:00.000Z' for departure at 9:35 PM on November 2, 2025. Used for departure schedule display and space availability timing.
                    format: date-time
                  IsCancelled:
                    type: boolean
                    description: Indicator whether departure is cancelled, as a boolean. E.g., false for active departures, true for cancelled departures. Used to determine if departure is operational.
                  VesselID:
                    type: integer
                    description: Unique identifier for vessel planned to service departure, as an integer ID. E.g., '69' for Samish vessel, '38' for Yakima vessel, '17' for Kaleetan vessel. Used to identify which vessel operates departure.
                  VesselName:
                    type: string
                    nullable: true
                    description: Human-readable name of vessel planned to service departure, as a vessel name. E.g., 'Samish' for vessel 69, 'Yakima' for vessel 38, 'Kaleetan' for vessel 17, null when vessel name is unavailable. Provides vessel identification for display.
                  MaxSpaceCount:
                    type: integer
                    description: Maximum vehicle capacity on vessel making departure, as an integer count. E.g., '141' for Samish vessel capacity, '139' for Yakima vessel capacity, '197' for Tacoma vessel capacity. Used to calculate space availability percentage.
                  SpaceForArrivalTerminals:
                    type: array
                    nullable: true
                    items:
                      type: object
                      properties:
                        TerminalID:
                          type: integer
                          description: Unique identifier for arrival terminal destination, as an integer ID. E.g., '10' for Friday Harbor terminal, '13' for Lopez Island terminal. Used to identify destination terminal for space availability.
                        TerminalName:
                          type: string
                          nullable: true
                          description: Human-readable name of arrival terminal destination, as a terminal name. E.g., 'Anacortes -> Friday Harbor' for multi-destination sailing, 'Seattle' for single destination, null when terminal name is unavailable. Provides destination identification for display.
                        VesselID:
                          type: integer
                          description: Unique identifier for vessel planned to service departure, as an integer ID. E.g., '69' for Samish vessel, '38' for Yakima vessel, '17' for Kaleetan vessel. Used to identify which vessel operates departure.
                        VesselName:
                          type: string
                          nullable: true
                          description: Human-readable name of vessel planned to service departure, as a vessel name. E.g., 'Samish' for vessel 69, 'Yakima' for vessel 38, 'Kaleetan' for vessel 17, null when vessel name is unavailable. Provides vessel identification for display.
                        DisplayReservableSpace:
                          type: boolean
                          description: Indicator whether reservable space information should be displayed, as a boolean. E.g., true for routes supporting reservations, false for routes without reservations. Used to determine if reservation space data should be shown.
                        ReservableSpaceCount:
                          type: integer
                          nullable: true
                          description: Remaining reservable vehicle spaces available on vessel, as an integer count. E.g., '45' for 45 reservable spaces remaining, '36' for 36 reservable spaces, null when reservations are not supported or count is unavailable. Used for reservation availability display.
                        ReservableSpaceHexColor:
                          type: string
                          nullable: true
                          description: Hex color code representing reservable space availability status, as a hex color. E.g., '#FFFF00' for yellow (limited availability), '#888888' for gray (not available), null when color is unavailable. Used for visual space availability indicators.
                        DisplayDriveUpSpace:
                          type: boolean
                          description: Indicator whether drive-up space information should be displayed, as a boolean. E.g., true for routes with drive-up space tracking, false when drive-up space is not tracked. Used to determine if drive-up space data should be shown.
                        DriveUpSpaceCount:
                          type: integer
                          nullable: true
                          description: Remaining drive-up vehicle spaces available on vessel, as an integer count. E.g., '67' for 67 drive-up spaces remaining, '197' for 197 drive-up spaces, null when drive-up space is not tracked or count is unavailable. Used for drive-up availability display.
                        DriveUpSpaceHexColor:
                          type: string
                          nullable: true
                          description: Hex color code representing drive-up space availability status, as a hex color. E.g., '#00FF00' for green (good availability), '#FFFF00' for yellow (limited availability), null when color is unavailable. Used for visual space availability indicators.
                        MaxSpaceCount:
                          type: integer
                          description: Maximum vehicle capacity on vessel making departure, as an integer count. E.g., '141' for Samish vessel capacity, '139' for Yakima vessel capacity, '197' for Tacoma vessel capacity. Used to calculate space availability percentage.
                        ArrivalTerminalIDs:
                          type: array
                          nullable: true
                          items:
                            type: integer
                          description: Array of arrival terminal IDs associated with this space count set, as terminal ID integers. E.g., array containing terminal 10 for single destination, array containing terminals 13, 10 for multi-destination sailing, null when terminal IDs are unavailable. Used to identify all destinations served by this space count.
                      required:
                        - TerminalID
                        - TerminalName
                        - VesselID
                        - VesselName
                        - DisplayReservableSpace
                        - ReservableSpaceCount
                        - ReservableSpaceHexColor
                        - DisplayDriveUpSpace
                        - DriveUpSpaceCount
                        - DriveUpSpaceHexColor
                        - MaxSpaceCount
                        - ArrivalTerminalIDs
                      description: Represents space availability information for arrival terminal destination including terminal/vessel identification, reservable space count and color, drive-up space count and color, maximum capacity, and arrival terminal IDs. E.g., Friday Harbor destination with 67 drive-up spaces (green) and 141 maximum capacity on Samish vessel. Used for real-time space availability display.
                    description: Array of space availability information for one or more arrival terminal destinations, as space for arrival terminal objects. E.g., array containing Friday Harbor destination with space counts, array containing multiple destinations for multi-destination sailing, null when space information is unavailable. Used for real-time space availability display by destination.
                required:
                  - Departure
                  - IsCancelled
                  - VesselID
                  - VesselName
                  - MaxSpaceCount
                  - SpaceForArrivalTerminals
                description: Represents departing space information including departure time, cancellation status, vessel details, maximum capacity, and space availability for arrival terminals. E.g., departure at 9:35 PM with Samish vessel (ID 69, capacity 141) and space information for Friday Harbor destination. Used for real-time departure space availability display.
              description: Most recent departure sailing space information from terminal, as an array of departing space objects. E.g., array containing vessel details, departure times, and space availability for recent sailings, null or empty when departure data is unavailable. Used for real-time sailing space tracking and capacity monitoring.
            IsNoFareCollected:
              type: boolean
              nullable: true
              description: Indicator whether terminal lacks fare collection capability, as a boolean. E.g., null for terminals like Anacortes and Bainbridge Island that collect fares, true for terminals without fare collection. Used to determine fare collection availability and terminal conditions data reliability.
            NoFareCollectedMsg:
              type: string
              nullable: true
              description: Message explaining how lack of fare collection affects terminal conditions data, as a notification message. E.g., null for terminals with fare collection, present when terminal cannot collect fares. Used to inform users about data limitations for terminals without fare collection.
          required:
            - IsNoFareCollected
            - NoFareCollectedMsg
        - type: object
          properties:
            ParkingInfo:
              type: string
              nullable: true
              description: Parking availability, rates, and policies for terminal, as HTML-formatted text. E.g., parking rates and payment options for Anacortes terminal, null when parking information is unavailable. Used for parking planning and cost estimation.
            ParkingShuttleInfo:
              type: string
              nullable: true
              description: Information about shuttle services connecting parking areas to terminal, as HTML-formatted text. E.g., null for terminals without parking shuttles, present when parking shuttles are available. Used for planning parking and terminal access.
            AirportInfo:
              type: string
              nullable: true
              description: Driving directions and travel time from airport to terminal, as HTML-formatted text. E.g., directions from Sea-Tac Airport to Anacortes terminal, null when airport information is unavailable. Used for airport-to-terminal route planning.
            AirportShuttleInfo:
              type: string
              nullable: true
              description: Information about shuttle services connecting airport to terminal, as HTML-formatted text. E.g., Bellair Airporter service information for Anacortes terminal, null when airport shuttles are unavailable. Used for airport-to-terminal transportation planning.
            MotorcycleInfo:
              type: string
              nullable: true
              description: Motorcycle staging, loading, and fare information for terminal, as HTML-formatted text. E.g., motorcycle loading procedures and staging areas for Anacortes terminal, null when motorcycle information is unavailable. Used for motorcycle rider planning and terminal procedures.
            TruckInfo:
              type: string
              nullable: true
              description: Truck requirements, oversized vehicle approval, and loading information for terminal, as HTML-formatted text. E.g., overweight vehicle travel approval requirements for Anacortes terminal, null when truck information is unavailable. Used for commercial vehicle planning and compliance.
            BikeInfo:
              type: string
              nullable: true
              description: Bicycle staging, loading procedures, and fare information for terminal, as HTML-formatted text. E.g., bicycle loading procedures and rack availability for Anacortes terminal, null when bicycle information is unavailable. Used for bicycle rider planning and terminal procedures.
            TrainInfo:
              type: string
              nullable: true
              description: Train service information connecting to terminal, as HTML-formatted text. E.g., null for terminals without train service, present when train connections are available. Used for multimodal transportation planning.
            TaxiInfo:
              type: string
              nullable: true
              description: Taxi service information for terminal, as HTML-formatted text. E.g., null for terminals without taxi information, present when taxi services are documented. Used for local transportation planning.
            HovInfo:
              type: string
              nullable: true
              description: Carpool and vanpool information including preferential loading requirements, as HTML-formatted text. E.g., carpool registration and loading procedures for Bainbridge Island terminal, null when HOV information is unavailable. Used for rideshare planning and preferential loading coordination.
            TransitLinks:
              type: array
              nullable: true
              items:
                type: object
                properties:
                  LinkURL:
                    type: string
                    nullable: true
                    description: URL to transit agency website or service page, as a transit URL. E.g., 'http://www.skagittransit.org/' for Skagit Transit, 'http://www.kitsaptransit.com/service/routed-buses' for Kitsap Transit, null when transit link is unavailable. Used for accessing transit agency information.
                  LinkName:
                    type: string
                    nullable: true
                    description: Human-readable name of transit agency, as a transit agency name. E.g., 'Skagit Transit' for Skagit Transit agency, 'Kitsap Transit' for Kitsap Transit agency, null when transit name is unavailable. Provides transit agency identification for display.
                  SortSeq:
                    type: integer
                    nullable: true
                    description: Preferred sort order for transit link display, as an integer. E.g., null when sort order is not specified. Lower values appear first when sorting transit links in ascending order. Used for transit link display ordering.
                required:
                  - LinkURL
                  - LinkName
                  - SortSeq
                description: Represents transit link information including transit agency URL, name, and sort order. E.g., Skagit Transit link (http://www.skagittransit.org/). Used for displaying transit agency connections and links.
              description: Links to transit agencies providing service to terminal, as an array of transit link objects. E.g., array containing Skagit Transit link for Anacortes terminal, Kitsap Transit link for Bainbridge Island terminal, null or empty when no transit links are available. Used for multimodal transportation planning and transit connection information.
          required:
            - ParkingInfo
            - ParkingShuttleInfo
            - AirportInfo
            - AirportShuttleInfo
            - MotorcycleInfo
            - TruckInfo
            - BikeInfo
            - TrainInfo
            - TaxiInfo
            - HovInfo
            - TransitLinks
        - type: object
          properties:
            WaitTimes:
              type: array
              nullable: true
              items:
                type: object
                properties:
                  RouteID:
                    type: integer
                    nullable: true
                    description: Numeric ID of the route associated with the wait time.
                  RouteName:
                    type: string
                    nullable: true
                    description: Display name of the route associated with the wait time.
                  WaitTimeNotes:
                    type: string
                    nullable: true
                    description: Text notes detailing wait time conditions and tips for vehicles and passengers.
                    format: date-time
                  WaitTimeLastUpdated:
                    type: string
                    nullable: true
                    description: UTC datetime when the wait time information was last updated.
                    format: date-time
                  WaitTimeIVRNotes:
                    type: string
                    nullable: true
                    description: Wait time notes formatted for Interactive Voice Response systems.
                    format: date-time
                required:
                  - RouteID
                  - RouteName
                  - WaitTimeNotes
                  - WaitTimeLastUpdated
                  - WaitTimeIVRNotes
                description: Wait time information including route association, notes, IVR notes, and update date.
              description: Current wait time information and arrival recommendations for terminal, as an array of wait time objects. E.g., array containing vehicle reservation requirements and arrival time recommendations for Anacortes terminal, null when wait time data is unavailable. Used for trip planning and arrival time guidance.
          required:
            - WaitTimes
        - type: object
          properties:
            RealtimeIntroMsg:
              type: string
              nullable: true
              description: Introductory message explaining real-time terminal conditions data display, as HTML-formatted text. E.g., message about approximate vehicle spaces available in holding area for Anacortes terminal, null when intro message is unavailable. Used to provide context for real-time conditions data.
              format: date-time
            AdditionalInfo:
              type: string
              nullable: true
              description: Additional terminal information including hours, services, and general details, as HTML-formatted text. E.g., passenger booth hours and kiosk information for Anacortes terminal, null when additional information is unavailable. Used for comprehensive terminal information display.
            LostAndFoundInfo:
              type: string
              nullable: true
              description: Lost and found procedures, contact information, and retention policies for terminal, as HTML-formatted text. E.g., lost and found location and contact details for Anacortes terminal, null when lost and found information is unavailable. Used for lost item reporting and retrieval.
            SecurityInfo:
              type: string
              nullable: true
              description: Security plan information and safety policies for terminal, as HTML-formatted text. E.g., U.S. Coast Guard approved security plan information, null when security information is unavailable. Used for security awareness and compliance information.
            ConstructionInfo:
              type: string
              nullable: true
              description: Ongoing or planned construction activities affecting terminal, as HTML-formatted text. E.g., null for terminals without active construction, present when construction impacts terminal operations. Used for construction impact awareness and trip planning.
            FoodServiceInfo:
              type: string
              nullable: true
              description: Food service hours, locations, and availability for terminal, as HTML-formatted text. E.g., galley hours and cafe information for Anacortes terminal, null when food service information is unavailable. Used for meal planning and food service availability.
            AdaInfo:
              type: string
              nullable: true
              description: ADA accessibility features, elevator access, and accommodation information for terminal, as HTML-formatted text. E.g., overhead passenger ramp and elevator access information for Anacortes terminal, null when ADA information is unavailable. Used for accessibility planning and accommodation requests.
            FareDiscountInfo:
              type: string
              nullable: true
              description: Fare discount programs, eligibility requirements, and purchase information for terminal, as HTML-formatted text. E.g., senior and youth fare information for Anacortes terminal, null when fare discount information is unavailable. Used for fare planning and discount eligibility.
            TallySystemInfo:
              type: string
              nullable: true
              description: Tally system information for terminal operations, as HTML-formatted text. E.g., null for terminals without tally system documentation, present when tally system information is available. Used for operational information and system documentation.
            ChamberOfCommerce:
              type: object
              nullable: true
              properties:
                LinkURL:
                  type: string
                  nullable: true
                  description: URL link to local chamber of commerce website, as a web URL. E.g., 'http://www.anacortes.org' for Anacortes Chamber of Commerce, null when chamber link is unavailable. Used for local business and visitor information.
                LinkName:
                  type: string
                  nullable: true
                  description: Display name for local chamber of commerce, as a chamber name. E.g., 'Chamber of Commerce' for Anacortes, 'Bainbridge Island Chamber of Commerce' for Bainbridge Island, null when chamber name is unavailable. Used for display and identification.
                SortSeq:
                  type: integer
                  nullable: true
                  description: Preferred display sort order for chamber of commerce link, as an integer sequence number. E.g., null for default sorting, numeric value when specific sort order is required. Used for controlling link display order.
              required:
                - LinkURL
                - LinkName
                - SortSeq
              description: Chamber of commerce information including link URL, name, and sort order for terminal, as a chamber object. E.g., object with Anacortes Chamber of Commerce link, null when chamber information is unavailable. Used for local business and visitor information.
            FacInfo:
              type: string
              nullable: true
              description: Facility advisory committee contact information for terminal, as HTML-formatted text. E.g., Ferry Advisory Committee contact information, null when facility information is unavailable. Used for community participation and feedback.
            ResourceStatus:
              type: string
              nullable: true
              description: Resource status information for terminal operations, as a status string. E.g., null for terminals without resource status documentation, present when resource status information is available. Used for operational status tracking.
            TypeDesc:
              type: string
              nullable: true
              description: Terminal type classification description, as a type string. E.g., 'Passenger and Car' for terminals like Anacortes and Bainbridge Island, null when type description is unavailable. Used for terminal classification and display.
            REALTIME_SHUTOFF_FLAG:
              type: boolean
              description: Indicator whether real-time conditions data is disabled for terminal, as a boolean. E.g., false for terminals with active real-time data, true when real-time data is shut off. Used to determine real-time data availability.
            REALTIME_SHUTOFF_MESSAGE:
              type: string
              nullable: true
              description: Message explaining why real-time conditions data is unavailable, as a status message. E.g., 'The Real-Time Conditions are unavailable due to technical difficulties' for terminals with shutoff flag true, null when real-time data is available. Used to inform users about real-time data status.
              format: date-time
            VisitorLinks:
              type: array
              nullable: true
              items:
                type: object
                properties:
                  LinkURL:
                    type: string
                    nullable: true
                    description: URL to transit agency website or service page, as a transit URL. E.g., 'http://www.skagittransit.org/' for Skagit Transit, 'http://www.kitsaptransit.com/service/routed-buses' for Kitsap Transit, null when transit link is unavailable. Used for accessing transit agency information.
                  LinkName:
                    type: string
                    nullable: true
                    description: Human-readable name of transit agency, as a transit agency name. E.g., 'Skagit Transit' for Skagit Transit agency, 'Kitsap Transit' for Kitsap Transit agency, null when transit name is unavailable. Provides transit agency identification for display.
                  SortSeq:
                    type: integer
                    nullable: true
                    description: Preferred sort order for transit link display, as an integer. E.g., null when sort order is not specified. Lower values appear first when sorting transit links in ascending order. Used for transit link display ordering.
                required:
                  - LinkURL
                  - LinkName
                  - SortSeq
                description: Represents transit link information including transit agency URL, name, and sort order. E.g., Skagit Transit link (http://www.skagittransit.org/). Used for displaying transit agency connections and links.
              description: Links to visitor information and tourism resources for terminal area, as an array of visitor link objects. E.g., empty array for terminals without visitor links, array with tourism resources when available. Used for visitor information and local attractions.
          required:
            - RealtimeIntroMsg
            - AdditionalInfo
            - LostAndFoundInfo
            - SecurityInfo
            - ConstructionInfo
            - FoodServiceInfo
            - AdaInfo
            - FareDiscountInfo
            - TallySystemInfo
            - ChamberOfCommerce
            - FacInfo
            - ResourceStatus
            - TypeDesc
            - REALTIME_SHUTOFF_FLAG
            - REALTIME_SHUTOFF_MESSAGE
            - VisitorLinks
      description: Comprehensive terminal information combining data from terminalBasics, terminalBulletins, terminalLocations, terminalTransports, and terminalWaitTimes endpoints.
    FetchTerminalWaitTimesByTerminalIdOutput:
      type: object
      properties:
        TerminalID:
          type: integer
          description: Numeric ID of the terminal.
        TerminalSubjectID:
          type: integer
          description: Numeric ID of the terminal in the WSF subject management system.
        RegionID:
          type: integer
          description: Numeric ID of the geographical region where the terminal is located.
        TerminalName:
          type: string
          nullable: true
          description: Display name of the terminal.
        TerminalAbbrev:
          type: string
          nullable: true
          description: Abbreviation code for the terminal.
        SortSeq:
          type: integer
          description: Display sort order; lower values appear first in lists.
        WaitTimes:
          type: array
          nullable: true
          items:
            type: object
            properties:
              RouteID:
                type: integer
                nullable: true
                description: Numeric ID of the route associated with the wait time.
              RouteName:
                type: string
                nullable: true
                description: Display name of the route associated with the wait time.
              WaitTimeNotes:
                type: string
                nullable: true
                description: Text notes detailing wait time conditions and tips for vehicles and passengers.
                format: date-time
              WaitTimeLastUpdated:
                type: string
                nullable: true
                description: UTC datetime when the wait time information was last updated.
                format: date-time
              WaitTimeIVRNotes:
                type: string
                nullable: true
                description: Wait time notes formatted for Interactive Voice Response systems.
                format: date-time
            required:
              - RouteID
              - RouteName
              - WaitTimeNotes
              - WaitTimeLastUpdated
              - WaitTimeIVRNotes
            description: Wait time information including route association, notes, IVR notes, and update date.
          description: Array of wait time information associated with the terminal.
      required:
        - TerminalID
        - TerminalSubjectID
        - RegionID
        - TerminalName
        - TerminalAbbrev
        - SortSeq
        - WaitTimes
      description: Terminal wait time information including terminal identification and wait time list.
  parameters: {}
paths:
  /cacheflushdate:
    get:
      summary: Get cache flush timestamp for static terminals data.
      operationId: fetchCacheFlushDateTerminals
      tags:
        - cache-flush-date-terminals
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { fetchCacheFlushDateTerminals } from 'ws-dottie/wsf-terminals/core';

            const data = await fetchCacheFlushDateTerminals({
              fetchMode: 'native',
              validate: true
            });

            console.log(data);
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchCacheFlushDateTerminalsOutput'
              examples:
                sampleResponse:
                  summary: Sample response
                  description: Example of a successful response from the API
                  value: '2025-11-15T17:45:00.477Z'
  /terminalBasics:
    get:
      summary: List basic information for all terminals.
      operationId: fetchTerminalBasics
      tags:
        - terminal-basics
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { fetchTerminalBasics } from 'ws-dottie/wsf-terminals/core';

            const data = await fetchTerminalBasics({
              fetchMode: 'native',
              validate: true
            });

            console.log(data);
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    TerminalID:
                      type: integer
                      description: Numeric ID of the terminal.
                    TerminalSubjectID:
                      type: integer
                      description: Numeric ID of the terminal in the WSF subject management system.
                    RegionID:
                      type: integer
                      description: Numeric ID of the geographical region where the terminal is located.
                    TerminalName:
                      type: string
                      nullable: true
                      description: Display name of the terminal.
                    TerminalAbbrev:
                      type: string
                      nullable: true
                      description: Abbreviation code for the terminal.
                    SortSeq:
                      type: integer
                      description: Display sort order; lower values appear first in lists.
                    OverheadPassengerLoading:
                      type: boolean
                      description: True if overhead passenger loading facility is available; otherwise false.
                    Elevator:
                      type: boolean
                      description: True if terminal has elevator access; otherwise false.
                    WaitingRoom:
                      type: boolean
                      description: True if terminal has waiting room facility; otherwise false.
                    FoodService:
                      type: boolean
                      description: True if terminal offers food service; otherwise false.
                    Restroom:
                      type: boolean
                      description: True if terminal has restroom facilities; otherwise false.
                  required:
                    - TerminalID
                    - TerminalSubjectID
                    - RegionID
                    - TerminalName
                    - TerminalAbbrev
                    - SortSeq
                    - OverheadPassengerLoading
                    - Elevator
                    - WaitingRoom
                    - FoodService
                    - Restroom
                  description: Basic terminal information including identification, amenities, and regional assignments.
              examples:
                sampleResponse:
                  summary: Sample response
                  description: Example of a successful response from the API (showing first item of 20 total)
                  value:
                    - TerminalID: 1
                      TerminalSubjectID: 111
                      RegionID: 1
                      TerminalName: Anacortes
                      TerminalAbbrev: ANA
                      SortSeq: 10
                      OverheadPassengerLoading: true
                      Elevator: false
                      WaitingRoom: true
                      FoodService: true
                      Restroom: true
  /terminalBasics/{TerminalID}:
    get:
      summary: Get basic information for a specific terminal by ID.
      operationId: fetchTerminalBasicsByTerminalId
      tags:
        - terminal-basics
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { fetchTerminalBasicsByTerminalId } from 'ws-dottie/wsf-terminals/core';

            const data = await fetchTerminalBasicsByTerminalId({
              params: {
                "TerminalID": 1
              },
              fetchMode: 'native',
              validate: true
            });

            console.log(data);
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchTerminalBasicsByTerminalIdOutput'
              examples:
                sampleResponse:
                  summary: Sample response
                  description: Example of a successful response from the API
                  value:
                    TerminalID: 1
                    TerminalSubjectID: 111
                    RegionID: 1
                    TerminalName: Anacortes
                    TerminalAbbrev: ANA
                    SortSeq: 10
                    OverheadPassengerLoading: true
                    Elevator: false
                    WaitingRoom: true
                    FoodService: true
                    Restroom: true
  /terminalBulletins:
    get:
      summary: List bulletins and alerts for all terminals.
      operationId: fetchTerminalBulletins
      tags:
        - terminal-bulletins
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { fetchTerminalBulletins } from 'ws-dottie/wsf-terminals/core';

            const data = await fetchTerminalBulletins({
              fetchMode: 'native',
              validate: true
            });

            console.log(data);
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    TerminalID:
                      type: integer
                      description: Numeric ID of the terminal.
                    TerminalSubjectID:
                      type: integer
                      description: Numeric ID of the terminal in the WSF subject management system.
                    RegionID:
                      type: integer
                      description: Numeric ID of the geographical region where the terminal is located.
                    TerminalName:
                      type: string
                      nullable: true
                      description: Display name of the terminal.
                    TerminalAbbrev:
                      type: string
                      nullable: true
                      description: Abbreviation code for the terminal.
                    SortSeq:
                      type: integer
                      description: Display sort order; lower values appear first in lists.
                    Bulletins:
                      type: array
                      items:
                        type: object
                        properties:
                          BulletinTitle:
                            type: string
                            nullable: true
                            description: Title of the bulletin.
                          BulletinText:
                            type: string
                            nullable: true
                            description: HTML-formatted content of the bulletin.
                          BulletinSortSeq:
                            type: integer
                            description: Display sort order for the bulletin; lower values appear first.
                          BulletinLastUpdated:
                            type: string
                            nullable: true
                            description: UTC datetime when the bulletin was last updated.
                            format: date-time
                          BulletinLastUpdatedSortable:
                            type: string
                            nullable: true
                            description: Legacy sortable string representation of the bulletin update date.
                            format: date-time
                        required:
                          - BulletinTitle
                          - BulletinText
                          - BulletinSortSeq
                          - BulletinLastUpdated
                          - BulletinLastUpdatedSortable
                        description: Bulletin information including title, HTML content, sort order, and update date.
                      description: Array of bulletins and alerts associated with the terminal.
                  required:
                    - TerminalID
                    - TerminalSubjectID
                    - RegionID
                    - TerminalName
                    - TerminalAbbrev
                    - SortSeq
                    - Bulletins
                  description: Terminal information with associated bulletins and alerts.
              examples:
                sampleResponse:
                  summary: Sample response
                  description: Example of a successful response from the API (showing first item of 20 total)
                  value:
                    - TerminalID: 1
                      TerminalSubjectID: 111
                      RegionID: 1
                      TerminalName: Anacortes
                      TerminalAbbrev: ANA
                      SortSeq: 10
                      Bulletins:
                        - BulletinTitle: Ana/SJs - Kaleetan to replace Samish this Sunday, Nov. 16
                          BulletinText: <p><span data-contrast="none">This Sunday, Nov. 16, the <em>Kaleetan</em> will replace the<em> Samish</em> on the Anacortes/San Juan Islands route. We do not expect service impacts during this vessel swap. Thank you for your patience as we move boats around the system to complete maintenance, repairs, and inspections.<br /></span><span data-ccp-props="{&quot;335557856&quot;:16777215,&quot;335559739&quot;:0}"><br /></span></p>
                          BulletinSortSeq: 2
                          BulletinLastUpdated: '2025-11-15T17:08:11.927Z'
                          BulletinLastUpdatedSortable: '20251115090811'
  /terminalBulletins/{TerminalID}:
    get:
      summary: Get bulletins and alerts for a specific terminal by ID.
      operationId: fetchTerminalBulletinsByTerminalId
      tags:
        - terminal-bulletins
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { fetchTerminalBulletinsByTerminalId } from 'ws-dottie/wsf-terminals/core';

            const data = await fetchTerminalBulletinsByTerminalId({
              params: {
                "TerminalID": 3
              },
              fetchMode: 'native',
              validate: true
            });

            console.log(data);
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchTerminalBulletinsByTerminalIdOutput'
              examples:
                sampleResponse:
                  summary: Sample response
                  description: Example of a successful response from the API
                  value:
                    TerminalID: 3
                    TerminalSubjectID: 103
                    RegionID: 4
                    TerminalName: Bainbridge Island
                    TerminalAbbrev: BBI
                    SortSeq: 40
                    Bulletins: []
  /terminalLocations:
    get:
      summary: List location information for all terminals.
      operationId: fetchTerminalLocations
      tags:
        - terminal-locations
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { fetchTerminalLocations } from 'ws-dottie/wsf-terminals/core';

            const data = await fetchTerminalLocations({
              fetchMode: 'native',
              validate: true
            });

            console.log(data);
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    TerminalID:
                      type: integer
                      description: Numeric ID of the terminal.
                    TerminalSubjectID:
                      type: integer
                      description: Numeric ID of the terminal in the WSF subject management system.
                    RegionID:
                      type: integer
                      description: Numeric ID of the geographical region where the terminal is located.
                    TerminalName:
                      type: string
                      nullable: true
                      description: Display name of the terminal.
                    TerminalAbbrev:
                      type: string
                      nullable: true
                      description: Abbreviation code for the terminal.
                    SortSeq:
                      type: integer
                      description: Display sort order; lower values appear first in lists.
                    Latitude:
                      type: number
                      nullable: true
                      description: Latitude of the terminal in decimal degrees.
                    Longitude:
                      type: number
                      nullable: true
                      description: Longitude of the terminal in decimal degrees.
                    AddressLineOne:
                      type: string
                      nullable: true
                      description: First line of the terminal street address.
                    AddressLineTwo:
                      type: string
                      nullable: true
                      description: Second line of the terminal street address.
                    City:
                      type: string
                      nullable: true
                      description: City where the terminal is located.
                    State:
                      type: string
                      nullable: true
                      description: State code where the terminal is located.
                    ZipCode:
                      type: string
                      nullable: true
                      description: Postal zip code for the terminal location.
                    Country:
                      type: string
                      nullable: true
                      description: Country code where the terminal is located.
                    MapLink:
                      type: string
                      nullable: true
                      description: URL to a map displaying the terminal location.
                    Directions:
                      type: string
                      nullable: true
                      description: HTML-formatted driving directions to the terminal.
                    DispGISZoomLoc:
                      type: array
                      nullable: true
                      items:
                        type: object
                        properties:
                          ZoomLevel:
                            type: integer
                            description: GIS zoom level for map display.
                          Latitude:
                            type: number
                            nullable: true
                            description: Latitude coordinate for this zoom level in decimal degrees.
                          Longitude:
                            type: number
                            nullable: true
                            description: Longitude coordinate for this zoom level in decimal degrees.
                        required:
                          - ZoomLevel
                          - Latitude
                          - Longitude
                        description: GIS zoom level location information including zoom level and coordinates.
                      description: Array of GIS zoom level locations for the terminal.
                  required:
                    - TerminalID
                    - TerminalSubjectID
                    - RegionID
                    - TerminalName
                    - TerminalAbbrev
                    - SortSeq
                    - Latitude
                    - Longitude
                    - AddressLineOne
                    - AddressLineTwo
                    - City
                    - State
                    - ZipCode
                    - Country
                    - MapLink
                    - Directions
                    - DispGISZoomLoc
                  description: Detailed terminal location information including coordinates, address, map link, driving directions, and GIS zoom level locations.
              examples:
                sampleResponse:
                  summary: Sample response
                  description: Example of a successful response from the API (showing first item of 20 total)
                  value:
                    - TerminalID: 1
                      TerminalSubjectID: 111
                      RegionID: 1
                      TerminalName: Anacortes
                      TerminalAbbrev: ANA
                      SortSeq: 10
                      Latitude: 48.507351
                      Longitude: -122.677
                      AddressLineOne: 2100 Ferry Terminal Road
                      AddressLineTwo: null
                      City: Anacortes
                      State: WA
                      ZipCode: '98221'
                      Country: USA
                      MapLink: https://www.google.com/maps/place/Anacortes+Ferry+Terminal,+Anacortes,+WA+98221/@48.5060112,-122.6776819,15z/data=!4m2!3m1!1s0x5485790ea2748ed5:0x5c9a071494b5411f</p>
                      Directions: "From Interstate 5 take exit 230 and follow SR 20 westbound to Anacortes. After arriving in Anacortes continue north on Commercial Ave. Turn left on 12th St, which becomes Oakes Ave, and then continue to the ferry terminal.<p>\r\n<b>Dropping off or picking up?</b><p>\r\nWhen approaching the ferry terminal to pick up or drop off and not disabled, follow Ferry Terminal Road to the left of the auto toll booths to the parking lot near the terminal. There should be parking near the sidewalk where the buses turn around for a quick pick up/drop off.</p>"
                      DispGISZoomLoc:
                        - ZoomLevel: 0
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 1
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 2
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 3
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 4
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 5
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 6
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 7
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 8
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 9
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 10
                          Latitude: 48.499482
                          Longitude: -122.664992
                        - ZoomLevel: 11
                          Latitude: 48.501302
                          Longitude: -122.668425
                        - ZoomLevel: 12
                          Latitude: 48.500619
                          Longitude: -122.678038
                        - ZoomLevel: 13
                          Latitude: 48.504032
                          Longitude: -122.679068
                        - ZoomLevel: 14
                          Latitude: 48.506022
                          Longitude: -122.678725
                        - ZoomLevel: 15
                          Latitude: 48.506591
                          Longitude: -122.678124
                        - ZoomLevel: 16
                          Latitude: 48.506591
                          Longitude: -122.677995
                        - ZoomLevel: 17
                          Latitude: 48.506612
                          Longitude: -122.678006
  /terminalLocations/{TerminalID}:
    get:
      summary: Get location information for a specific terminal by ID.
      operationId: fetchTerminalLocationsByTerminalId
      tags:
        - terminal-locations
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { fetchTerminalLocationsByTerminalId } from 'ws-dottie/wsf-terminals/core';

            const data = await fetchTerminalLocationsByTerminalId({
              params: {
                "TerminalID": 5
              },
              fetchMode: 'native',
              validate: true
            });

            console.log(data);
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchTerminalLocationsByTerminalIdOutput'
              examples:
                sampleResponse:
                  summary: Sample response
                  description: Example of a successful response from the API
                  value:
                    TerminalID: 5
                    TerminalSubjectID: 112
                    RegionID: 2
                    TerminalName: Clinton
                    TerminalAbbrev: CLI
                    SortSeq: 20
                    Latitude: 47.9754
                    Longitude: -122.349581
                    AddressLineOne: 64 South Ferrydock Road
                    AddressLineTwo: null
                    City: Clinton
                    State: WA
                    ZipCode: '98236'
                    Country: USA
                    MapLink: http://maps.yahoo.com/#mvt=m&lat=47.97483&lon=-122.352299&zoom=18&q1=64%20S.%20Ferrydock%20Rd.%20Clinton%2C%20WA%2098236
                    Directions: "Highway 20 on Whidbey Island turns into Highway 525 S which leads directly to the Clinton terminal.<br><p>\r\n<b>Dropping off or picking up?</b><br>\r\nThe ferry terminal pick up or drop off point is prior to the toll booth on Ferry Dock Road.<p>   "
                    DispGISZoomLoc:
                      - ZoomLevel: 0
                        Latitude: 47.9754
                        Longitude: -122.349581
                      - ZoomLevel: 1
                        Latitude: 47.9754
                        Longitude: -122.349581
                      - ZoomLevel: 2
                        Latitude: 47.9754
                        Longitude: -122.349581
                      - ZoomLevel: 3
                        Latitude: 47.9754
                        Longitude: -122.349581
                      - ZoomLevel: 4
                        Latitude: 47.9754
                        Longitude: -122.349581
                      - ZoomLevel: 5
                        Latitude: 47.9754
                        Longitude: -122.349581
                      - ZoomLevel: 6
                        Latitude: 47.9754
                        Longitude: -122.349581
                      - ZoomLevel: 7
                        Latitude: 47.9754
                        Longitude: -122.349581
                      - ZoomLevel: 8
                        Latitude: 47.9754
                        Longitude: -122.349581
                      - ZoomLevel: 9
                        Latitude: 47.9754
                        Longitude: -122.349581
                      - ZoomLevel: 10
                        Latitude: 47.9754
                        Longitude: -122.349581
                      - ZoomLevel: 11
                        Latitude: 47.9754
                        Longitude: -122.349581
                      - ZoomLevel: 12
                        Latitude: 47.9754
                        Longitude: -122.349581
                      - ZoomLevel: 13
                        Latitude: 47.975465
                        Longitude: -122.352097
                      - ZoomLevel: 14
                        Latitude: 47.974948
                        Longitude: -122.351496
                      - ZoomLevel: 15
                        Latitude: 47.974948
                        Longitude: -122.351367
                      - ZoomLevel: 16
                        Latitude: 47.975034
                        Longitude: -122.351324
                      - ZoomLevel: 17
                        Latitude: 47.975027
                        Longitude: -122.351335
  /terminalSailingSpace:
    get:
      summary: List sailing space availability for all terminals.
      operationId: fetchTerminalSailingSpace
      tags:
        - terminal-sailing-space
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { fetchTerminalSailingSpace } from 'ws-dottie/wsf-terminals/core';

            const data = await fetchTerminalSailingSpace({
              fetchMode: 'native',
              validate: true
            });

            console.log(data);
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    TerminalID:
                      type: integer
                      description: Numeric ID of the terminal.
                    TerminalSubjectID:
                      type: integer
                      description: Numeric ID of the terminal in the WSF subject management system.
                    RegionID:
                      type: integer
                      description: Numeric ID of the geographical region where the terminal is located.
                    TerminalName:
                      type: string
                      nullable: true
                      description: Display name of the terminal.
                    TerminalAbbrev:
                      type: string
                      nullable: true
                      description: Abbreviation code for the terminal.
                    SortSeq:
                      type: integer
                      description: Display sort order; lower values appear first in lists.
                    DepartingSpaces:
                      type: array
                      nullable: true
                      items:
                        type: object
                        properties:
                          Departure:
                            type: string
                            description: Date and time of departure, as a UTC datetime. E.g., '2025-11-02T21:35:00.000Z' for departure at 9:35 PM on November 2, 2025. Used for departure schedule display and space availability timing.
                            format: date-time
                          IsCancelled:
                            type: boolean
                            description: Indicator whether departure is cancelled, as a boolean. E.g., false for active departures, true for cancelled departures. Used to determine if departure is operational.
                          VesselID:
                            type: integer
                            description: Unique identifier for vessel planned to service departure, as an integer ID. E.g., '69' for Samish vessel, '38' for Yakima vessel, '17' for Kaleetan vessel. Used to identify which vessel operates departure.
                          VesselName:
                            type: string
                            nullable: true
                            description: Human-readable name of vessel planned to service departure, as a vessel name. E.g., 'Samish' for vessel 69, 'Yakima' for vessel 38, 'Kaleetan' for vessel 17, null when vessel name is unavailable. Provides vessel identification for display.
                          MaxSpaceCount:
                            type: integer
                            description: Maximum vehicle capacity on vessel making departure, as an integer count. E.g., '141' for Samish vessel capacity, '139' for Yakima vessel capacity, '197' for Tacoma vessel capacity. Used to calculate space availability percentage.
                          SpaceForArrivalTerminals:
                            type: array
                            nullable: true
                            items:
                              type: object
                              properties:
                                TerminalID:
                                  type: integer
                                  description: Unique identifier for arrival terminal destination, as an integer ID. E.g., '10' for Friday Harbor terminal, '13' for Lopez Island terminal. Used to identify destination terminal for space availability.
                                TerminalName:
                                  type: string
                                  nullable: true
                                  description: Human-readable name of arrival terminal destination, as a terminal name. E.g., 'Anacortes -> Friday Harbor' for multi-destination sailing, 'Seattle' for single destination, null when terminal name is unavailable. Provides destination identification for display.
                                VesselID:
                                  type: integer
                                  description: Unique identifier for vessel planned to service departure, as an integer ID. E.g., '69' for Samish vessel, '38' for Yakima vessel, '17' for Kaleetan vessel. Used to identify which vessel operates departure.
                                VesselName:
                                  type: string
                                  nullable: true
                                  description: Human-readable name of vessel planned to service departure, as a vessel name. E.g., 'Samish' for vessel 69, 'Yakima' for vessel 38, 'Kaleetan' for vessel 17, null when vessel name is unavailable. Provides vessel identification for display.
                                DisplayReservableSpace:
                                  type: boolean
                                  description: Indicator whether reservable space information should be displayed, as a boolean. E.g., true for routes supporting reservations, false for routes without reservations. Used to determine if reservation space data should be shown.
                                ReservableSpaceCount:
                                  type: integer
                                  nullable: true
                                  description: Remaining reservable vehicle spaces available on vessel, as an integer count. E.g., '45' for 45 reservable spaces remaining, '36' for 36 reservable spaces, null when reservations are not supported or count is unavailable. Used for reservation availability display.
                                ReservableSpaceHexColor:
                                  type: string
                                  nullable: true
                                  description: Hex color code representing reservable space availability status, as a hex color. E.g., '#FFFF00' for yellow (limited availability), '#888888' for gray (not available), null when color is unavailable. Used for visual space availability indicators.
                                DisplayDriveUpSpace:
                                  type: boolean
                                  description: Indicator whether drive-up space information should be displayed, as a boolean. E.g., true for routes with drive-up space tracking, false when drive-up space is not tracked. Used to determine if drive-up space data should be shown.
                                DriveUpSpaceCount:
                                  type: integer
                                  nullable: true
                                  description: Remaining drive-up vehicle spaces available on vessel, as an integer count. E.g., '67' for 67 drive-up spaces remaining, '197' for 197 drive-up spaces, null when drive-up space is not tracked or count is unavailable. Used for drive-up availability display.
                                DriveUpSpaceHexColor:
                                  type: string
                                  nullable: true
                                  description: Hex color code representing drive-up space availability status, as a hex color. E.g., '#00FF00' for green (good availability), '#FFFF00' for yellow (limited availability), null when color is unavailable. Used for visual space availability indicators.
                                MaxSpaceCount:
                                  type: integer
                                  description: Maximum vehicle capacity on vessel making departure, as an integer count. E.g., '141' for Samish vessel capacity, '139' for Yakima vessel capacity, '197' for Tacoma vessel capacity. Used to calculate space availability percentage.
                                ArrivalTerminalIDs:
                                  type: array
                                  nullable: true
                                  items:
                                    type: integer
                                  description: Array of arrival terminal IDs associated with this space count set, as terminal ID integers. E.g., array containing terminal 10 for single destination, array containing terminals 13, 10 for multi-destination sailing, null when terminal IDs are unavailable. Used to identify all destinations served by this space count.
                              required:
                                - TerminalID
                                - TerminalName
                                - VesselID
                                - VesselName
                                - DisplayReservableSpace
                                - ReservableSpaceCount
                                - ReservableSpaceHexColor
                                - DisplayDriveUpSpace
                                - DriveUpSpaceCount
                                - DriveUpSpaceHexColor
                                - MaxSpaceCount
                                - ArrivalTerminalIDs
                              description: Represents space availability information for arrival terminal destination including terminal/vessel identification, reservable space count and color, drive-up space count and color, maximum capacity, and arrival terminal IDs. E.g., Friday Harbor destination with 67 drive-up spaces (green) and 141 maximum capacity on Samish vessel. Used for real-time space availability display.
                            description: Array of space availability information for one or more arrival terminal destinations, as space for arrival terminal objects. E.g., array containing Friday Harbor destination with space counts, array containing multiple destinations for multi-destination sailing, null when space information is unavailable. Used for real-time space availability display by destination.
                        required:
                          - Departure
                          - IsCancelled
                          - VesselID
                          - VesselName
                          - MaxSpaceCount
                          - SpaceForArrivalTerminals
                        description: Represents departing space information including departure time, cancellation status, vessel details, maximum capacity, and space availability for arrival terminals. E.g., departure at 9:35 PM with Samish vessel (ID 69, capacity 141) and space information for Friday Harbor destination. Used for real-time departure space availability display.
                      description: Array of upcoming departures leaving terminal with space availability information, as departing space objects. E.g., array containing multiple departures with vessel and space details, null when departure information is unavailable. Used for real-time departure space availability display.
                    IsNoFareCollected:
                      type: boolean
                      nullable: true
                      description: Indicator whether terminal is capable of collecting fares, as a boolean. E.g., null when fare collection status is unknown, false when terminal collects fares, true when terminal does not collect fares. Used to determine fare collection capability.
                    NoFareCollectedMsg:
                      type: string
                      nullable: true
                      description: Optional message explaining how inability to collect fares affects terminal conditions data, as a message string. E.g., null when fare collection is available, message when fare collection affects space tracking accuracy. Used to inform users about data limitations.
                  required:
                    - TerminalID
                    - TerminalSubjectID
                    - RegionID
                    - TerminalName
                    - TerminalAbbrev
                    - SortSeq
                    - IsNoFareCollected
                    - NoFareCollectedMsg
                  description: Terminal sailing space information including terminal identification, upcoming departures with space availability, and fare collection status.
              examples:
                sampleResponse:
                  summary: Sample response
                  description: Example of a successful response from the API (showing first item of 13 total)
                  value:
                    - TerminalID: 1
                      TerminalSubjectID: 111
                      RegionID: 1
                      TerminalName: Anacortes
                      TerminalAbbrev: ANA
                      SortSeq: 10
                      DepartingSpaces:
                        - Departure: '2025-11-15T18:05:00.000Z'
                          IsCancelled: false
                          VesselID: 69
                          VesselName: Samish
                          MaxSpaceCount: 141
                          SpaceForArrivalTerminals:
                            - TerminalID: 1
                              TerminalName: Anacortes -> Lopez Island -> Orcas Island
                              VesselID: 69
                              VesselName: Samish
                              DisplayReservableSpace: true
                              ReservableSpaceCount: null
                              ReservableSpaceHexColor: '#888888'
                              DisplayDriveUpSpace: true
                              DriveUpSpaceCount: 30
                              DriveUpSpaceHexColor: '#FFFF00'
                              MaxSpaceCount: 141
                              ArrivalTerminalIDs:
                                - 13
                                - 15
                        - Departure: '2025-11-15T18:30:00.000Z'
                          IsCancelled: false
                          VesselID: 38
                          VesselName: Yakima
                          MaxSpaceCount: 139
                          SpaceForArrivalTerminals:
                            - TerminalID: 1
                              TerminalName: Anacortes -> Friday Harbor
                              VesselID: 38
                              VesselName: Yakima
                              DisplayReservableSpace: true
                              ReservableSpaceCount: null
                              ReservableSpaceHexColor: '#888888'
                              DisplayDriveUpSpace: true
                              DriveUpSpaceCount: 77
                              DriveUpSpaceHexColor: '#FFFF00'
                              MaxSpaceCount: 139
                              ArrivalTerminalIDs:
                                - 10
                        - Departure: '2025-11-15T19:55:00.000Z'
                          IsCancelled: false
                          VesselID: 2
                          VesselName: Chelan
                          MaxSpaceCount: 120
                          SpaceForArrivalTerminals:
                            - TerminalID: 1
                              TerminalName: Anacortes -> Shaw Island -> Orcas Island -> Anacortes
                              VesselID: 2
                              VesselName: Chelan
                              DisplayReservableSpace: true
                              ReservableSpaceCount: 57
                              ReservableSpaceHexColor: '#FFFF00'
                              DisplayDriveUpSpace: true
                              DriveUpSpaceCount: 73
                              DriveUpSpaceHexColor: '#00FF00'
                              MaxSpaceCount: 120
                              ArrivalTerminalIDs:
                                - 18
                                - 15
                                - 13
                        - Departure: '2025-11-15T21:35:00.000Z'
                          IsCancelled: false
                          VesselID: 69
                          VesselName: Samish
                          MaxSpaceCount: 141
                          SpaceForArrivalTerminals:
                            - TerminalID: 1
                              TerminalName: Anacortes -> Friday Harbor
                              VesselID: 69
                              VesselName: Samish
                              DisplayReservableSpace: true
                              ReservableSpaceCount: 57
                              ReservableSpaceHexColor: '#FFFF00'
                              DisplayDriveUpSpace: true
                              DriveUpSpaceCount: 76
                              DriveUpSpaceHexColor: '#FFFF00'
                              MaxSpaceCount: 141
                              ArrivalTerminalIDs:
                                - 10
                        - Departure: '2025-11-15T21:55:00.000Z'
                          IsCancelled: false
                          VesselID: 38
                          VesselName: Yakima
                          MaxSpaceCount: 139
                          SpaceForArrivalTerminals:
                            - TerminalID: 1
                              TerminalName: Anacortes -> Lopez Island
                              VesselID: 38
                              VesselName: Yakima
                              DisplayReservableSpace: true
                              ReservableSpaceCount: 91
                              ReservableSpaceHexColor: '#00FF00'
                              DisplayDriveUpSpace: true
                              DriveUpSpaceCount: 110
                              DriveUpSpaceHexColor: '#00FF00'
                              MaxSpaceCount: 139
                              ArrivalTerminalIDs:
                                - 13
                        - Departure: '2025-11-15T23:20:00.000Z'
                          IsCancelled: false
                          VesselID: 2
                          VesselName: Chelan
                          MaxSpaceCount: 120
                          SpaceForArrivalTerminals:
                            - TerminalID: 1
                              TerminalName: Anacortes -> Orcas Island -> Shaw Island -> Anacortes
                              VesselID: 2
                              VesselName: Chelan
                              DisplayReservableSpace: true
                              ReservableSpaceCount: 28
                              ReservableSpaceHexColor: '#FFFF00'
                              DisplayDriveUpSpace: true
                              DriveUpSpaceCount: 44
                              DriveUpSpaceHexColor: '#FFFF00'
                              MaxSpaceCount: 120
                              ArrivalTerminalIDs:
                                - 15
                                - 18
                        - Departure: '2025-11-16T00:20:00.000Z'
                          IsCancelled: false
                          VesselID: 38
                          VesselName: Yakima
                          MaxSpaceCount: 139
                          SpaceForArrivalTerminals:
                            - TerminalID: 1
                              TerminalName: Anacortes -> Lopez Island -> Friday Harbor
                              VesselID: 38
                              VesselName: Yakima
                              DisplayReservableSpace: true
                              ReservableSpaceCount: 37
                              ReservableSpaceHexColor: '#FFFF00'
                              DisplayDriveUpSpace: true
                              DriveUpSpaceCount: 57
                              DriveUpSpaceHexColor: '#FFFF00'
                              MaxSpaceCount: 139
                              ArrivalTerminalIDs:
                                - 13
                                - 10
                        - Departure: '2025-11-16T01:35:00.000Z'
                          IsCancelled: false
                          VesselID: 69
                          VesselName: Samish
                          MaxSpaceCount: 141
                          SpaceForArrivalTerminals:
                            - TerminalID: 1
                              TerminalName: Anacortes -> Lopez Island -> Friday Harbor
                              VesselID: 69
                              VesselName: Samish
                              DisplayReservableSpace: true
                              ReservableSpaceCount: 64
                              ReservableSpaceHexColor: '#FFFF00'
                              DisplayDriveUpSpace: true
                              DriveUpSpaceCount: 83
                              DriveUpSpaceHexColor: '#FFFF00'
                              MaxSpaceCount: 141
                              ArrivalTerminalIDs:
                                - 13
                                - 10
                        - Departure: '2025-11-16T02:05:00.000Z'
                          IsCancelled: false
                          VesselID: 2
                          VesselName: Chelan
                          MaxSpaceCount: 120
                          SpaceForArrivalTerminals:
                            - TerminalID: 1
                              TerminalName: Anacortes -> Shaw Island -> Orcas Island -> Anacortes
                              VesselID: 2
                              VesselName: Chelan
                              DisplayReservableSpace: true
                              ReservableSpaceCount: 43
                              ReservableSpaceHexColor: '#FFFF00'
                              DisplayDriveUpSpace: true
                              DriveUpSpaceCount: 59
                              DriveUpSpaceHexColor: '#FFFF00'
                              MaxSpaceCount: 120
                              ArrivalTerminalIDs:
                                - 18
                                - 15
                        - Departure: '2025-11-16T04:15:00.000Z'
                          IsCancelled: false
                          VesselID: 38
                          VesselName: Yakima
                          MaxSpaceCount: 139
                          SpaceForArrivalTerminals:
                            - TerminalID: 1
                              TerminalName: Anacortes -> Lopez Island -> Friday Harbor
                              VesselID: 38
                              VesselName: Yakima
                              DisplayReservableSpace: true
                              ReservableSpaceCount: 57
                              ReservableSpaceHexColor: '#FFFF00'
                              DisplayDriveUpSpace: true
                              DriveUpSpaceCount: 76
                              DriveUpSpaceHexColor: '#FFFF00'
                              MaxSpaceCount: 139
                              ArrivalTerminalIDs:
                                - 13
                                - 10
                        - Departure: '2025-11-16T04:40:00.000Z'
                          IsCancelled: false
                          VesselID: 2
                          VesselName: Chelan
                          MaxSpaceCount: 120
                          SpaceForArrivalTerminals:
                            - TerminalID: 1
                              TerminalName: Anacortes -> Shaw Island -> Orcas Island -> Anacortes
                              VesselID: 2
                              VesselName: Chelan
                              DisplayReservableSpace: true
                              ReservableSpaceCount: 90
                              ReservableSpaceHexColor: '#00FF00'
                              DisplayDriveUpSpace: true
                              DriveUpSpaceCount: 106
                              DriveUpSpaceHexColor: '#00FF00'
                              MaxSpaceCount: 120
                              ArrivalTerminalIDs:
                                - 18
                                - 15
                      IsNoFareCollected: null
                      NoFareCollectedMsg: null
  /terminalSailingSpace/{TerminalID}:
    get:
      summary: Get sailing space availability for a specific terminal by ID.
      operationId: fetchTerminalSailingSpaceByTerminalId
      tags:
        - terminal-sailing-space
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { fetchTerminalSailingSpaceByTerminalId } from 'ws-dottie/wsf-terminals/core';

            const data = await fetchTerminalSailingSpaceByTerminalId({
              params: {
                "TerminalID": 7
              },
              fetchMode: 'native',
              validate: true
            });

            console.log(data);
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchTerminalSailingSpaceByTerminalIdOutput'
              examples:
                sampleResponse:
                  summary: Sample response
                  description: Example of a successful response from the API
                  value:
                    TerminalID: 7
                    TerminalSubjectID: 101
                    RegionID: 4
                    TerminalName: Seattle
                    TerminalAbbrev: P52
                    SortSeq: 20
                    DepartingSpaces:
                      - Departure: '2025-11-15T18:00:00.000Z'
                        IsCancelled: false
                        VesselID: 36
                        VesselName: Walla Walla
                        MaxSpaceCount: 186
                        SpaceForArrivalTerminals:
                          - TerminalID: 4
                            TerminalName: Bremerton
                            VesselID: 36
                            VesselName: Walla Walla
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 163
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 186
                            ArrivalTerminalIDs:
                              - 4
                      - Departure: '2025-11-15T18:40:00.000Z'
                        IsCancelled: false
                        VesselID: 32
                        VesselName: Tacoma
                        MaxSpaceCount: 197
                        SpaceForArrivalTerminals:
                          - TerminalID: 3
                            TerminalName: Bainbridge Island
                            VesselID: 32
                            VesselName: Tacoma
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 189
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 197
                            ArrivalTerminalIDs:
                              - 3
                      - Departure: '2025-11-15T19:10:00.000Z'
                        IsCancelled: false
                        VesselID: 17
                        VesselName: Kaleetan
                        MaxSpaceCount: 139
                        SpaceForArrivalTerminals:
                          - TerminalID: 4
                            TerminalName: Bremerton
                            VesselID: 17
                            VesselName: Kaleetan
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 139
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 139
                            ArrivalTerminalIDs:
                              - 4
                      - Departure: '2025-11-15T19:25:00.000Z'
                        IsCancelled: false
                        VesselID: 37
                        VesselName: Wenatchee
                        MaxSpaceCount: 197
                        SpaceForArrivalTerminals:
                          - TerminalID: 3
                            TerminalName: Bainbridge Island
                            VesselID: 37
                            VesselName: Wenatchee
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 197
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 197
                            ArrivalTerminalIDs:
                              - 3
                      - Departure: '2025-11-15T20:20:00.000Z'
                        IsCancelled: false
                        VesselID: 36
                        VesselName: Walla Walla
                        MaxSpaceCount: 186
                        SpaceForArrivalTerminals:
                          - TerminalID: 4
                            TerminalName: Bremerton
                            VesselID: 36
                            VesselName: Walla Walla
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 186
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 186
                            ArrivalTerminalIDs:
                              - 4
                      - Departure: '2025-11-15T20:30:00.000Z'
                        IsCancelled: false
                        VesselID: 32
                        VesselName: Tacoma
                        MaxSpaceCount: 197
                        SpaceForArrivalTerminals:
                          - TerminalID: 3
                            TerminalName: Bainbridge Island
                            VesselID: 32
                            VesselName: Tacoma
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 197
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 197
                            ArrivalTerminalIDs:
                              - 3
                      - Departure: '2025-11-15T21:15:00.000Z'
                        IsCancelled: false
                        VesselID: 37
                        VesselName: Wenatchee
                        MaxSpaceCount: 197
                        SpaceForArrivalTerminals:
                          - TerminalID: 3
                            TerminalName: Bainbridge Island
                            VesselID: 37
                            VesselName: Wenatchee
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 197
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 197
                            ArrivalTerminalIDs:
                              - 3
                      - Departure: '2025-11-15T21:30:00.000Z'
                        IsCancelled: false
                        VesselID: 17
                        VesselName: Kaleetan
                        MaxSpaceCount: 139
                        SpaceForArrivalTerminals:
                          - TerminalID: 4
                            TerminalName: Bremerton
                            VesselID: 17
                            VesselName: Kaleetan
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 139
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 139
                            ArrivalTerminalIDs:
                              - 4
                      - Departure: '2025-11-15T22:10:00.000Z'
                        IsCancelled: false
                        VesselID: 32
                        VesselName: Tacoma
                        MaxSpaceCount: 197
                        SpaceForArrivalTerminals:
                          - TerminalID: 3
                            TerminalName: Bainbridge Island
                            VesselID: 32
                            VesselName: Tacoma
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 197
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 197
                            ArrivalTerminalIDs:
                              - 3
                      - Departure: '2025-11-15T22:50:00.000Z'
                        IsCancelled: false
                        VesselID: 36
                        VesselName: Walla Walla
                        MaxSpaceCount: 186
                        SpaceForArrivalTerminals:
                          - TerminalID: 4
                            TerminalName: Bremerton
                            VesselID: 36
                            VesselName: Walla Walla
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 186
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 186
                            ArrivalTerminalIDs:
                              - 4
                      - Departure: '2025-11-15T23:05:00.000Z'
                        IsCancelled: false
                        VesselID: 37
                        VesselName: Wenatchee
                        MaxSpaceCount: 197
                        SpaceForArrivalTerminals:
                          - TerminalID: 3
                            TerminalName: Bainbridge Island
                            VesselID: 37
                            VesselName: Wenatchee
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 197
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 197
                            ArrivalTerminalIDs:
                              - 3
                      - Departure: '2025-11-15T23:50:00.000Z'
                        IsCancelled: false
                        VesselID: 32
                        VesselName: Tacoma
                        MaxSpaceCount: 197
                        SpaceForArrivalTerminals:
                          - TerminalID: 3
                            TerminalName: Bainbridge Island
                            VesselID: 32
                            VesselName: Tacoma
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 197
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 197
                            ArrivalTerminalIDs:
                              - 3
                      - Departure: '2025-11-16T00:15:00.000Z'
                        IsCancelled: false
                        VesselID: 17
                        VesselName: Kaleetan
                        MaxSpaceCount: 139
                        SpaceForArrivalTerminals:
                          - TerminalID: 4
                            TerminalName: Bremerton
                            VesselID: 17
                            VesselName: Kaleetan
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 139
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 139
                            ArrivalTerminalIDs:
                              - 4
                      - Departure: '2025-11-16T00:45:00.000Z'
                        IsCancelled: false
                        VesselID: 37
                        VesselName: Wenatchee
                        MaxSpaceCount: 197
                        SpaceForArrivalTerminals:
                          - TerminalID: 3
                            TerminalName: Bainbridge Island
                            VesselID: 37
                            VesselName: Wenatchee
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 197
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 197
                            ArrivalTerminalIDs:
                              - 3
                      - Departure: '2025-11-16T01:30:00.000Z'
                        IsCancelled: false
                        VesselID: 36
                        VesselName: Walla Walla
                        MaxSpaceCount: 186
                        SpaceForArrivalTerminals:
                          - TerminalID: 4
                            TerminalName: Bremerton
                            VesselID: 36
                            VesselName: Walla Walla
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 186
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 186
                            ArrivalTerminalIDs:
                              - 4
                      - Departure: '2025-11-16T01:35:00.000Z'
                        IsCancelled: false
                        VesselID: 32
                        VesselName: Tacoma
                        MaxSpaceCount: 197
                        SpaceForArrivalTerminals:
                          - TerminalID: 3
                            TerminalName: Bainbridge Island
                            VesselID: 32
                            VesselName: Tacoma
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 197
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 197
                            ArrivalTerminalIDs:
                              - 3
                      - Departure: '2025-11-16T02:25:00.000Z'
                        IsCancelled: false
                        VesselID: 37
                        VesselName: Wenatchee
                        MaxSpaceCount: 197
                        SpaceForArrivalTerminals:
                          - TerminalID: 3
                            TerminalName: Bainbridge Island
                            VesselID: 37
                            VesselName: Wenatchee
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 197
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 197
                            ArrivalTerminalIDs:
                              - 3
                      - Departure: '2025-11-16T02:45:00.000Z'
                        IsCancelled: false
                        VesselID: 17
                        VesselName: Kaleetan
                        MaxSpaceCount: 139
                        SpaceForArrivalTerminals:
                          - TerminalID: 4
                            TerminalName: Bremerton
                            VesselID: 17
                            VesselName: Kaleetan
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 139
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 139
                            ArrivalTerminalIDs:
                              - 4
                      - Departure: '2025-11-16T03:20:00.000Z'
                        IsCancelled: false
                        VesselID: 32
                        VesselName: Tacoma
                        MaxSpaceCount: 197
                        SpaceForArrivalTerminals:
                          - TerminalID: 3
                            TerminalName: Bainbridge Island
                            VesselID: 32
                            VesselName: Tacoma
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 197
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 197
                            ArrivalTerminalIDs:
                              - 3
                      - Departure: '2025-11-16T03:50:00.000Z'
                        IsCancelled: false
                        VesselID: 36
                        VesselName: Walla Walla
                        MaxSpaceCount: 186
                        SpaceForArrivalTerminals:
                          - TerminalID: 4
                            TerminalName: Bremerton
                            VesselID: 36
                            VesselName: Walla Walla
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 186
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 186
                            ArrivalTerminalIDs:
                              - 4
                      - Departure: '2025-11-16T04:10:00.000Z'
                        IsCancelled: false
                        VesselID: 37
                        VesselName: Wenatchee
                        MaxSpaceCount: 197
                        SpaceForArrivalTerminals:
                          - TerminalID: 3
                            TerminalName: Bainbridge Island
                            VesselID: 37
                            VesselName: Wenatchee
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 197
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 197
                            ArrivalTerminalIDs:
                              - 3
                      - Departure: '2025-11-16T05:00:00.000Z'
                        IsCancelled: false
                        VesselID: 32
                        VesselName: Tacoma
                        MaxSpaceCount: 197
                        SpaceForArrivalTerminals:
                          - TerminalID: 3
                            TerminalName: Bainbridge Island
                            VesselID: 32
                            VesselName: Tacoma
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 197
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 197
                            ArrivalTerminalIDs:
                              - 3
                      - Departure: '2025-11-16T05:05:00.000Z'
                        IsCancelled: false
                        VesselID: 17
                        VesselName: Kaleetan
                        MaxSpaceCount: 139
                        SpaceForArrivalTerminals:
                          - TerminalID: 4
                            TerminalName: Bremerton
                            VesselID: 17
                            VesselName: Kaleetan
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 139
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 139
                            ArrivalTerminalIDs:
                              - 4
                      - Departure: '2025-11-16T05:45:00.000Z'
                        IsCancelled: false
                        VesselID: 37
                        VesselName: Wenatchee
                        MaxSpaceCount: 197
                        SpaceForArrivalTerminals:
                          - TerminalID: 3
                            TerminalName: Bainbridge Island
                            VesselID: 37
                            VesselName: Wenatchee
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 197
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 197
                            ArrivalTerminalIDs:
                              - 3
                      - Departure: '2025-11-16T06:30:00.000Z'
                        IsCancelled: false
                        VesselID: 36
                        VesselName: Walla Walla
                        MaxSpaceCount: 186
                        SpaceForArrivalTerminals:
                          - TerminalID: 4
                            TerminalName: Bremerton
                            VesselID: 36
                            VesselName: Walla Walla
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 186
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 186
                            ArrivalTerminalIDs:
                              - 4
                      - Departure: '2025-11-16T06:40:00.000Z'
                        IsCancelled: false
                        VesselID: 32
                        VesselName: Tacoma
                        MaxSpaceCount: 197
                        SpaceForArrivalTerminals:
                          - TerminalID: 3
                            TerminalName: Bainbridge Island
                            VesselID: 32
                            VesselName: Tacoma
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 197
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 197
                            ArrivalTerminalIDs:
                              - 3
                      - Departure: '2025-11-16T07:15:00.000Z'
                        IsCancelled: false
                        VesselID: 37
                        VesselName: Wenatchee
                        MaxSpaceCount: 197
                        SpaceForArrivalTerminals:
                          - TerminalID: 3
                            TerminalName: Bainbridge Island
                            VesselID: 37
                            VesselName: Wenatchee
                            DisplayReservableSpace: false
                            ReservableSpaceCount: null
                            ReservableSpaceHexColor: null
                            DisplayDriveUpSpace: true
                            DriveUpSpaceCount: 197
                            DriveUpSpaceHexColor: '#00FF00'
                            MaxSpaceCount: 197
                            ArrivalTerminalIDs:
                              - 3
                    IsNoFareCollected: null
                    NoFareCollectedMsg: null
  /terminalTransports:
    get:
      summary: List transportation information for all terminals.
      operationId: fetchTerminalTransports
      tags:
        - terminal-transports
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { fetchTerminalTransports } from 'ws-dottie/wsf-terminals/core';

            const data = await fetchTerminalTransports({
              fetchMode: 'native',
              validate: true
            });

            console.log(data);
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    TerminalID:
                      type: integer
                      description: Numeric ID of the terminal.
                    TerminalSubjectID:
                      type: integer
                      description: Numeric ID of the terminal in the WSF subject management system.
                    RegionID:
                      type: integer
                      description: Numeric ID of the geographical region where the terminal is located.
                    TerminalName:
                      type: string
                      nullable: true
                      description: Display name of the terminal.
                    TerminalAbbrev:
                      type: string
                      nullable: true
                      description: Abbreviation code for the terminal.
                    SortSeq:
                      type: integer
                      description: Display sort order; lower values appear first in lists.
                    ParkingInfo:
                      type: string
                      nullable: true
                      description: HTML-formatted parking information for terminal, as parking details. E.g., 'Off-Peak rates effective October 1 through April 30, 2026...' for Anacortes parking rates, null when parking information is unavailable. HTML-formatted text for parking information display.
                    ParkingShuttleInfo:
                      type: string
                      nullable: true
                      description: HTML-formatted information about parking-related shuttles servicing terminal, as shuttle information. E.g., null when no parking shuttles, shuttle details when available. Used for parking shuttle information display.
                    AirportInfo:
                      type: string
                      nullable: true
                      description: HTML-formatted tips for commuting to terminal from airport, as airport directions. E.g., 'From the Seattle-Tacoma International Airport, allow a minimum of 2 1/2 hours...' for Anacortes airport directions, null when airport information is unavailable. HTML-formatted text for airport commuter information.
                    AirportShuttleInfo:
                      type: string
                      nullable: true
                      description: HTML-formatted information about airport shuttles servicing terminal, as shuttle information. E.g., 'When traveling from Sea-Tac Airport to Anacortes there is a shuttle...' for Anacortes airport shuttle, null when airport shuttle information is unavailable. HTML-formatted text for airport shuttle information.
                    MotorcycleInfo:
                      type: string
                      nullable: true
                      description: HTML-formatted information for motorcycle travelers, as motorcycle tips. E.g., 'While motorcycles are not, by Washington Administrative Code...' for motorcycle staging and loading information, null when motorcycle information is unavailable. HTML-formatted text for motorcycle commuter information.
                    TruckInfo:
                      type: string
                      nullable: true
                      description: HTML-formatted information for truck travelers, as truck tips. E.g., 'Expect heavy truck traffic on the first 3 sailings in the morning...' for truck travel information, null when truck information is unavailable. HTML-formatted text for truck commuter information.
                    BikeInfo:
                      type: string
                      nullable: true
                      description: HTML-formatted information for bicycle travelers, as bicycle tips. E.g., 'Approaching the Anacortes Terminal, you will arrive at the vehicle tollbooths...' for bicycle staging information, null when bicycle information is unavailable. HTML-formatted text for bicycle commuter information.
                    TrainInfo:
                      type: string
                      nullable: true
                      description: HTML-formatted information about trains servicing terminal, as train information. E.g., null when no train service, train details when available. Used for train commuter information display.
                    TaxiInfo:
                      type: string
                      nullable: true
                      description: HTML-formatted information about taxis servicing terminal, as taxi information. E.g., null when no taxi information, taxi details when available. Used for taxi commuter information display.
                    HovInfo:
                      type: string
                      nullable: true
                      description: HTML-formatted tips for carpool/vanpool commuters, as HOV information. E.g., 'Carpool/Vanpools must be ticketed and in line 10 minutes before...' for Bainbridge Island HOV information, null when HOV information is unavailable. HTML-formatted text for carpool/vanpool commuter information.
                    TransitLinks:
                      type: array
                      nullable: true
                      items:
                        type: object
                        properties:
                          LinkURL:
                            type: string
                            nullable: true
                            description: URL to transit agency website or service page, as a transit URL. E.g., 'http://www.skagittransit.org/' for Skagit Transit, 'http://www.kitsaptransit.com/service/routed-buses' for Kitsap Transit, null when transit link is unavailable. Used for accessing transit agency information.
                          LinkName:
                            type: string
                            nullable: true
                            description: Human-readable name of transit agency, as a transit agency name. E.g., 'Skagit Transit' for Skagit Transit agency, 'Kitsap Transit' for Kitsap Transit agency, null when transit name is unavailable. Provides transit agency identification for display.
                          SortSeq:
                            type: integer
                            nullable: true
                            description: Preferred sort order for transit link display, as an integer. E.g., null when sort order is not specified. Lower values appear first when sorting transit links in ascending order. Used for transit link display ordering.
                        required:
                          - LinkURL
                          - LinkName
                          - SortSeq
                        description: Represents transit link information including transit agency URL, name, and sort order. E.g., Skagit Transit link (http://www.skagittransit.org/). Used for displaying transit agency connections and links.
                      description: Array of transit agency links servicing terminal, as transit link objects. E.g., array containing Skagit Transit link for Anacortes terminal, array containing Kitsap Transit link for Bainbridge Island terminal, null when transit links are unavailable. Used for displaying transit agency connections.
                  required:
                    - TerminalID
                    - TerminalSubjectID
                    - RegionID
                    - TerminalName
                    - TerminalAbbrev
                    - SortSeq
                    - ParkingInfo
                    - ParkingShuttleInfo
                    - AirportInfo
                    - AirportShuttleInfo
                    - MotorcycleInfo
                    - TruckInfo
                    - BikeInfo
                    - TrainInfo
                    - TaxiInfo
                    - HovInfo
                    - TransitLinks
                  description: Terminal transportation and commuter information including parking details, vehicle-specific tips, airport information, transit links, and HOV/carpool information.
              examples:
                sampleResponse:
                  summary: Sample response
                  description: Example of a successful response from the API (showing first item of 20 total)
                  value:
                    - TerminalID: 1
                      TerminalSubjectID: 111
                      RegionID: 1
                      TerminalName: Anacortes
                      TerminalAbbrev: ANA
                      SortSeq: 10
                      ParkingInfo: "Off-Peak rates effective October 1 through April 30, 2026:<br>\r\n<ul>\r\n<li>1 day rate  (car) - $8.00</li>\r\n<li>2 day rate (car) - $13.00</li>\r\n<li>3 day rate (car) - $15.00</li>\r\n<li>4 day rate (car) - $19.00</li>\r\n<li>7 day rate (car) - $24.00</li>\r\n<li>8 day rate (car) - $30.00</li>\r\n<li>9 day rate (car) - $35.00</li>\r\n<li>10 day rate (car) - $40.00</li>\r\n<li>14 day rate (car) - $46.00</li>\r\n<li>15 day rate (car) - $51.00</li>\r\n<li>16 day rate (car) - $57.00</li>\r\n<li>17 day rate (car) - $62.00</li>\r\n<li>21 day rate (car) - $67.00</li><p>\r\n\r\n\r\n\r\n<li>1 day rate (RV) - $13.00</li>\r\n<li>2 day rate (RV) - $24.00</li>\r\n<li>3 day rate (RV) - $28.00</li>\r\n<li>4 day rate (RV) - $92.00</li>\r\n<li>7 day rate (RV) - $46.00</li>\r\n<li>8 day rate (RV) - $57.00</li>\r\n<li>9 day rate (RV) - $67.00</li>\r\n<li>10 day rate (RV) - $78.00</li>\r\n<li>14 day rate (RV) - $87.00</li>\r\n<li>15 day rate (RV) - $98.00</li>\r\n<li>16 day rate (RV) - $112.00</li><p>\r\n\r\nThere are two ways to either initially pay for parking or to extend your current parking session remotely via your cell phone or mobile app:<p>\r\n\r\n<ul>Use the PayByPhone mobile app or call 1-888-680-7275.  The automated system will ask for the Station #1644, the Stall # you parked in and the number of day(s) needed.</ul><p>\r\n \r\n<b>Contact 509-295-6490 for additional parking information.</b></p>\r\n\r\nCustomers wishing to purchase a Monthly, Seasonal, or RV/Boat Storage permits, please call Diamond Parking Services at (206) 729-0590 or 1-800-828-4197 and press option 2. Customer Service Representatives are available Monday – Friday 7:30 am to 7:00 pm PST or by email at Monthly@DiamondParking.com<p>\r\n\r\nThere is no charge for disabled parking customers displaying a valid disabled parking placard or license plate in this parking lot only. It’s important to note that when all the sign posted ADA spaces are filled in this WSF lot, customers are allowed to park in any empty space in this lot, for free, with their ADA placard, except those spaces reserved for other uses (e.g., carpool and Ferry System employee vehicles).</p> "
                      ParkingShuttleInfo: null
                      AirportInfo: From the Seattle-Tacoma International Airport, allow a minimum of 2 1/2 hours driving time to Anacortes and plan to arrive at least 45 minutes before your ferry is scheduled to depart. Follow road signs to the freeway. Drive north to enter eastbound on 518. You will need to get on I-5 North, just follow the road signs. Take I-5 North for approximately 85 miles to state route 20. Take exit 230, turn left at the light and follow the signs into downtown Anacortes. Turn left on 12th Street. Our terminal is 4 to 5 miles outside town.</p>
                      AirportShuttleInfo: When traveling from Sea-Tac Airport to Anacortes there is a shuttle from Sea-Tac Airport to our Anacortes Dock. For schedule and fare information call 1-866-235-5247 or check <a href="http://www.airporter.com/" class="content_text">Bellair Airporter</a>.<p>Island Airporter is another service that provides transportation from Sea-Tac Airport to Friday Harbor. To contact them for fare and schedule information, call (360) 378-7438 or check <a href="http://www.islandairporter.com/"class=content_text">Island Airporter</a>.</p>
                      MotorcycleInfo: "While motorcycles are not, by Washington Administrative Code (WAC 468-300-700), a preferential loading category of users, they are often loaded prior to automobiles for operational and staging purposes. Arrival at the dock after vehicle load has commenced requires motorcycles to wait until all cars have been loaded for the next motorcycle loading opportunity. Motorcycles should proceed, while on the dock, at no more than 10 mph. Use caution when car decks are wet. The following information details specific staging for this terminal:<p>\r\n<strong>Entry/Staging:</strong><br>\r\nMotorcyclists queue, along with vehicles, in traffic line prior to tollbooths. Proceed to motorcycle staging area in front of holding lanes as directed by ticket seller or traffic attendant.<p>\r\n<strong>Loading:</strong><br>\r\nLoading order: bicycles, motorcycles, vehicles, late arriving motorcycles as space permits. \r\nSpace may be limited to 30 motorcycles per sailing.</p>\r\n\r\n"
                      TruckInfo: "Expect heavy truck traffic on the first 3 sailings in the morning. Trucks going standby are advised to travel between the 7:40 am to 11:00 am time frame.<p>WSF requires trucks with a gross vehicle weight of over 80,000 lbs and/or over 8’6” wide to have “travel approval” before crossing any of our routes.  Vessels on this route have a limited height clearance and trucks may be loaded out of sequence.<p>\r\nTrucks that have a gross vehicle weight of over 80,000 lbs but are hauling less than 80,000 lbs will need to provide a weight slip.<p>\r\nPlease fill out our <A HREF=\"https://wsdot.wa.gov/ferries/rider-information/trucks\" class=\"content_text\">Oversized/Overweight Vehicle Travel</A> form and email it to wsfinfo@wsdot.wa.gov. Please allow three business days for completion and approval. You can contact us at anytime for status updates at (206)464-6400 (Seattle).<p>The Canada Border Service Agency does not provide Commercial Services at the Sidney Terminal, as this office is not a designated commercial office.</p>"
                      BikeInfo: "Approaching the Anacortes Terminal, you will arrive at the vehicle tollbooths first on the right. Bicyclists may bypass these and the line of vehicle traffic at the vehicle tollbooths to get onto the ferry dock when the passenger tollbooth in the terminal is open, but must go through a vehicle tollbooth if the terminal and passenger tollbooth are closed. Signage at the vehicle tollbooth will indicate if the passenger tollbooth is open. If passenger booth is open, bicyclists should secure their bikes at the terminal and go into the terminal to purchase their tickets.<p>\r\nThere is one bike rack at the terminal which holds 12 bikes. Bicyclists should arrive 20 minutes prior to departure time to be loaded at the beginning of loading process to be certain they are loaded for their specific destination and multi-destination sailings. If a bicyclist arrives after vehicle loading has begun, they may not be loaded for their desired destination.</p>"
                      TrainInfo: null
                      TaxiInfo: null
                      HovInfo: null
                      TransitLinks:
                        - LinkURL: http://www.skagittransit.org/
                          LinkName: Skagit Transit
                          SortSeq: null
  /terminalTransports/{TerminalID}:
    get:
      summary: Get transportation information for a specific terminal by ID.
      operationId: fetchTerminalTransportsByTerminalId
      tags:
        - terminal-transports
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { fetchTerminalTransportsByTerminalId } from 'ws-dottie/wsf-terminals/core';

            const data = await fetchTerminalTransportsByTerminalId({
              params: {
                "TerminalID": 10
              },
              fetchMode: 'native',
              validate: true
            });

            console.log(data);
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchTerminalTransportsByTerminalIdOutput'
              examples:
                sampleResponse:
                  summary: Sample response
                  description: Example of a successful response from the API
                  value:
                    TerminalID: 10
                    TerminalSubjectID: 115
                    RegionID: 1
                    TerminalName: Friday Harbor
                    TerminalAbbrev: FRH
                    SortSeq: 50
                    ParkingInfo: There is no parking at the Friday Harbor terminal. There is limited short term on street parking available.
                    ParkingShuttleInfo: null
                    AirportInfo: null
                    AirportShuttleInfo: null
                    MotorcycleInfo: "While motorcycles are not, by Washington Administrative Code (WAC 468-300-700), a preferential loading category of users, they are often loaded prior to automobiles for operational and staging purposes. Arrival at the dock after vehicle load has commenced requires motorcycles to wait until all cars have been loaded for the next motorcycle loading opportunity. Motorcycles should proceed, while on the dock, at no more than 10 mph. Use caution when car decks are wet. The following information details specific staging for this terminal:<p> \r\n\r\n<b>Motorcycle Fare Purchase/Redemption</b><br>\r\nTickets are required for International travel to Sidney, B.C. Canada.<p>\r\n\r\n<b>Motorcycle Entry/Staging</b><br>\r\nMotorcycles are staged on the yellow curb lane in front of Cannery Landing.<p>\r\n\r\n<b>Motorcycle Loading</b><br>\r\nLoading order: bicycles, motorcycles, vehicles, late arriving motorcycles as space permits.<p> \r\n\r\n<b>Motorcycle Special Communication</b><br>\r\nRecommended arrival time is 20 minutes prior to scheduled sailing time.<br>\r\nOn high traffic sailings, vessel overloads may occur for travel to Anacortes. To avoid missing a desired sailing, motorcyclists should arrive an hour prior to scheduled sailing.<p>\r\n\r\nInter-island tickets may be used between any two islands, they are not destination specific and fare payment is required traveling westbound only. Motorcyclists travel free eastbound. "
                    TruckInfo: "WSF requires trucks with a gross vehicle weight of over 80,000 lbs and/or over 8’6” wide to have “travel approval” before crossing any of our routes.  Vessels on this route have a limited height clearance and trucks may be loaded out of sequence.<p>\r\nTrucks that have a gross vehicle weight of over 80,000 lbs but are hauling less than 80,000 lbs will need to provide a weight slip.<p>\r\nPlease fill out our <A HREF=\"https://wsdot.wa.gov/ferries/rider-information/trucks\" class=\"content_text\">Oversized/Overweight Vehicle Travel</A> form and email it to wsfinfo@wsdot.wa.gov. Please allow three business days for completion and approval. You can contact us at anytime for status updates at (206)464-6400.</p>\r\n"
                    BikeInfo: Bicyclists load through the passenger terminal and should bypass the vehicle holding lanes. Bicyclists should arrive 20 minutes prior to departure time to be loaded at the beginning of vehicle loading. If a bicyclist arrives after vehicle loading has begun, they will be loaded at the end of the load. The terminal has bicycle racks near the terminal along Front Street.  Bicyclists are asked to walk on and walk off the vessel.  The Agent will notify bicyclists when they may ride while offloading.
                    TrainInfo: null
                    TaxiInfo: null
                    HovInfo: null
                    TransitLinks: []
  /terminalVerbose:
    get:
      summary: List comprehensive information for all terminals.
      operationId: fetchTerminalVerbose
      tags:
        - terminal-verbose
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { fetchTerminalVerbose } from 'ws-dottie/wsf-terminals/core';

            const data = await fetchTerminalVerbose({
              fetchMode: 'native',
              validate: true
            });

            console.log(data);
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf:
                    - type: object
                      properties:
                        TerminalID:
                          type: integer
                          description: Numeric ID of the terminal.
                        TerminalSubjectID:
                          type: integer
                          description: Numeric ID of the terminal in the WSF subject management system.
                        RegionID:
                          type: integer
                          description: Numeric ID of the geographical region where the terminal is located.
                        TerminalName:
                          type: string
                          nullable: true
                          description: Display name of the terminal.
                        TerminalAbbrev:
                          type: string
                          nullable: true
                          description: Abbreviation code for the terminal.
                        SortSeq:
                          type: integer
                          description: Display sort order; lower values appear first in lists.
                        OverheadPassengerLoading:
                          type: boolean
                          description: Indicator whether terminal supports overhead passenger loading from upper vehicle deck, as a boolean. E.g., true for terminals with overhead walkways like Anacortes and Bainbridge Island, false for terminals without overhead loading capability. Used to determine passenger boarding capabilities and accessibility features.
                        Elevator:
                          type: boolean
                          description: Indicator whether terminal has elevator access for passengers, as a boolean. E.g., false for terminals like Anacortes and Bainbridge Island without elevators, true for terminals with elevator access. Used to determine ADA accessibility and passenger mobility accommodations.
                        WaitingRoom:
                          type: boolean
                          description: Indicator whether terminal has indoor waiting room facility, as a boolean. E.g., true for terminals like Anacortes and Bainbridge Island with waiting rooms, false for terminals without waiting facilities. Used to determine passenger comfort amenities and sheltered waiting areas.
                        FoodService:
                          type: boolean
                          description: Indicator whether terminal offers food service facilities, as a boolean. E.g., true for terminals like Anacortes and Bainbridge Island with galleys or cafes, false for terminals without food service. Used to determine available amenities for passengers during wait times.
                        Restroom:
                          type: boolean
                          description: Indicator whether terminal has restroom facilities, as a boolean. E.g., true for terminals like Anacortes and Bainbridge Island with restrooms, false for terminals without restroom access. Used to determine passenger comfort amenities and basic facility availability.
                      required:
                        - TerminalID
                        - TerminalSubjectID
                        - RegionID
                        - TerminalName
                        - TerminalAbbrev
                        - SortSeq
                        - OverheadPassengerLoading
                        - Elevator
                        - WaitingRoom
                        - FoodService
                        - Restroom
                      description: Base terminal information including identification, naming, regional association, and display ordering.
                    - type: object
                      properties:
                        Bulletins:
                          type: array
                          items:
                            type: object
                            properties:
                              BulletinTitle:
                                type: string
                                nullable: true
                                description: Title of the bulletin.
                              BulletinText:
                                type: string
                                nullable: true
                                description: HTML-formatted content of the bulletin.
                              BulletinSortSeq:
                                type: integer
                                description: Display sort order for the bulletin; lower values appear first.
                              BulletinLastUpdated:
                                type: string
                                nullable: true
                                description: UTC datetime when the bulletin was last updated.
                                format: date-time
                              BulletinLastUpdatedSortable:
                                type: string
                                nullable: true
                                description: Legacy sortable string representation of the bulletin update date.
                                format: date-time
                            required:
                              - BulletinTitle
                              - BulletinText
                              - BulletinSortSeq
                              - BulletinLastUpdated
                              - BulletinLastUpdatedSortable
                            description: Bulletin information including title, HTML content, sort order, and update date.
                          description: Active bulletins and alerts associated with terminal, as an array of bulletin objects. E.g., array containing vehicle reservation notices for Anacortes terminal, empty array for terminals without active bulletins. Used to display important terminal information, service changes, and passenger notifications.
                      required:
                        - Bulletins
                    - type: object
                      properties:
                        Latitude:
                          type: number
                          nullable: true
                          description: Terminal latitude coordinate, in decimal degrees. E.g., 48.507351 for Anacortes terminal, 47.622339 for Bainbridge Island terminal, null when coordinate data is unavailable. Used for mapping, distance calculations, and geographic display.
                        Longitude:
                          type: number
                          nullable: true
                          description: Terminal longitude coordinate, in decimal degrees. E.g., -122.677 for Anacortes terminal, -122.509617 for Bainbridge Island terminal, null when coordinate data is unavailable. Used for mapping, distance calculations, and geographic display.
                        AddressLineOne:
                          type: string
                          nullable: true
                          description: Primary street address line for terminal location, as a street address. E.g., '2100 Ferry Terminal Road' for Anacortes terminal, '270 Olympic Drive SE' for Bainbridge Island terminal, null when address is unavailable. Used for navigation, mapping, and location identification.
                        AddressLineTwo:
                          type: string
                          nullable: true
                          description: Secondary address line for terminal location, as an address supplement. E.g., null for most terminals without suite or building numbers, present when additional address details are needed. Used for complete address formatting when available.
                        City:
                          type: string
                          nullable: true
                          description: City name where terminal is located, as a city name. E.g., 'Anacortes' for Anacortes terminal, 'Bainbridge Island' for Bainbridge Island terminal, null when city is unavailable. Used for location identification and address formatting.
                        State:
                          type: string
                          nullable: true
                          description: State abbreviation where terminal is located, as a state code. E.g., 'WA' for Washington state terminals, null when state is unavailable. Used for location identification and address formatting.
                        ZipCode:
                          type: string
                          nullable: true
                          description: Postal code for terminal location, as a zip code string. E.g., '98221' for Anacortes terminal, '98110' for Bainbridge Island terminal, null when zip code is unavailable. Used for location identification and address formatting.
                        Country:
                          type: string
                          nullable: true
                          description: Country name where terminal is located, as a country code. E.g., 'USA' for United States terminals, null when country is unavailable. Used for location identification and international address formatting.
                        MapLink:
                          type: string
                          nullable: true
                          description: URL link to external mapping service displaying terminal location, as a map URL. E.g., Google Maps link for Anacortes terminal, null when map link is unavailable. Used for providing direct navigation links to terminal location.
                        Directions:
                          type: string
                          nullable: true
                          description: Driving directions to terminal from major routes, as HTML-formatted text. E.g., directions from Interstate 5 to Anacortes terminal, null when directions are unavailable. Used for navigation assistance and route planning.
                        DispGISZoomLoc:
                          type: array
                          nullable: true
                          items:
                            type: object
                            properties:
                              ZoomLevel:
                                type: integer
                                description: GIS zoom level for map display.
                              Latitude:
                                type: number
                                nullable: true
                                description: Latitude coordinate for this zoom level in decimal degrees.
                              Longitude:
                                type: number
                                nullable: true
                                description: Longitude coordinate for this zoom level in decimal degrees.
                            required:
                              - ZoomLevel
                              - Latitude
                              - Longitude
                            description: GIS zoom level location information including zoom level and coordinates.
                          description: GIS map display coordinates for terminal at various zoom levels, as an array of zoom-level coordinates. E.g., array with 18 zoom levels for Anacortes terminal, null when zoom-level data is unavailable. Used for optimized map rendering at different zoom levels.
                      required:
                        - Latitude
                        - Longitude
                        - AddressLineOne
                        - AddressLineTwo
                        - City
                        - State
                        - ZipCode
                        - Country
                        - MapLink
                        - Directions
                        - DispGISZoomLoc
                    - type: object
                      properties:
                        DepartingSpaces:
                          type: array
                          nullable: true
                          items:
                            type: object
                            properties:
                              Departure:
                                type: string
                                description: Date and time of departure, as a UTC datetime. E.g., '2025-11-02T21:35:00.000Z' for departure at 9:35 PM on November 2, 2025. Used for departure schedule display and space availability timing.
                                format: date-time
                              IsCancelled:
                                type: boolean
                                description: Indicator whether departure is cancelled, as a boolean. E.g., false for active departures, true for cancelled departures. Used to determine if departure is operational.
                              VesselID:
                                type: integer
                                description: Unique identifier for vessel planned to service departure, as an integer ID. E.g., '69' for Samish vessel, '38' for Yakima vessel, '17' for Kaleetan vessel. Used to identify which vessel operates departure.
                              VesselName:
                                type: string
                                nullable: true
                                description: Human-readable name of vessel planned to service departure, as a vessel name. E.g., 'Samish' for vessel 69, 'Yakima' for vessel 38, 'Kaleetan' for vessel 17, null when vessel name is unavailable. Provides vessel identification for display.
                              MaxSpaceCount:
                                type: integer
                                description: Maximum vehicle capacity on vessel making departure, as an integer count. E.g., '141' for Samish vessel capacity, '139' for Yakima vessel capacity, '197' for Tacoma vessel capacity. Used to calculate space availability percentage.
                              SpaceForArrivalTerminals:
                                type: array
                                nullable: true
                                items:
                                  type: object
                                  properties:
                                    TerminalID:
                                      type: integer
                                      description: Unique identifier for arrival terminal destination, as an integer ID. E.g., '10' for Friday Harbor terminal, '13' for Lopez Island terminal. Used to identify destination terminal for space availability.
                                    TerminalName:
                                      type: string
                                      nullable: true
                                      description: Human-readable name of arrival terminal destination, as a terminal name. E.g., 'Anacortes -> Friday Harbor' for multi-destination sailing, 'Seattle' for single destination, null when terminal name is unavailable. Provides destination identification for display.
                                    VesselID:
                                      type: integer
                                      description: Unique identifier for vessel planned to service departure, as an integer ID. E.g., '69' for Samish vessel, '38' for Yakima vessel, '17' for Kaleetan vessel. Used to identify which vessel operates departure.
                                    VesselName:
                                      type: string
                                      nullable: true
                                      description: Human-readable name of vessel planned to service departure, as a vessel name. E.g., 'Samish' for vessel 69, 'Yakima' for vessel 38, 'Kaleetan' for vessel 17, null when vessel name is unavailable. Provides vessel identification for display.
                                    DisplayReservableSpace:
                                      type: boolean
                                      description: Indicator whether reservable space information should be displayed, as a boolean. E.g., true for routes supporting reservations, false for routes without reservations. Used to determine if reservation space data should be shown.
                                    ReservableSpaceCount:
                                      type: integer
                                      nullable: true
                                      description: Remaining reservable vehicle spaces available on vessel, as an integer count. E.g., '45' for 45 reservable spaces remaining, '36' for 36 reservable spaces, null when reservations are not supported or count is unavailable. Used for reservation availability display.
                                    ReservableSpaceHexColor:
                                      type: string
                                      nullable: true
                                      description: Hex color code representing reservable space availability status, as a hex color. E.g., '#FFFF00' for yellow (limited availability), '#888888' for gray (not available), null when color is unavailable. Used for visual space availability indicators.
                                    DisplayDriveUpSpace:
                                      type: boolean
                                      description: Indicator whether drive-up space information should be displayed, as a boolean. E.g., true for routes with drive-up space tracking, false when drive-up space is not tracked. Used to determine if drive-up space data should be shown.
                                    DriveUpSpaceCount:
                                      type: integer
                                      nullable: true
                                      description: Remaining drive-up vehicle spaces available on vessel, as an integer count. E.g., '67' for 67 drive-up spaces remaining, '197' for 197 drive-up spaces, null when drive-up space is not tracked or count is unavailable. Used for drive-up availability display.
                                    DriveUpSpaceHexColor:
                                      type: string
                                      nullable: true
                                      description: Hex color code representing drive-up space availability status, as a hex color. E.g., '#00FF00' for green (good availability), '#FFFF00' for yellow (limited availability), null when color is unavailable. Used for visual space availability indicators.
                                    MaxSpaceCount:
                                      type: integer
                                      description: Maximum vehicle capacity on vessel making departure, as an integer count. E.g., '141' for Samish vessel capacity, '139' for Yakima vessel capacity, '197' for Tacoma vessel capacity. Used to calculate space availability percentage.
                                    ArrivalTerminalIDs:
                                      type: array
                                      nullable: true
                                      items:
                                        type: integer
                                      description: Array of arrival terminal IDs associated with this space count set, as terminal ID integers. E.g., array containing terminal 10 for single destination, array containing terminals 13, 10 for multi-destination sailing, null when terminal IDs are unavailable. Used to identify all destinations served by this space count.
                                  required:
                                    - TerminalID
                                    - TerminalName
                                    - VesselID
                                    - VesselName
                                    - DisplayReservableSpace
                                    - ReservableSpaceCount
                                    - ReservableSpaceHexColor
                                    - DisplayDriveUpSpace
                                    - DriveUpSpaceCount
                                    - DriveUpSpaceHexColor
                                    - MaxSpaceCount
                                    - ArrivalTerminalIDs
                                  description: Represents space availability information for arrival terminal destination including terminal/vessel identification, reservable space count and color, drive-up space count and color, maximum capacity, and arrival terminal IDs. E.g., Friday Harbor destination with 67 drive-up spaces (green) and 141 maximum capacity on Samish vessel. Used for real-time space availability display.
                                description: Array of space availability information for one or more arrival terminal destinations, as space for arrival terminal objects. E.g., array containing Friday Harbor destination with space counts, array containing multiple destinations for multi-destination sailing, null when space information is unavailable. Used for real-time space availability display by destination.
                            required:
                              - Departure
                              - IsCancelled
                              - VesselID
                              - VesselName
                              - MaxSpaceCount
                              - SpaceForArrivalTerminals
                            description: Represents departing space information including departure time, cancellation status, vessel details, maximum capacity, and space availability for arrival terminals. E.g., departure at 9:35 PM with Samish vessel (ID 69, capacity 141) and space information for Friday Harbor destination. Used for real-time departure space availability display.
                          description: Most recent departure sailing space information from terminal, as an array of departing space objects. E.g., array containing vessel details, departure times, and space availability for recent sailings, null or empty when departure data is unavailable. Used for real-time sailing space tracking and capacity monitoring.
                        IsNoFareCollected:
                          type: boolean
                          nullable: true
                          description: Indicator whether terminal lacks fare collection capability, as a boolean. E.g., null for terminals like Anacortes and Bainbridge Island that collect fares, true for terminals without fare collection. Used to determine fare collection availability and terminal conditions data reliability.
                        NoFareCollectedMsg:
                          type: string
                          nullable: true
                          description: Message explaining how lack of fare collection affects terminal conditions data, as a notification message. E.g., null for terminals with fare collection, present when terminal cannot collect fares. Used to inform users about data limitations for terminals without fare collection.
                      required:
                        - IsNoFareCollected
                        - NoFareCollectedMsg
                    - type: object
                      properties:
                        ParkingInfo:
                          type: string
                          nullable: true
                          description: Parking availability, rates, and policies for terminal, as HTML-formatted text. E.g., parking rates and payment options for Anacortes terminal, null when parking information is unavailable. Used for parking planning and cost estimation.
                        ParkingShuttleInfo:
                          type: string
                          nullable: true
                          description: Information about shuttle services connecting parking areas to terminal, as HTML-formatted text. E.g., null for terminals without parking shuttles, present when parking shuttles are available. Used for planning parking and terminal access.
                        AirportInfo:
                          type: string
                          nullable: true
                          description: Driving directions and travel time from airport to terminal, as HTML-formatted text. E.g., directions from Sea-Tac Airport to Anacortes terminal, null when airport information is unavailable. Used for airport-to-terminal route planning.
                        AirportShuttleInfo:
                          type: string
                          nullable: true
                          description: Information about shuttle services connecting airport to terminal, as HTML-formatted text. E.g., Bellair Airporter service information for Anacortes terminal, null when airport shuttles are unavailable. Used for airport-to-terminal transportation planning.
                        MotorcycleInfo:
                          type: string
                          nullable: true
                          description: Motorcycle staging, loading, and fare information for terminal, as HTML-formatted text. E.g., motorcycle loading procedures and staging areas for Anacortes terminal, null when motorcycle information is unavailable. Used for motorcycle rider planning and terminal procedures.
                        TruckInfo:
                          type: string
                          nullable: true
                          description: Truck requirements, oversized vehicle approval, and loading information for terminal, as HTML-formatted text. E.g., overweight vehicle travel approval requirements for Anacortes terminal, null when truck information is unavailable. Used for commercial vehicle planning and compliance.
                        BikeInfo:
                          type: string
                          nullable: true
                          description: Bicycle staging, loading procedures, and fare information for terminal, as HTML-formatted text. E.g., bicycle loading procedures and rack availability for Anacortes terminal, null when bicycle information is unavailable. Used for bicycle rider planning and terminal procedures.
                        TrainInfo:
                          type: string
                          nullable: true
                          description: Train service information connecting to terminal, as HTML-formatted text. E.g., null for terminals without train service, present when train connections are available. Used for multimodal transportation planning.
                        TaxiInfo:
                          type: string
                          nullable: true
                          description: Taxi service information for terminal, as HTML-formatted text. E.g., null for terminals without taxi information, present when taxi services are documented. Used for local transportation planning.
                        HovInfo:
                          type: string
                          nullable: true
                          description: Carpool and vanpool information including preferential loading requirements, as HTML-formatted text. E.g., carpool registration and loading procedures for Bainbridge Island terminal, null when HOV information is unavailable. Used for rideshare planning and preferential loading coordination.
                        TransitLinks:
                          type: array
                          nullable: true
                          items:
                            type: object
                            properties:
                              LinkURL:
                                type: string
                                nullable: true
                                description: URL to transit agency website or service page, as a transit URL. E.g., 'http://www.skagittransit.org/' for Skagit Transit, 'http://www.kitsaptransit.com/service/routed-buses' for Kitsap Transit, null when transit link is unavailable. Used for accessing transit agency information.
                              LinkName:
                                type: string
                                nullable: true
                                description: Human-readable name of transit agency, as a transit agency name. E.g., 'Skagit Transit' for Skagit Transit agency, 'Kitsap Transit' for Kitsap Transit agency, null when transit name is unavailable. Provides transit agency identification for display.
                              SortSeq:
                                type: integer
                                nullable: true
                                description: Preferred sort order for transit link display, as an integer. E.g., null when sort order is not specified. Lower values appear first when sorting transit links in ascending order. Used for transit link display ordering.
                            required:
                              - LinkURL
                              - LinkName
                              - SortSeq
                            description: Represents transit link information including transit agency URL, name, and sort order. E.g., Skagit Transit link (http://www.skagittransit.org/). Used for displaying transit agency connections and links.
                          description: Links to transit agencies providing service to terminal, as an array of transit link objects. E.g., array containing Skagit Transit link for Anacortes terminal, Kitsap Transit link for Bainbridge Island terminal, null or empty when no transit links are available. Used for multimodal transportation planning and transit connection information.
                      required:
                        - ParkingInfo
                        - ParkingShuttleInfo
                        - AirportInfo
                        - AirportShuttleInfo
                        - MotorcycleInfo
                        - TruckInfo
                        - BikeInfo
                        - TrainInfo
                        - TaxiInfo
                        - HovInfo
                        - TransitLinks
                    - type: object
                      properties:
                        WaitTimes:
                          type: array
                          nullable: true
                          items:
                            type: object
                            properties:
                              RouteID:
                                type: integer
                                nullable: true
                                description: Numeric ID of the route associated with the wait time.
                              RouteName:
                                type: string
                                nullable: true
                                description: Display name of the route associated with the wait time.
                              WaitTimeNotes:
                                type: string
                                nullable: true
                                description: Text notes detailing wait time conditions and tips for vehicles and passengers.
                                format: date-time
                              WaitTimeLastUpdated:
                                type: string
                                nullable: true
                                description: UTC datetime when the wait time information was last updated.
                                format: date-time
                              WaitTimeIVRNotes:
                                type: string
                                nullable: true
                                description: Wait time notes formatted for Interactive Voice Response systems.
                                format: date-time
                            required:
                              - RouteID
                              - RouteName
                              - WaitTimeNotes
                              - WaitTimeLastUpdated
                              - WaitTimeIVRNotes
                            description: Wait time information including route association, notes, IVR notes, and update date.
                          description: Current wait time information and arrival recommendations for terminal, as an array of wait time objects. E.g., array containing vehicle reservation requirements and arrival time recommendations for Anacortes terminal, null when wait time data is unavailable. Used for trip planning and arrival time guidance.
                      required:
                        - WaitTimes
                    - type: object
                      properties:
                        RealtimeIntroMsg:
                          type: string
                          nullable: true
                          description: Introductory message explaining real-time terminal conditions data display, as HTML-formatted text. E.g., message about approximate vehicle spaces available in holding area for Anacortes terminal, null when intro message is unavailable. Used to provide context for real-time conditions data.
                          format: date-time
                        AdditionalInfo:
                          type: string
                          nullable: true
                          description: Additional terminal information including hours, services, and general details, as HTML-formatted text. E.g., passenger booth hours and kiosk information for Anacortes terminal, null when additional information is unavailable. Used for comprehensive terminal information display.
                        LostAndFoundInfo:
                          type: string
                          nullable: true
                          description: Lost and found procedures, contact information, and retention policies for terminal, as HTML-formatted text. E.g., lost and found location and contact details for Anacortes terminal, null when lost and found information is unavailable. Used for lost item reporting and retrieval.
                        SecurityInfo:
                          type: string
                          nullable: true
                          description: Security plan information and safety policies for terminal, as HTML-formatted text. E.g., U.S. Coast Guard approved security plan information, null when security information is unavailable. Used for security awareness and compliance information.
                        ConstructionInfo:
                          type: string
                          nullable: true
                          description: Ongoing or planned construction activities affecting terminal, as HTML-formatted text. E.g., null for terminals without active construction, present when construction impacts terminal operations. Used for construction impact awareness and trip planning.
                        FoodServiceInfo:
                          type: string
                          nullable: true
                          description: Food service hours, locations, and availability for terminal, as HTML-formatted text. E.g., galley hours and cafe information for Anacortes terminal, null when food service information is unavailable. Used for meal planning and food service availability.
                        AdaInfo:
                          type: string
                          nullable: true
                          description: ADA accessibility features, elevator access, and accommodation information for terminal, as HTML-formatted text. E.g., overhead passenger ramp and elevator access information for Anacortes terminal, null when ADA information is unavailable. Used for accessibility planning and accommodation requests.
                        FareDiscountInfo:
                          type: string
                          nullable: true
                          description: Fare discount programs, eligibility requirements, and purchase information for terminal, as HTML-formatted text. E.g., senior and youth fare information for Anacortes terminal, null when fare discount information is unavailable. Used for fare planning and discount eligibility.
                        TallySystemInfo:
                          type: string
                          nullable: true
                          description: Tally system information for terminal operations, as HTML-formatted text. E.g., null for terminals without tally system documentation, present when tally system information is available. Used for operational information and system documentation.
                        ChamberOfCommerce:
                          type: object
                          nullable: true
                          properties:
                            LinkURL:
                              type: string
                              nullable: true
                              description: URL link to local chamber of commerce website, as a web URL. E.g., 'http://www.anacortes.org' for Anacortes Chamber of Commerce, null when chamber link is unavailable. Used for local business and visitor information.
                            LinkName:
                              type: string
                              nullable: true
                              description: Display name for local chamber of commerce, as a chamber name. E.g., 'Chamber of Commerce' for Anacortes, 'Bainbridge Island Chamber of Commerce' for Bainbridge Island, null when chamber name is unavailable. Used for display and identification.
                            SortSeq:
                              type: integer
                              nullable: true
                              description: Preferred display sort order for chamber of commerce link, as an integer sequence number. E.g., null for default sorting, numeric value when specific sort order is required. Used for controlling link display order.
                          required:
                            - LinkURL
                            - LinkName
                            - SortSeq
                          description: Chamber of commerce information including link URL, name, and sort order for terminal, as a chamber object. E.g., object with Anacortes Chamber of Commerce link, null when chamber information is unavailable. Used for local business and visitor information.
                        FacInfo:
                          type: string
                          nullable: true
                          description: Facility advisory committee contact information for terminal, as HTML-formatted text. E.g., Ferry Advisory Committee contact information, null when facility information is unavailable. Used for community participation and feedback.
                        ResourceStatus:
                          type: string
                          nullable: true
                          description: Resource status information for terminal operations, as a status string. E.g., null for terminals without resource status documentation, present when resource status information is available. Used for operational status tracking.
                        TypeDesc:
                          type: string
                          nullable: true
                          description: Terminal type classification description, as a type string. E.g., 'Passenger and Car' for terminals like Anacortes and Bainbridge Island, null when type description is unavailable. Used for terminal classification and display.
                        REALTIME_SHUTOFF_FLAG:
                          type: boolean
                          description: Indicator whether real-time conditions data is disabled for terminal, as a boolean. E.g., false for terminals with active real-time data, true when real-time data is shut off. Used to determine real-time data availability.
                        REALTIME_SHUTOFF_MESSAGE:
                          type: string
                          nullable: true
                          description: Message explaining why real-time conditions data is unavailable, as a status message. E.g., 'The Real-Time Conditions are unavailable due to technical difficulties' for terminals with shutoff flag true, null when real-time data is available. Used to inform users about real-time data status.
                          format: date-time
                        VisitorLinks:
                          type: array
                          nullable: true
                          items:
                            type: object
                            properties:
                              LinkURL:
                                type: string
                                nullable: true
                                description: URL to transit agency website or service page, as a transit URL. E.g., 'http://www.skagittransit.org/' for Skagit Transit, 'http://www.kitsaptransit.com/service/routed-buses' for Kitsap Transit, null when transit link is unavailable. Used for accessing transit agency information.
                              LinkName:
                                type: string
                                nullable: true
                                description: Human-readable name of transit agency, as a transit agency name. E.g., 'Skagit Transit' for Skagit Transit agency, 'Kitsap Transit' for Kitsap Transit agency, null when transit name is unavailable. Provides transit agency identification for display.
                              SortSeq:
                                type: integer
                                nullable: true
                                description: Preferred sort order for transit link display, as an integer. E.g., null when sort order is not specified. Lower values appear first when sorting transit links in ascending order. Used for transit link display ordering.
                            required:
                              - LinkURL
                              - LinkName
                              - SortSeq
                            description: Represents transit link information including transit agency URL, name, and sort order. E.g., Skagit Transit link (http://www.skagittransit.org/). Used for displaying transit agency connections and links.
                          description: Links to visitor information and tourism resources for terminal area, as an array of visitor link objects. E.g., empty array for terminals without visitor links, array with tourism resources when available. Used for visitor information and local attractions.
                      required:
                        - RealtimeIntroMsg
                        - AdditionalInfo
                        - LostAndFoundInfo
                        - SecurityInfo
                        - ConstructionInfo
                        - FoodServiceInfo
                        - AdaInfo
                        - FareDiscountInfo
                        - TallySystemInfo
                        - ChamberOfCommerce
                        - FacInfo
                        - ResourceStatus
                        - TypeDesc
                        - REALTIME_SHUTOFF_FLAG
                        - REALTIME_SHUTOFF_MESSAGE
                        - VisitorLinks
                  description: Comprehensive terminal information combining data from terminalBasics, terminalBulletins, terminalLocations, terminalTransports, and terminalWaitTimes endpoints.
              examples:
                sampleResponse:
                  summary: Sample response
                  description: Example of a successful response from the API (showing first item of 20 total)
                  value:
                    - TerminalID: 1
                      TerminalSubjectID: 111
                      RegionID: 1
                      TerminalName: Anacortes
                      TerminalAbbrev: ANA
                      SortSeq: 10
                      OverheadPassengerLoading: true
                      Elevator: false
                      WaitingRoom: true
                      FoodService: true
                      Restroom: true
                      Bulletins:
                        - BulletinTitle: Ana/SJs - Kaleetan to replace Samish this Sunday, Nov. 16
                          BulletinText: <p><span data-contrast="none">This Sunday, Nov. 16, the <em>Kaleetan</em> will replace the<em> Samish</em> on the Anacortes/San Juan Islands route. We do not expect service impacts during this vessel swap. Thank you for your patience as we move boats around the system to complete maintenance, repairs, and inspections.<br /></span><span data-ccp-props="{&quot;335557856&quot;:16777215,&quot;335559739&quot;:0}"><br /></span></p>
                          BulletinSortSeq: 2
                          BulletinLastUpdated: '2025-11-15T17:08:11.927Z'
                          BulletinLastUpdatedSortable: '20251115090811'
                      Latitude: 48.507351
                      Longitude: -122.677
                      AddressLineOne: 2100 Ferry Terminal Road
                      AddressLineTwo: null
                      City: Anacortes
                      State: WA
                      ZipCode: '98221'
                      Country: USA
                      MapLink: https://www.google.com/maps/place/Anacortes+Ferry+Terminal,+Anacortes,+WA+98221/@48.5060112,-122.6776819,15z/data=!4m2!3m1!1s0x5485790ea2748ed5:0x5c9a071494b5411f</p>
                      Directions: "From Interstate 5 take exit 230 and follow SR 20 westbound to Anacortes. After arriving in Anacortes continue north on Commercial Ave. Turn left on 12th St, which becomes Oakes Ave, and then continue to the ferry terminal.<p>\r\n<b>Dropping off or picking up?</b><p>\r\nWhen approaching the ferry terminal to pick up or drop off and not disabled, follow Ferry Terminal Road to the left of the auto toll booths to the parking lot near the terminal. There should be parking near the sidewalk where the buses turn around for a quick pick up/drop off.</p>"
                      DispGISZoomLoc:
                        - ZoomLevel: 0
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 1
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 2
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 3
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 4
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 5
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 6
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 7
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 8
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 9
                          Latitude: 48.507351
                          Longitude: -122.677
                        - ZoomLevel: 10
                          Latitude: 48.499482
                          Longitude: -122.664992
                        - ZoomLevel: 11
                          Latitude: 48.501302
                          Longitude: -122.668425
                        - ZoomLevel: 12
                          Latitude: 48.500619
                          Longitude: -122.678038
                        - ZoomLevel: 13
                          Latitude: 48.504032
                          Longitude: -122.679068
                        - ZoomLevel: 14
                          Latitude: 48.506022
                          Longitude: -122.678725
                        - ZoomLevel: 15
                          Latitude: 48.506591
                          Longitude: -122.678124
                        - ZoomLevel: 16
                          Latitude: 48.506591
                          Longitude: -122.677995
                        - ZoomLevel: 17
                          Latitude: 48.506612
                          Longitude: -122.678006
                      IsNoFareCollected: null
                      NoFareCollectedMsg: null
                      ParkingInfo: "Off-Peak rates effective October 1 through April 30, 2026:<br>\r\n<ul>\r\n<li>1 day rate  (car) - $8.00</li>\r\n<li>2 day rate (car) - $13.00</li>\r\n<li>3 day rate (car) - $15.00</li>\r\n<li>4 day rate (car) - $19.00</li>\r\n<li>7 day rate (car) - $24.00</li>\r\n<li>8 day rate (car) - $30.00</li>\r\n<li>9 day rate (car) - $35.00</li>\r\n<li>10 day rate (car) - $40.00</li>\r\n<li>14 day rate (car) - $46.00</li>\r\n<li>15 day rate (car) - $51.00</li>\r\n<li>16 day rate (car) - $57.00</li>\r\n<li>17 day rate (car) - $62.00</li>\r\n<li>21 day rate (car) - $67.00</li><p>\r\n\r\n\r\n\r\n<li>1 day rate (RV) - $13.00</li>\r\n<li>2 day rate (RV) - $24.00</li>\r\n<li>3 day rate (RV) - $28.00</li>\r\n<li>4 day rate (RV) - $92.00</li>\r\n<li>7 day rate (RV) - $46.00</li>\r\n<li>8 day rate (RV) - $57.00</li>\r\n<li>9 day rate (RV) - $67.00</li>\r\n<li>10 day rate (RV) - $78.00</li>\r\n<li>14 day rate (RV) - $87.00</li>\r\n<li>15 day rate (RV) - $98.00</li>\r\n<li>16 day rate (RV) - $112.00</li><p>\r\n\r\nThere are two ways to either initially pay for parking or to extend your current parking session remotely via your cell phone or mobile app:<p>\r\n\r\n<ul>Use the PayByPhone mobile app or call 1-888-680-7275.  The automated system will ask for the Station #1644, the Stall # you parked in and the number of day(s) needed.</ul><p>\r\n \r\n<b>Contact 509-295-6490 for additional parking information.</b></p>\r\n\r\nCustomers wishing to purchase a Monthly, Seasonal, or RV/Boat Storage permits, please call Diamond Parking Services at (206) 729-0590 or 1-800-828-4197 and press option 2. Customer Service Representatives are available Monday – Friday 7:30 am to 7:00 pm PST or by email at Monthly@DiamondParking.com<p>\r\n\r\nThere is no charge for disabled parking customers displaying a valid disabled parking placard or license plate in this parking lot only. It’s important to note that when all the sign posted ADA spaces are filled in this WSF lot, customers are allowed to park in any empty space in this lot, for free, with their ADA placard, except those spaces reserved for other uses (e.g., carpool and Ferry System employee vehicles).</p> "
                      ParkingShuttleInfo: null
                      AirportInfo: From the Seattle-Tacoma International Airport, allow a minimum of 2 1/2 hours driving time to Anacortes and plan to arrive at least 45 minutes before your ferry is scheduled to depart. Follow road signs to the freeway. Drive north to enter eastbound on 518. You will need to get on I-5 North, just follow the road signs. Take I-5 North for approximately 85 miles to state route 20. Take exit 230, turn left at the light and follow the signs into downtown Anacortes. Turn left on 12th Street. Our terminal is 4 to 5 miles outside town.</p>
                      AirportShuttleInfo: When traveling from Sea-Tac Airport to Anacortes there is a shuttle from Sea-Tac Airport to our Anacortes Dock. For schedule and fare information call 1-866-235-5247 or check <a href="http://www.airporter.com/" class="content_text">Bellair Airporter</a>.<p>Island Airporter is another service that provides transportation from Sea-Tac Airport to Friday Harbor. To contact them for fare and schedule information, call (360) 378-7438 or check <a href="http://www.islandairporter.com/"class=content_text">Island Airporter</a>.</p>
                      MotorcycleInfo: "While motorcycles are not, by Washington Administrative Code (WAC 468-300-700), a preferential loading category of users, they are often loaded prior to automobiles for operational and staging purposes. Arrival at the dock after vehicle load has commenced requires motorcycles to wait until all cars have been loaded for the next motorcycle loading opportunity. Motorcycles should proceed, while on the dock, at no more than 10 mph. Use caution when car decks are wet. The following information details specific staging for this terminal:<p>\r\n<strong>Entry/Staging:</strong><br>\r\nMotorcyclists queue, along with vehicles, in traffic line prior to tollbooths. Proceed to motorcycle staging area in front of holding lanes as directed by ticket seller or traffic attendant.<p>\r\n<strong>Loading:</strong><br>\r\nLoading order: bicycles, motorcycles, vehicles, late arriving motorcycles as space permits. \r\nSpace may be limited to 30 motorcycles per sailing.</p>\r\n\r\n"
                      TruckInfo: "Expect heavy truck traffic on the first 3 sailings in the morning. Trucks going standby are advised to travel between the 7:40 am to 11:00 am time frame.<p>WSF requires trucks with a gross vehicle weight of over 80,000 lbs and/or over 8’6” wide to have “travel approval” before crossing any of our routes.  Vessels on this route have a limited height clearance and trucks may be loaded out of sequence.<p>\r\nTrucks that have a gross vehicle weight of over 80,000 lbs but are hauling less than 80,000 lbs will need to provide a weight slip.<p>\r\nPlease fill out our <A HREF=\"https://wsdot.wa.gov/ferries/rider-information/trucks\" class=\"content_text\">Oversized/Overweight Vehicle Travel</A> form and email it to wsfinfo@wsdot.wa.gov. Please allow three business days for completion and approval. You can contact us at anytime for status updates at (206)464-6400 (Seattle).<p>The Canada Border Service Agency does not provide Commercial Services at the Sidney Terminal, as this office is not a designated commercial office.</p>"
                      BikeInfo: "Approaching the Anacortes Terminal, you will arrive at the vehicle tollbooths first on the right. Bicyclists may bypass these and the line of vehicle traffic at the vehicle tollbooths to get onto the ferry dock when the passenger tollbooth in the terminal is open, but must go through a vehicle tollbooth if the terminal and passenger tollbooth are closed. Signage at the vehicle tollbooth will indicate if the passenger tollbooth is open. If passenger booth is open, bicyclists should secure their bikes at the terminal and go into the terminal to purchase their tickets.<p>\r\nThere is one bike rack at the terminal which holds 12 bikes. Bicyclists should arrive 20 minutes prior to departure time to be loaded at the beginning of loading process to be certain they are loaded for their specific destination and multi-destination sailings. If a bicyclist arrives after vehicle loading has begun, they may not be loaded for their desired destination.</p>"
                      TrainInfo: null
                      TaxiInfo: null
                      HovInfo: null
                      TransitLinks:
                        - LinkURL: http://www.skagittransit.org/
                          LinkName: Skagit Transit
                          SortSeq: null
                      WaitTimes:
                        - RouteID: null
                          RouteName: null
                          WaitTimeNotes: 'Vehicle reservations to the San Juan Islands are available at www.takeaferry.com or by calling 511, and must be made at least 2 hours prior to sailing time.  A 45 to 60 minute advance arrival is advised for reservation holders. Reservation holders who check in later than 30 minutes prior to sailing time will travel stand by. Walk-on passengers should arrive at least 15 minutes prior to departure sailing. '
                          WaitTimeLastUpdated: '2020-08-18T19:31:10.000Z'
                          WaitTimeIVRNotes: Vehicle reservations to the San Juan Islands are available online or by speaking to an information agent, and must be made at least 2 hours prior to sailing time.  A 45 to 60 minute advance arrival is advised for reservation holders. Reservation holders who check in later than 30 minutes prior to sailing time will travel stand by. Walk on passengers should arrive at least 15 minutes prior to departure.  To speak with an information agent please press zero.
                      RealtimeIntroMsg: <strong>Approximate Vehicle Spaces Available in Holding Area</strong><br /><em>Drive-up shows the approximate number of available unreserved spaces per sailing.  A negative number indicates the estimated number of vehicles beyond our vessel capacity that are currently through the tollbooth and parked in the holding area. We usually get 5-10 additional drive-up vehicles than the number shown due to reservation no-shows.</em></p>
                      AdditionalInfo: "<b>Passenger Booth Hours</b><p>\r\nThe passenger ticket booth in the terminal waiting room will be open:<p>\r\n\r\n<ul style=\"margin-top:0; margin-bottom:0;\">\r\n<li>Saturday - Thursday:&emsp;5:10 am to 9:00 pm<br>\r\n<li>Friday:&ensp;5:00 am to 11:00 pm<br></ul><p>\r\nThe overhead walkway will be operated:<p>\r\n<li>Daily:&emsp;5:35 am to 9:30 pm<br>\r\n\r\nWhen the passenger ticket booth is closed, full-fare walk on tickets may be purchased with a credit card from the Kiosk in the Terminal. All other transactions (checks not accepted) must be purchased at the Auto Toll Booth.<p><b>\r\n<p>\r\n\r\nPlease note: <b>Senior and youth tickets are not available at the kiosk</b> and must be purchased from the Auto Toll Booth when the Passenger Booth is closed.</p>"
                      LostAndFoundInfo: Lost and found items on this route are turned in to the Anacortes ferry terminal. Due to storage limitations, found items are held for 10 days from the date they were found. Our Information Agents can assist you with lost and found inquiries from 7:00 am to 5:30 pm (daily) at (206) 464-6400 or 1-888-808-7977.</p>
                      SecurityInfo: WSF has implemented a U.S. Coast Guard approved security plan, for more information please visit our <a href="https://wsdot.wa.gov/ferries/rider-information/safety" class="content_text"><strong>Safety and Security</a></strong> page.</p>
                      ConstructionInfo: null
                      FoodServiceInfo: "<p><b>Galley Hours</b><p>\r\n<li> (Vessel #1)</li>\r\n<li>5:30am – 8:00 pm Daily</li>\r\n<b> (Vessel #2)</li>\r\n<li>7:45 am – 7:15 pm Monday - Thursday </li>\r\n<li>7:45 am – 10:45 pm Fri, Sat & Sun </li>\r\n<b> (Vessel #3)</li>\r\n<li>5:45a.m. – 8:30 pm Daily</li><br>\r\n\r\nCafé Hours: Monday through Sunday 6am to 6pm)</a></strong><p>\r\n\r\nDockside Hours:<br>\r\nThursday through Monday 8am to 6pm</li>\r\nTuesday & Wednesday 9:30am to 6pm</li><br>\r\n\r\nNews/Book Stand: Same hours as the café. (Monday through Sunday 6am to 6pm)<p>"
                      AdaInfo: "Disabled passengers traveling without a vehicle will load and offload at the Anacortes terminal using the overhead passenger ramp, however, at all of the island terminals, walk-on passengers will load and off load via the car deck. All vessels on these routes have elevator access.<p>\r\nFor passengers traveling in a vehicle who need elevator access, or who need extra space for a lift, please alert the ticket seller at the terminal prior to boarding the ferry so that we can meet your needs and make your trip as pleasant as possible.</p><p>"
                      FareDiscountInfo: "We offer seniors (65+), persons with disabilities and passengers with a Medicare card, or other eligibility verification, travel at half the regular passenger fare rate. Children and youth under the age of 19 travel free, although teenagers behind the wheel of a motor vehicle must pay the adult vehicle and driver fare.<p>\r\nMulti-ride cards are good for 90 days from the date of purchase and are <b>non-refundable</b>. For more information check <a href=\"http://www.wsdot.wa.gov/ferries/fares/\" class=\"content_text\"><strong>Fares.</a></strong><p>\r\n<b>Fare Purchase/Redemption</b><br>\r\nPurchase and redeem tickets at the auto tollbooths.  Tickets may be purchased at the passenger booth, at the kiosk inside the terminal waiting room, or online in advance.<p>\r\nFares vary depending on destination. Please check fare information online or call 1-888-808-7977 (WA & B.C.) or (206) 464-6400.<p>\r\nRoundtrip redemption occurs at auto tollbooth.</p>\r\n "
                      TallySystemInfo: null
                      ChamberOfCommerce:
                        LinkURL: http://www.anacortes.org
                        LinkName: Chamber of Commerce
                        SortSeq: null
                      FacInfo: Contact the <a href="https://wsdot.wa.gov/ferries/about-us/community-participation" class="content_text">Ferry Advisory Committee</a> chair representing your community with suggestions or concerns about ferry service.</p>
                      ResourceStatus: null
                      TypeDesc: Passenger and Car
                      REALTIME_SHUTOFF_FLAG: false
                      REALTIME_SHUTOFF_MESSAGE: 'The Real-Time Conditions are unavailable due to technical difficulties. '
                      VisitorLinks: []
  /terminalVerbose/{TerminalID}:
    get:
      summary: Get comprehensive information for a specific terminal by ID.
      operationId: fetchTerminalVerboseByTerminalId
      tags:
        - terminal-verbose
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { fetchTerminalVerboseByTerminalId } from 'ws-dottie/wsf-terminals/core';

            const data = await fetchTerminalVerboseByTerminalId({
              params: {
                "TerminalID": 4
              },
              fetchMode: 'native',
              validate: true
            });

            console.log(data);
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchTerminalVerboseByTerminalIdOutput'
              examples:
                sampleResponse:
                  summary: Sample response
                  description: Example of a successful response from the API
                  value:
                    TerminalID: 4
                    TerminalSubjectID: 102
                    RegionID: 4
                    TerminalName: Bremerton
                    TerminalAbbrev: BRE
                    SortSeq: 30
                    OverheadPassengerLoading: true
                    Elevator: true
                    WaitingRoom: true
                    FoodService: true
                    Restroom: true
                    Bulletins:
                      - BulletinTitle: Sea/Brem - Chimacum to replace Kaleetan this Sunday, Nov. 16
                        BulletinText: "<p><span data-contrast=\"none\" xml:lang=\"EN-US\" lang=\"EN-US\" class=\"TextRun SCXW106257461 BCX8\"><span class=\"NormalTextRun SCXW106257461 BCX8\">This Sunday, Nov. 16, the <em>Chimacum</em> will replace the </span><em><span class=\"NormalTextRun SCXW106257461 BCX8\">Kaleetan</span></em><span class=\"NormalTextRun SCXW106257461 BCX8\"> on the </span></span><a class=\"Hyperlink SCXW106257461 BCX8\" href=\"https://wsdot.com/ferries/schedule/scheduledetailbyroute.aspx?route=sea-br\" target=\"_blank\" rel=\"noreferrer noopener\"><span data-contrast=\"none\" xml:lang=\"EN-US\" lang=\"EN-US\" class=\"TextRun Underlined SCXW106257461 BCX8\"><span class=\"NormalTextRun SCXW106257461 BCX8\" data-ccp-charstyle=\"Hyperlink\">Seattle/Bremerton</span></span></a><span data-contrast=\"none\" xml:lang=\"EN-US\" lang=\"EN-US\" class=\"TextRun SCXW106257461 BCX8\"><span class=\"NormalTextRun SCXW106257461 BCX8\"> route. We do not expect service impacts during this vessel swap. Thank you for your patience as we move boats around the system to complete maintenance, repairs, and inspections.</span></span><span class=\"EOP SCXW106257461 BCX8\" data-ccp-props=\"{&quot;335557856&quot;:16777215,&quot;335559739&quot;:0}\">\_<br /><br /></span></p>"
                        BulletinSortSeq: 2
                        BulletinLastUpdated: '2025-11-15T17:12:31.130Z'
                        BulletinLastUpdatedSortable: '20251115091231'
                      - BulletinTitle: 'Sea/Brem-ADA Alert: Elevator on the Kaleetan is temporarily unavailable.'
                        BulletinText: "<p>The elevator on the <em>Kaleetan</em> is temporarily unavailable. There are facilities located on the car deck level of the ferry. \_Updates will occur when more information is available.</p>"
                        BulletinSortSeq: 8
                        BulletinLastUpdated: '2025-11-12T12:42:41.987Z'
                        BulletinLastUpdatedSortable: '20251112044241'
                      - BulletinTitle: Sea/Brem - Changes to Seattle/Bremerton Route Schedule This Winter
                        BulletinText: "<p><span data-contrast=\"none\">For our upcoming winter sailing season starting Dec. 28, there will be changes to the </span><a href=\"https://wsdot.com/ferries/schedule/scheduledetailbyroute.aspx?route=sea-br\"><span data-contrast=\"none\">Seattle/Bremerton route schedule</span></a><span data-contrast=\"auto\"> due to construction. </span><span data-contrast=\"none\">While we're replacing two in-water terminal structures at Bremerton in January, we cannot tie up two boats there overnight. The route’s #1 boat will dock in Seattle during this work.</span><span data-ccp-props=\"{&quot;335557856&quot;:16777215,&quot;335559739&quot;:0}\">\_</span></p>\r\n<p><span data-contrast=\"none\">Winter schedule changes from Dec. 28, 2025 through March 21, 2026:</span><span data-ccp-props=\"{&quot;335557856&quot;:16777215,&quot;335559739&quot;:0}\">\_</span></p>\r\n<ul>\r\n<li><span data-contrast=\"none\">No 4:50 a.m. Bremerton departure (early morning commuters can take the </span><a href=\"https://www.kitsaptransit.com/service/fast-ferry/bremerton-fast-ferry\"><span data-contrast=\"none\">Kitsap Fast Ferry’</span></a><span data-contrast=\"none\">s 4:40 a.m. sailing).</span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335557856&quot;:16777215,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\_</span></li>\r\n<li><span data-contrast=\"none\">The 3:00 p.m. out of Bremerton will leave at 2:40 p.m.</span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335557856&quot;:16777215,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\_</span></li>\r\n<li><span data-contrast=\"none\">Added 10:15 p.m. Bremerton to Seattle sailing.</span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335557856&quot;:16777215,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\_</span></li>\r\n<li><span data-contrast=\"none\">On Sundays, the 8:35 a.m. Seattle and 9:50 a.m. Bremerton departures are canceled for refueling (normally done overnight in Bremerton).</span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335557856&quot;:16777215,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\_</span></li>\r\n</ul>\r\n<p><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335557856&quot;:16777215,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\_</span><span data-contrast=\"none\">We will send additional reminders about these schedule changes, including when they are live on the schedule webpage.<br /></span></p>"
                        BulletinSortSeq: 5
                        BulletinLastUpdated: '2025-10-17T17:51:24.437Z'
                        BulletinLastUpdatedSortable: '20251017105124'
                    Latitude: 47.561847
                    Longitude: -122.624089
                    AddressLineOne: 211 1st Street
                    AddressLineTwo: null
                    City: Bremerton
                    State: WA
                    ZipCode: '98337'
                    Country: USA
                    MapLink: https://www.google.com/maps/place/Bremerton+Ferry+Terminal/@47.563433,-122.625944,17z/data=!3m1!4b1!4m2!3m1!1s0x549037829490e63f:0x69f8efd7ef8a5a9f
                    Directions: "Northbound on Highway 3:  Exit SR 3 onto SR 304 which is marked Bremerton and features a ferry icon. Follow SR 304 (which becomes Callow) to Burwell (still SR 304)and follow signs to terminal.<p>\r\nSouthbound on Highway 3:  Exit SR 3 at Kitsap Way (SR 310). Continue on SR 310 as it becomes 6th street. Turn right onto Pacific Ave, then left to 1st street which leads directly to tollbooths.<p>\r\nPost-Tunnel Construction: The 959-foot-long tunnel routes off-loading vehicle traffic from the ferry terminal to Burwell Street, resulting in improved pedestrian safety and reduced congestion in Bremerton's waterfront area.<p>\r\n<b>Exiting from the Bremerton Ferry</b><p>\r\nTo Downtown Bremerton: exit the tunnel, go right on Park ave., and go right on 4th Ave.<p>\r\nTo SR 3 Silverdale/Port Orchard: exit the tunnel, continue west on SR304/Burwell St., follow signs to SR 3/Silverdale/Port Orchard.<p>\r\nTo East Bremerton: exit the tunnel, go right on Warren Ave.<p>\r\n<b>No pedestrians or bicycles allowed in tunnel.</b><p>\r\n<b>Dropping off or picking up?</b><br>\r\nThe pick up or drop off points are located on 1st street and 2nd street just north of the terminal. "
                    DispGISZoomLoc:
                      - ZoomLevel: 0
                        Latitude: 47.561847
                        Longitude: -122.624089
                      - ZoomLevel: 1
                        Latitude: 47.561847
                        Longitude: -122.624089
                      - ZoomLevel: 2
                        Latitude: 47.561847
                        Longitude: -122.624089
                      - ZoomLevel: 3
                        Latitude: 47.561847
                        Longitude: -122.624089
                      - ZoomLevel: 4
                        Latitude: 47.561847
                        Longitude: -122.624089
                      - ZoomLevel: 5
                        Latitude: 47.561847
                        Longitude: -122.624089
                      - ZoomLevel: 6
                        Latitude: 47.561847
                        Longitude: -122.624089
                      - ZoomLevel: 7
                        Latitude: 47.561847
                        Longitude: -122.624089
                      - ZoomLevel: 8
                        Latitude: 47.561847
                        Longitude: -122.624089
                      - ZoomLevel: 9
                        Latitude: 47.561847
                        Longitude: -122.624089
                      - ZoomLevel: 10
                        Latitude: 47.561847
                        Longitude: -122.624089
                      - ZoomLevel: 11
                        Latitude: 47.561418
                        Longitude: -122.632943
                      - ZoomLevel: 12
                        Latitude: 47.56165
                        Longitude: -122.629167
                      - ZoomLevel: 13
                        Latitude: 47.56304
                        Longitude: -122.625219
                      - ZoomLevel: 14
                        Latitude: 47.562345
                        Longitude: -122.624875
                      - ZoomLevel: 15
                        Latitude: 47.562026
                        Longitude: -122.624789
                      - ZoomLevel: 16
                        Latitude: 47.5622
                        Longitude: -122.624854
                      - ZoomLevel: 17
                        Latitude: 47.562207
                        Longitude: -122.624843
                    IsNoFareCollected: null
                    NoFareCollectedMsg: null
                    ParkingInfo: "There are many parking lots near the Bremerton terminal. All are within 3.5 blocks of the terminal. Time and price options are posted at each lot. All offer 24-hour rates for overnight or extended stays. Parking is also available under the Bremerton Hotel/Conference Center and city garage three blocks north of terminal. For more information contact Impark Parking Services at 360-616-4808 or at the <a href=\"http://www.ci.bremerton.wa.us/453/Parking\" class=\"content_text\"><strong>City of Bremerton</a></strong> website.<p>\r\n\r\nThe Kitsap Transit bus routes to the Bremerton Ferry Terminal are 11, 15, 20, 21, 22, 24, 25, & 26.  For more detailed bus information, please visit Kitsap Transit's <a href=\"http://www.kitsaptransit.com/rider-resources/bus-transfer-centers\" class=\"content_text\"><strong>Rider Resources</a></strong> page. <p>\r\n\r\nPickup and dropoff information at the Bremerton Transit Center is available <a href=\"http://www.kitsaptransit.com/uploads/images/staging/crbdisabledparkingmap.gif\"\r\n<a href=\"\"class=\"content_text\">here</a>."
                    ParkingShuttleInfo: null
                    AirportInfo: null
                    AirportShuttleInfo: "The <a href=\"http://www.kitsapairporter.com/\" class=\"content_text\">Kitsap Airporter</a> provides bus service from Sea-Tac International Airport to the Kitsap Peninsula.<p>\r\n "
                    MotorcycleInfo: "While motorcycles are not, by Washington Administrative Code (WAC 468-300-700), a preferential loading category of users, they are often loaded prior to automobiles for operational and staging purposes. Arrival at the dock after vehicle load has commenced requires motorcycles to wait until all cars have been loaded for the next motorcycle loading opportunity. Motorcycles should proceed, while on the dock, at no more than 10 mph. Use caution when car decks are wet. The following information details specific staging for this terminal:<p>\r\n<b>Motorcycle Fare Purchase/Redemption</b><br>\r\nPurchase tickets at the auto tollbooths, at the kiosk inside the terminal waiting room, or online in advance.<p>\r\n<b>Motorcycle Entry/Staging</b><br>\r\nQueue with automobiles prior to tollbooth. Sales and fare collection occur at tollbooth main window, no transactions through back window. Staging varies by time of day and slip in use, ask the ticket sellers or traffic attendants where to stage.<p>\r\n<b>Motorcycle Loading</b><br>\r\nLoading order: Bicycles, motorcycles, vehicles, late arriving motorcycles as space permits.<br>\r\nDuring commute hours, a motorcycle mid-load may occur.<p>\r\n<b>Motorcycle Special Communication</b><br>\r\nFor motorcycles arriving after vehicle load concludes, space availability will determine ability to board sailing.\r\n"
                    TruckInfo: "WSF requires trucks with a gross vehicle weight of over 80,000 lbs and/or over 8’6” wide to have “travel approval” before crossing any of our routes.  Vessels on this route have a limited height clearance and trucks may be loaded out of sequence.<p>\r\nTrucks that have a gross vehicle weight of over 80,000 lbs but are hauling less than 80,000 lbs will need to provide a weight slip.<p>\r\nPlease fill out our <A HREF=\"https://wsdot.wa.gov/ferries/rider-information/trucks\" class=\"content_text\">Oversized/Overweight Vehicle Travel</A> form and email it to wsfinfo@wsdot.wa.gov. Please allow three business days for completion and approval. You can contact us at anytime for status updates at (206)464-6400.</p>"
                    BikeInfo: "There is no payment for passengers or bicycles traveling from Bremerton to Seattle. Bicyclists may bypass the line of vehicle traffic to get onto the ferry dock. A rider does not need to stop at the tollbooth traveling eastbound. Bicyclists should arrive 20 minutes prior to departure time to be loaded at the beginning of loading process. If a bicyclist arrives after vehicle loading has begun, they will be loaded at the end of the load. There are five racks at the terminal which hold 28 bikes.<p>\r\n \r\n"
                    TrainInfo: null
                    TaxiInfo: null
                    HovInfo: "Carpool/Vanpools must be ticketed and in line 10 minutes before scheduled sailing time to receive preferential loading. If you are late, you will be loaded on a space available basis at the end of the loading. \r\nFor information or to register for our rideshare program see our<a href=\"https://wsdot.wa.gov/ferries/rider-information/groups-events/carpools-vanpools\" class=\"content_text\">carpools and vanpools</a> page. </p>"
                    TransitLinks:
                      - LinkURL: http://www.kitsaptransit.com/service/routed-buses
                        LinkName: Kitsap Transit
                        SortSeq: null
                      - LinkURL: http://www.kitsaptransit.com/service/category/foot-ferry
                        LinkName: Kitsap Transit Foot Ferry
                        SortSeq: null
                    WaitTimes:
                      - RouteID: null
                        RouteName: null
                        WaitTimeNotes: The morning departures through the 7:20am sailing are the most heavily traveled with vehicle traffic. Vehicle drivers are advised to arrive 45-60 minutes prior to sailing. In the afternoon the 3:00 p.m. sailing may be busy with a 30 minute advance arrival suggested. For non-peak travel, a 20 minute advance arrival is suggested.  Walk-on passengers should arrive at least 15 minutes prior to sailing.
                        WaitTimeLastUpdated: '2020-08-18T19:31:10.000Z'
                        WaitTimeIVRNotes: The morning departures through the 7 20 AM sailing are the most heavily traveled with vehicle traffic. Vehicle drivers are advised to arrive 45 to 60 minutes prior to sailing. In the afternoon the 3 PM sailing may be busy with a 30 minute advance arrival suggested. For non peak travel, a 20 minute advance arrival is suggested.  Walk on Passengers should arrive at least 15 minutes prior to sailing.
                    RealtimeIntroMsg: null
                    AdditionalInfo: null
                    LostAndFoundInfo: "If you lose something on this route, it will be taken to the customer information booth at the Seattle Ferry Terminal (Colman Dock). The booth is open every day from 9:00 a.m. to 7:00 p.m. Any lost items will be kept for 30 days.<p>\r\n\r\nYou can call (206) 515-3439 or email WSFLost_Found@wsdot.wa.gov for help from 9:00 a.m. to 5:00 p.m., Monday to Friday. If you contact us outside these hours, we will reply the next business day.<p>\r\n\r\nOur Information Agents are also available to help with lost and found questions from 7:00 a.m. to 5:30 p.m. every day at (206) 464-6400 or 1-888-808-7977. "
                    SecurityInfo: WSF has implemented a U.S. Coast Guard approved security plan, for more information please visit our <a href="https://wsdot.wa.gov/ferries/rider-information/safety" class="content_text"><strong>Safety and Security</a></strong> page.</p>
                    ConstructionInfo: null
                    FoodServiceInfo: "<b>Galley Hours <p>(Bremerton Route - Vessel #1)</b>\r\n<li>4:45 a.m. - 9:30 p.m. Daily</li><p>\r\n<b>Galley Hours <p>(Bremerton Route - Vessel #2)</b>\r\n<li>6:15 a.m. - 8:15 p.m. Daily</li>"
                    AdaInfo: "For more details on how to drop off/pickup at the Bremerton Transit Center for disabled passengers please check <a href=\"http://kitsaptransit.com/uploads/images/staging/crbdisabledparkingmap.gif\"class=\"content_text\">Disabled Pick-Up/Drop-off Map.</a><p>\r\n"
                    FareDiscountInfo: "We offer seniors (65+), persons with disabilities and passengers with a Medicare card, or other eligibility verification, travel at half the regular passenger fare rate. Children and youth under the age of 19 travel free, although teenagers behind the wheel of a motor vehicle must pay the adult vehicle and driver fare.<p>\r\nMulti-ride cards are good for 90 days from the date of purchase and are <b>non-refundable</b>.<p>For more information check <a href=\"http://www.wsdot.wa.gov/ferries/fares/\" class=\"content_text\"><strong>Fares.</a></strong><p>\r\n<b>Fare Purchase/Redemption</b><br>\r\nPurchase and redeem tickets at the auto tollbooths.  Tickets may be purchased at the passenger booth, or at the kiosk inside the terminal waiting room, or online in advance.<br><p>\r\n<b>Pre-purchasing Wave2Go tickets does not guarantee a space on the vessel.</b>"
                    TallySystemInfo: null
                    ChamberOfCommerce:
                      LinkURL: http://www.bremertonchamber.org/
                      LinkName: Bremerton Chamber of Commerce
                      SortSeq: null
                    FacInfo: Contact the <a href="https://wsdot.wa.gov/ferries/about-us/community-participation" class="content_text">Ferry Advisory Committee</a> chair representing your community with suggestions or concerns about ferry service.</p>
                    ResourceStatus: null
                    TypeDesc: Passenger and Car
                    REALTIME_SHUTOFF_FLAG: false
                    REALTIME_SHUTOFF_MESSAGE: 'The Approximate Vehicle Spaces Available in Holding Area tool is currently unavailable due to technical issues. '
                    VisitorLinks: []
  /terminalWaitTimes:
    get:
      summary: List wait time information for all terminals.
      operationId: fetchTerminalWaitTimes
      tags:
        - terminal-wait-times
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { fetchTerminalWaitTimes } from 'ws-dottie/wsf-terminals/core';

            const data = await fetchTerminalWaitTimes({
              fetchMode: 'native',
              validate: true
            });

            console.log(data);
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    TerminalID:
                      type: integer
                      description: Numeric ID of the terminal.
                    TerminalSubjectID:
                      type: integer
                      description: Numeric ID of the terminal in the WSF subject management system.
                    RegionID:
                      type: integer
                      description: Numeric ID of the geographical region where the terminal is located.
                    TerminalName:
                      type: string
                      nullable: true
                      description: Display name of the terminal.
                    TerminalAbbrev:
                      type: string
                      nullable: true
                      description: Abbreviation code for the terminal.
                    SortSeq:
                      type: integer
                      description: Display sort order; lower values appear first in lists.
                    WaitTimes:
                      type: array
                      nullable: true
                      items:
                        type: object
                        properties:
                          RouteID:
                            type: integer
                            nullable: true
                            description: Numeric ID of the route associated with the wait time.
                          RouteName:
                            type: string
                            nullable: true
                            description: Display name of the route associated with the wait time.
                          WaitTimeNotes:
                            type: string
                            nullable: true
                            description: Text notes detailing wait time conditions and tips for vehicles and passengers.
                            format: date-time
                          WaitTimeLastUpdated:
                            type: string
                            nullable: true
                            description: UTC datetime when the wait time information was last updated.
                            format: date-time
                          WaitTimeIVRNotes:
                            type: string
                            nullable: true
                            description: Wait time notes formatted for Interactive Voice Response systems.
                            format: date-time
                        required:
                          - RouteID
                          - RouteName
                          - WaitTimeNotes
                          - WaitTimeLastUpdated
                          - WaitTimeIVRNotes
                        description: Wait time information including route association, notes, IVR notes, and update date.
                      description: Array of wait time information associated with the terminal.
                  required:
                    - TerminalID
                    - TerminalSubjectID
                    - RegionID
                    - TerminalName
                    - TerminalAbbrev
                    - SortSeq
                    - WaitTimes
                  description: Terminal wait time information including terminal identification and wait time list.
              examples:
                sampleResponse:
                  summary: Sample response
                  description: Example of a successful response from the API (showing first item of 20 total)
                  value:
                    - TerminalID: 1
                      TerminalSubjectID: 111
                      RegionID: 1
                      TerminalName: Anacortes
                      TerminalAbbrev: ANA
                      SortSeq: 10
                      WaitTimes:
                        - RouteID: null
                          RouteName: null
                          WaitTimeNotes: 'Vehicle reservations to the San Juan Islands are available at www.takeaferry.com or by calling 511, and must be made at least 2 hours prior to sailing time.  A 45 to 60 minute advance arrival is advised for reservation holders. Reservation holders who check in later than 30 minutes prior to sailing time will travel stand by. Walk-on passengers should arrive at least 15 minutes prior to departure sailing. '
                          WaitTimeLastUpdated: '2020-08-18T19:31:10.000Z'
                          WaitTimeIVRNotes: Vehicle reservations to the San Juan Islands are available online or by speaking to an information agent, and must be made at least 2 hours prior to sailing time.  A 45 to 60 minute advance arrival is advised for reservation holders. Reservation holders who check in later than 30 minutes prior to sailing time will travel stand by. Walk on passengers should arrive at least 15 minutes prior to departure.  To speak with an information agent please press zero.
  /terminalWaitTimes/{TerminalID}:
    get:
      summary: Get wait time information for a specific terminal by ID.
      operationId: fetchTerminalWaitTimesByTerminalId
      tags:
        - terminal-wait-times
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { fetchTerminalWaitTimesByTerminalId } from 'ws-dottie/wsf-terminals/core';

            const data = await fetchTerminalWaitTimesByTerminalId({
              params: {
                "TerminalID": 11
              },
              fetchMode: 'native',
              validate: true
            });

            console.log(data);
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchTerminalWaitTimesByTerminalIdOutput'
              examples:
                sampleResponse:
                  summary: Sample response
                  description: Example of a successful response from the API
                  value:
                    TerminalID: 11
                    TerminalSubjectID: 116
                    RegionID: 2
                    TerminalName: 'Coupeville '
                    TerminalAbbrev: COU
                    SortSeq: 40
                    WaitTimes:
                      - RouteID: null
                        RouteName: null
                        WaitTimeNotes: WSF recommends reservation holders arrive 30-45 minutes prior to departure to ensure timely processing and boarding. Reservations for vehicles and motorcycles can be made at www.takeaferry.com or by calling 5-1-1 at least two hours prior to departure. Walk-on passengers should arrive at least 15 minutes prior to departure.
                        WaitTimeLastUpdated: '2020-08-18T19:31:10.000Z'
                        WaitTimeIVRNotes: W S F recommends reservation holders arrive 30 to 45 minutes prior to departure to ensure timely processing and boarding. Reservations for vehicles and motorcycles can be made online or by speaking to an information agent at least two hours prior to departure. Walk on passengers should arrive at least 15 minutes prior to departure.
tags:
  - name: cache-flush-date-terminals
    description: Cache invalidation timestamp for static wsf-terminals data.
    x-description: Timestamp indicating when static endpoint data for the wsf-terminals API was last updated. Use this endpoint to determine when to invalidate cached terminal information. When the returned date changes, refresh your cached data. Polled automatically by ws-dottie useQuery hooks.
    x-cacheStrategy: STATIC
    x-useCases:
      - Detect when static terminal data has changed and invalidate caches.
      - Poll periodically to refresh cached terminal information.
      - Coordinate cache invalidation across multiple terminal endpoints.
  - name: terminal-basics
    description: Essential terminal details including identification, amenities, and regional assignments.
    x-description: Basic terminal information for Washington State Ferry terminals including IDs, names, abbreviations, amenities (overhead passenger loading, elevator, waiting room, food service, restrooms), and sort order. Use the cacheFlushDate endpoint for this API to determine when to invalidate cached data for this group.
    x-cacheStrategy: STATIC
    x-useCases:
      - Display terminal lists with basic identification and amenities.
      - Plan ferry trips with accessibility and facility information.
      - Filter terminals by region or amenities.
  - name: terminal-bulletins
    description: Service alerts and notifications for ferry terminals.
    x-description: Important notices and alerts associated with Washington State Ferry terminals including service updates, travel advisories, and critical announcements. Use the cacheFlushDate endpoint for this API to determine when to invalidate cached data for this group.
    x-cacheStrategy: STATIC
    x-useCases:
      - Display terminal alerts and service notices in rider apps.
      - Show travel advisories and critical announcements.
      - Monitor terminal-specific and system-wide notifications.
  - name: terminal-locations
    description: Geographical location data for ferry terminals.
    x-description: Location information for Washington State Ferry terminals including coordinates, addresses, map links, driving directions, and GIS zoom-level coordinates. Use the cacheFlushDate endpoint for this API to determine when to invalidate cached data for this group.
    x-cacheStrategy: STATIC
    x-useCases:
      - Display terminal locations on maps and navigation systems.
      - Provide driving directions and address information.
      - Integrate with GIS mapping applications.
  - name: terminal-sailing-space
    description: Real-time sailing space availability for upcoming departures.
    x-description: Terminal condition data including drive-up and reservation spaces available for select departures, vessel information, and cancellation status. Data changes frequently (potentially every 5 seconds). Use the cacheFlushDate endpoint for this API to determine when to invalidate cached data for this group. Do not cache results for extended periods.
    x-cacheStrategy: STATIC
    x-useCases:
      - Display real-time space availability for upcoming sailings.
      - Show drive-up and reservation space counts with color indicators.
      - Monitor vessel assignments and departure cancellations.
  - name: terminal-transports
    description: Transportation options and parking information for terminals.
    x-description: Commuter information for Washington State Ferry terminals including parking details, vehicle-specific tips (motorcycle, truck, bike), airport information, transit links, and HOV/carpool information. Use the cacheFlushDate endpoint for this API to determine when to invalidate cached data for this group.
    x-cacheStrategy: STATIC
    x-useCases:
      - Display parking information and rates for terminal planning.
      - Provide vehicle-specific tips for motorcycles, trucks, and bicycles.
      - Show transit links and airport connection information.
  - name: terminal-verbose
    description: Comprehensive terminal information combining all terminal data types.
    x-description: Complete terminal information combining data from terminalBasics, terminalBulletins, terminalLocations, terminalTransports, and terminalWaitTimes endpoints. Includes identification, amenities, bulletins, locations, transportation info, sailing space, wait times, and additional details. Use when you need to reduce API calls and don't mind larger payloads. Use the cacheFlushDate endpoint for this API to determine when to invalidate cached data for this group.
    x-cacheStrategy: STATIC
    x-useCases:
      - Retrieve all terminal information in a single API call.
      - Reduce application chattiness when comprehensive data is needed.
      - Build integrated terminal information displays.
  - name: terminal-wait-times
    description: Wait time conditions and travel tips for vehicles and passengers.
    x-description: Current wait conditions and travel recommendations for both vehicles and walk-on passengers at Washington State Ferry terminals including wait time notes, IVR notes, route information, and update dates. Use the cacheFlushDate endpoint for this API to determine when to invalidate cached data for this group.
    x-cacheStrategy: STATIC
    x-useCases:
      - Display wait time information and arrival recommendations.
      - Provide travel tips for optimal departure timing.
      - Show route-specific wait time conditions.