{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/terminal49/json-schema/terminal49-current-vessel-feature-properties-schema.json",
  "title": "Current Vessel",
  "x-generated": "2026-11-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/terminal49-openapi.json#/components/schemas/currentVesselFeatureProperties",
  "type": "object",
  "properties": {
    "feature_type": {
      "type": "string",
      "enum": [
        "current_vessel"
      ]
    },
    "ports_sequence": {
      "type": "integer",
      "description": "Sequence number of the departure port for this leg"
    },
    "vessel_id": {
      "type": "string",
      "description": "Unique identifier for the vessel"
    },
    "vessel_name": {
      "type": "string",
      "description": "Name of the vessel"
    },
    "vessel_imo": {
      "type": "string",
      "description": "IMO number of the vessel"
    },
    "voyage_number": {
      "type": [
        "string",
        "null"
      ],
      "description": "Voyage number for this leg"
    },
    "vessel_location_timestamp": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp of the vessel position (ISO 8601)"
    },
    "vessel_location_heading": {
      "type": [
        "number",
        "null"
      ],
      "description": "Vessel heading in degrees (0-360)"
    },
    "vessel_location_speed": {
      "type": [
        "number",
        "null"
      ],
      "description": "Vessel speed in knots"
    },
    "departure_port_id": {
      "type": "string",
      "description": "ID of the port the vessel departed from"
    },
    "departure_port_name": {
      "type": "string",
      "description": "Name of the departure port"
    },
    "departure_port_state_abbr": {
      "type": [
        "string",
        "null"
      ],
      "description": "State abbreviation of departure port"
    },
    "departure_port_state": {
      "type": [
        "string",
        "null"
      ],
      "description": "State name of departure port"
    },
    "departure_port_country_code": {
      "type": "string",
      "description": "Country code of departure port"
    },
    "departure_port_country": {
      "type": "string",
      "description": "Country name of departure port"
    },
    "departure_port_label": {
      "type": "string",
      "description": "Label of departure port (POL, POD, TS1, etc.)"
    },
    "departure_port_atd": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time",
      "description": "Actual time of departure from the port (ISO 8601)"
    },
    "departure_port_time_zone": {
      "type": "string",
      "description": "Timezone of departure port"
    },
    "arrival_port_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "ID of the next port the vessel is heading to"
    },
    "arrival_port_name": {
      "type": [
        "string",
        "null"
      ],
      "description": "Name of the arrival port"
    },
    "arrival_port_state_abbr": {
      "type": [
        "string",
        "null"
      ],
      "description": "State abbreviation of arrival port"
    },
    "arrival_port_state": {
      "type": [
        "string",
        "null"
      ],
      "description": "State name of arrival port"
    },
    "arrival_port_country_code": {
      "type": [
        "string",
        "null"
      ],
      "description": "Country code of arrival port"
    },
    "arrival_port_country": {
      "type": [
        "string",
        "null"
      ],
      "description": "Country name of arrival port"
    },
    "arrival_port_label": {
      "type": [
        "string",
        "null"
      ],
      "description": "Label of arrival port (POL, POD, TS1, etc.)"
    },
    "arrival_port_eta": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time",
      "description": "Estimated time of arrival at the next port (ISO 8601)"
    },
    "arrival_port_time_zone": {
      "type": [
        "string",
        "null"
      ],
      "description": "Timezone of arrival port"
    }
  },
  "required": [
    "feature_type"
  ]
}