{
  "$ref": "#/definitions/AnyJournalEvent",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "AfmuRepairs": {
      "additionalProperties": false,
      "properties": {
        "FullyRepaired": {
          "type": "boolean"
        },
        "Health": {
          "type": "number"
        },
        "Module": {
          "type": "string"
        },
        "Module_Localised": {
          "type": "string"
        },
        "event": {
          "const": "AfmuRepairs",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "FullyRepaired",
        "Health",
        "Module",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "AnyJournalEvent": {
      "anyOf": [
        {
          "$ref": "#/definitions/ApproachBody"
        },
        {
          "$ref": "#/definitions/AfmuRepairs"
        },
        {
          "$ref": "#/definitions/AppliedToSquadron"
        },
        {
          "$ref": "#/definitions/ApproachSettlement"
        },
        {
          "$ref": "#/definitions/AsteroidCracked"
        },
        {
          "$ref": "#/definitions/Backpack"
        },
        {
          "$ref": "#/definitions/BackpackChange"
        },
        {
          "$ref": "#/definitions/BookDropship"
        },
        {
          "$ref": "#/definitions/BookTaxi"
        },
        {
          "$ref": "#/definitions/Bounty"
        },
        {
          "$ref": "#/definitions/BuyAmmo"
        },
        {
          "$ref": "#/definitions/BuyDrones"
        },
        {
          "$ref": "#/definitions/BuyExplorationData"
        },
        {
          "$ref": "#/definitions/BuyMicroResources"
        },
        {
          "$ref": "#/definitions/BuySuit"
        },
        {
          "$ref": "#/definitions/BuyTradeData"
        },
        {
          "$ref": "#/definitions/BuyWeapon"
        },
        {
          "$ref": "#/definitions/CancelDropship"
        },
        {
          "$ref": "#/definitions/CancelTaxi"
        },
        {
          "$ref": "#/definitions/CapShipBond"
        },
        {
          "$ref": "#/definitions/Cargo"
        },
        {
          "$ref": "#/definitions/CargoDepot"
        },
        {
          "$ref": "#/definitions/CargoTransfer"
        },
        {
          "$ref": "#/definitions/CarrierBankTransfer"
        },
        {
          "$ref": "#/definitions/CarrierBuy"
        },
        {
          "$ref": "#/definitions/CarrierCrewServices"
        },
        {
          "$ref": "#/definitions/CarrierDepositFuel"
        },
        {
          "$ref": "#/definitions/CarrierDockingPermission"
        },
        {
          "$ref": "#/definitions/CarrierFinance"
        },
        {
          "$ref": "#/definitions/CarrierJump"
        },
        {
          "$ref": "#/definitions/CarrierJumpCancelled"
        },
        {
          "$ref": "#/definitions/CarrierJumpRequest"
        },
        {
          "$ref": "#/definitions/CarrierLocation"
        },
        {
          "$ref": "#/definitions/CarrierModulePack"
        },
        {
          "$ref": "#/definitions/CarrierNameChange"
        },
        {
          "$ref": "#/definitions/CarrierShipPack"
        },
        {
          "$ref": "#/definitions/CarrierStats"
        },
        {
          "$ref": "#/definitions/CarrierTradeOrder"
        },
        {
          "$ref": "#/definitions/ChangeCrewRole"
        },
        {
          "$ref": "#/definitions/ClearSavedGame"
        },
        {
          "$ref": "#/definitions/CockpitBreached"
        },
        {
          "$ref": "#/definitions/ColonisationConstructionDepot"
        },
        {
          "$ref": "#/definitions/ColonisationContribution"
        },
        {
          "$ref": "#/definitions/CodexEntry"
        },
        {
          "$ref": "#/definitions/CollectCargo"
        },
        {
          "$ref": "#/definitions/CollectItems"
        },
        {
          "$ref": "#/definitions/Commander"
        },
        {
          "$ref": "#/definitions/CommitCrime"
        },
        {
          "$ref": "#/definitions/CommunityGoalDiscard"
        },
        {
          "$ref": "#/definitions/CommunityGoalJoin"
        },
        {
          "$ref": "#/definitions/CommunityGoalReward"
        },
        {
          "$ref": "#/definitions/CommunityGoal"
        },
        {
          "$ref": "#/definitions/Continued"
        },
        {
          "$ref": "#/definitions/CreateSuitLoadout"
        },
        {
          "$ref": "#/definitions/CrewAssign"
        },
        {
          "$ref": "#/definitions/CrewFire"
        },
        {
          "$ref": "#/definitions/CrewHire"
        },
        {
          "$ref": "#/definitions/CrewLaunchFighter"
        },
        {
          "$ref": "#/definitions/CrewMemberJoins"
        },
        {
          "$ref": "#/definitions/CrewMemberQuits"
        },
        {
          "$ref": "#/definitions/CrewMemberRoleChange"
        },
        {
          "$ref": "#/definitions/CrimeVictim"
        },
        {
          "$ref": "#/definitions/DatalinkScan"
        },
        {
          "$ref": "#/definitions/DatalinkVoucher"
        },
        {
          "$ref": "#/definitions/DataScanned"
        },
        {
          "$ref": "#/definitions/DeleteSuitLoadout"
        },
        {
          "$ref": "#/definitions/Died"
        },
        {
          "$ref": "#/definitions/DiscoveryScan"
        },
        {
          "$ref": "#/definitions/Disembark"
        },
        {
          "$ref": "#/definitions/Docked"
        },
        {
          "$ref": "#/definitions/DockFighter"
        },
        {
          "$ref": "#/definitions/DockingCancelled"
        },
        {
          "$ref": "#/definitions/DockingDenied"
        },
        {
          "$ref": "#/definitions/DockingGranted"
        },
        {
          "$ref": "#/definitions/DockingRequested"
        },
        {
          "$ref": "#/definitions/DockingTimeout"
        },
        {
          "$ref": "#/definitions/DockSRV"
        },
        {
          "$ref": "#/definitions/DropItems"
        },
        {
          "$ref": "#/definitions/DropshipDeploy"
        },
        {
          "$ref": "#/definitions/EjectCargo"
        },
        {
          "$ref": "#/definitions/Embark"
        },
        {
          "$ref": "#/definitions/EndCrewSession"
        },
        {
          "$ref": "#/definitions/EngineerApply"
        },
        {
          "$ref": "#/definitions/EngineerContribution"
        },
        {
          "$ref": "#/definitions/EngineerCraft"
        },
        {
          "$ref": "#/definitions/EngineerLegacyConvert"
        },
        {
          "$ref": "#/definitions/EngineerProgress"
        },
        {
          "$ref": "#/definitions/EscapeInterdiction"
        },
        {
          "$ref": "#/definitions/FactionKillBond"
        },
        {
          "$ref": "#/definitions/FCMaterials"
        },
        {
          "$ref": "#/definitions/FetchRemoteModule"
        },
        {
          "$ref": "#/definitions/FighterDestroyed"
        },
        {
          "$ref": "#/definitions/FighterRebuilt"
        },
        {
          "$ref": "#/definitions/Fileheader"
        },
        {
          "$ref": "#/definitions/Friends"
        },
        {
          "$ref": "#/definitions/FSDJump"
        },
        {
          "$ref": "#/definitions/FSDTarget"
        },
        {
          "$ref": "#/definitions/FSSAllBodiesFound"
        },
        {
          "$ref": "#/definitions/FSSBodySignals"
        },
        {
          "$ref": "#/definitions/FSSDiscoveryScan"
        },
        {
          "$ref": "#/definitions/FSSSignalDiscovered"
        },
        {
          "$ref": "#/definitions/FuelScoop"
        },
        {
          "$ref": "#/definitions/HeatDamage"
        },
        {
          "$ref": "#/definitions/HeatWarning"
        },
        {
          "$ref": "#/definitions/HullDamage"
        },
        {
          "$ref": "#/definitions/Interdicted"
        },
        {
          "$ref": "#/definitions/Interdiction"
        },
        {
          "$ref": "#/definitions/InvitedToSquadron"
        },
        {
          "$ref": "#/definitions/JetConeBoost"
        },
        {
          "$ref": "#/definitions/JetConeDamage"
        },
        {
          "$ref": "#/definitions/JoinACrew"
        },
        {
          "$ref": "#/definitions/JoinedSquadron"
        },
        {
          "$ref": "#/definitions/LeftSquadron"
        },
        {
          "$ref": "#/definitions/KickCrewMember"
        },
        {
          "$ref": "#/definitions/LaunchDrone"
        },
        {
          "$ref": "#/definitions/LaunchFighter"
        },
        {
          "$ref": "#/definitions/LaunchSRV"
        },
        {
          "$ref": "#/definitions/LeaveBody"
        },
        {
          "$ref": "#/definitions/Liftoff"
        },
        {
          "$ref": "#/definitions/LoadGame"
        },
        {
          "$ref": "#/definitions/Loadout"
        },
        {
          "$ref": "#/definitions/LoadoutEquipModule"
        },
        {
          "$ref": "#/definitions/Location"
        },
        {
          "$ref": "#/definitions/MarketBuy"
        },
        {
          "$ref": "#/definitions/MarketSell"
        },
        {
          "$ref": "#/definitions/Market"
        },
        {
          "$ref": "#/definitions/MassModuleStore"
        },
        {
          "$ref": "#/definitions/MaterialCollected"
        },
        {
          "$ref": "#/definitions/MaterialDiscarded"
        },
        {
          "$ref": "#/definitions/MaterialDiscovered"
        },
        {
          "$ref": "#/definitions/Materials"
        },
        {
          "$ref": "#/definitions/MaterialTrade"
        },
        {
          "$ref": "#/definitions/MiningRefined"
        },
        {
          "$ref": "#/definitions/MissionAbandoned"
        },
        {
          "$ref": "#/definitions/MissionAccepted"
        },
        {
          "$ref": "#/definitions/MissionCompleted"
        },
        {
          "$ref": "#/definitions/MissionFailed"
        },
        {
          "$ref": "#/definitions/MissionRedirected"
        },
        {
          "$ref": "#/definitions/Missions"
        },
        {
          "$ref": "#/definitions/ModuleBuy"
        },
        {
          "$ref": "#/definitions/ModuleBuyAndStore"
        },
        {
          "$ref": "#/definitions/ModuleInfo"
        },
        {
          "$ref": "#/definitions/ModuleRetrieve"
        },
        {
          "$ref": "#/definitions/ModuleSellRemote"
        },
        {
          "$ref": "#/definitions/ModuleSell"
        },
        {
          "$ref": "#/definitions/ModuleStore"
        },
        {
          "$ref": "#/definitions/ModuleSwap"
        },
        {
          "$ref": "#/definitions/MultiSellExplorationData"
        },
        {
          "$ref": "#/definitions/Music"
        },
        {
          "$ref": "#/definitions/NavBeaconScan"
        },
        {
          "$ref": "#/definitions/NavRoute"
        },
        {
          "$ref": "#/definitions/NavRouteClear"
        },
        {
          "$ref": "#/definitions/NewCommander"
        },
        {
          "$ref": "#/definitions/NpcCrewPaidWage"
        },
        {
          "$ref": "#/definitions/NpcCrewRank"
        },
        {
          "$ref": "#/definitions/Outfitting"
        },
        {
          "$ref": "#/definitions/Passengers"
        },
        {
          "$ref": "#/definitions/PayBounties"
        },
        {
          "$ref": "#/definitions/PayFines"
        },
        {
          "$ref": "#/definitions/PayLegacyFines"
        },
        {
          "$ref": "#/definitions/DeliverPowerMicroResources"
        },
        {
          "$ref": "#/definitions/PowerplayCollect"
        },
        {
          "$ref": "#/definitions/PowerplayDefect"
        },
        {
          "$ref": "#/definitions/PowerplayDeliver"
        },
        {
          "$ref": "#/definitions/PowerplayFastTrack"
        },
        {
          "$ref": "#/definitions/PowerplayJoin"
        },
        {
          "$ref": "#/definitions/PowerplayLeave"
        },
        {
          "$ref": "#/definitions/PowerplayMerits"
        },
        {
          "$ref": "#/definitions/PowerplayRank"
        },
        {
          "$ref": "#/definitions/PowerplaySalary"
        },
        {
          "$ref": "#/definitions/Powerplay"
        },
        {
          "$ref": "#/definitions/PowerplayVote"
        },
        {
          "$ref": "#/definitions/PowerplayVoucher"
        },
        {
          "$ref": "#/definitions/Progress"
        },
        {
          "$ref": "#/definitions/Promotion"
        },
        {
          "$ref": "#/definitions/ProspectedAsteroid"
        },
        {
          "$ref": "#/definitions/PVPKill"
        },
        {
          "$ref": "#/definitions/QuitACrew"
        },
        {
          "$ref": "#/definitions/Rank"
        },
        {
          "$ref": "#/definitions/RebootRepair"
        },
        {
          "$ref": "#/definitions/ReceiveText"
        },
        {
          "$ref": "#/definitions/RedeemVoucher"
        },
        {
          "$ref": "#/definitions/RefuelAll"
        },
        {
          "$ref": "#/definitions/RefuelPartial"
        },
        {
          "$ref": "#/definitions/RenameSuitLoadout"
        },
        {
          "$ref": "#/definitions/RepairAll"
        },
        {
          "$ref": "#/definitions/RepairDrone"
        },
        {
          "$ref": "#/definitions/Repair"
        },
        {
          "$ref": "#/definitions/Reputation"
        },
        {
          "$ref": "#/definitions/ReservoirReplenished"
        },
        {
          "$ref": "#/definitions/RestockVehicle"
        },
        {
          "$ref": "#/definitions/Resupply"
        },
        {
          "$ref": "#/definitions/Resurrect"
        },
        {
          "$ref": "#/definitions/SAASignalsFound"
        },
        {
          "$ref": "#/definitions/SAAScanComplete"
        },
        {
          "$ref": "#/definitions/Scanned"
        },
        {
          "$ref": "#/definitions/Scan"
        },
        {
          "$ref": "#/definitions/ScanBaryCentre"
        },
        {
          "$ref": "#/definitions/ScanOrganic"
        },
        {
          "$ref": "#/definitions/ScientificResearch"
        },
        {
          "$ref": "#/definitions/Screenshot"
        },
        {
          "$ref": "#/definitions/SearchAndRescue"
        },
        {
          "$ref": "#/definitions/SelfDestruct"
        },
        {
          "$ref": "#/definitions/SellDrones"
        },
        {
          "$ref": "#/definitions/SellExplorationData"
        },
        {
          "$ref": "#/definitions/SellMicroResources"
        },
        {
          "$ref": "#/definitions/SellOrganicData"
        },
        {
          "$ref": "#/definitions/SellShipOnRebuy"
        },
        {
          "$ref": "#/definitions/SellSuit"
        },
        {
          "$ref": "#/definitions/SellWeapon"
        },
        {
          "$ref": "#/definitions/SendText"
        },
        {
          "$ref": "#/definitions/SetUserShipName"
        },
        {
          "$ref": "#/definitions/SharedBookmarkToSquadron"
        },
        {
          "$ref": "#/definitions/ShieldState"
        },
        {
          "$ref": "#/definitions/ShipLocker"
        },
        {
          "$ref": "#/definitions/ShipRedeemed"
        },
        {
          "$ref": "#/definitions/ShipTargeted"
        },
        {
          "$ref": "#/definitions/ShipyardBankDeposit"
        },
        {
          "$ref": "#/definitions/ShipyardBuy"
        },
        {
          "$ref": "#/definitions/ShipyardNew"
        },
        {
          "$ref": "#/definitions/ShipyardRedeem"
        },
        {
          "$ref": "#/definitions/ShipyardSell"
        },
        {
          "$ref": "#/definitions/ShipyardSwap"
        },
        {
          "$ref": "#/definitions/ShipyardTransfer"
        },
        {
          "$ref": "#/definitions/Shipyard"
        },
        {
          "$ref": "#/definitions/Shutdown"
        },
        {
          "$ref": "#/definitions/SquadronCreated"
        },
        {
          "$ref": "#/definitions/SquadronDemotion"
        },
        {
          "$ref": "#/definitions/SquadronPromotion"
        },
        {
          "$ref": "#/definitions/SquadronStartup"
        },
        {
          "$ref": "#/definitions/SRVDestroyed"
        },
        {
          "$ref": "#/definitions/StartJump"
        },
        {
          "$ref": "#/definitions/Statistics"
        },
        {
          "$ref": "#/definitions/StoredModules"
        },
        {
          "$ref": "#/definitions/StoredShips"
        },
        {
          "$ref": "#/definitions/SuitLoadout"
        },
        {
          "$ref": "#/definitions/SupercruiseDestinationDrop"
        },
        {
          "$ref": "#/definitions/SupercruiseEntry"
        },
        {
          "$ref": "#/definitions/SupercruiseExit"
        },
        {
          "$ref": "#/definitions/SwitchSuitLoadout"
        },
        {
          "$ref": "#/definitions/Synthesis"
        },
        {
          "$ref": "#/definitions/SystemsShutdown"
        },
        {
          "$ref": "#/definitions/TechnologyBroker"
        },
        {
          "$ref": "#/definitions/Touchdown"
        },
        {
          "$ref": "#/definitions/TradeMicroResources"
        },
        {
          "$ref": "#/definitions/TransferMicroResources"
        },
        {
          "$ref": "#/definitions/UnderAttack"
        },
        {
          "$ref": "#/definitions/Undocked"
        },
        {
          "$ref": "#/definitions/UpgradeSuit"
        },
        {
          "$ref": "#/definitions/UpgradeWeapon"
        },
        {
          "$ref": "#/definitions/UseConsumable"
        },
        {
          "$ref": "#/definitions/USSDrop"
        },
        {
          "$ref": "#/definitions/VehicleSwitch"
        },
        {
          "$ref": "#/definitions/WingAdd"
        },
        {
          "$ref": "#/definitions/WingInvite"
        },
        {
          "$ref": "#/definitions/WingJoin"
        },
        {
          "$ref": "#/definitions/WingLeave"
        }
      ],
      "description": "Union type of all existing journal event types."
    },
    "AppliedToSquadron": {
      "additionalProperties": false,
      "properties": {
        "SquadronName": {
          "type": "string"
        },
        "event": {
          "const": "AppliedToSquadron",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "SquadronName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ApproachBody": {
      "additionalProperties": false,
      "description": "Written in Supercruise, and distance from planet drops to within the 'Orbital Cruise' zone.",
      "properties": {
        "Body": {
          "type": "string"
        },
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "StarSystem": {
          "type": "string"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "ApproachBody",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Body",
        "BodyID",
        "StarSystem",
        "SystemAddress",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ApproachSettlement": {
      "additionalProperties": false,
      "properties": {
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "BodyName": {
          "type": "string"
        },
        "Latitude": {
          "type": "number"
        },
        "Longitude": {
          "type": "number"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "StationAllegiance": {
          "type": "string"
        },
        "StationEconomies": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "Name_Localised": {
                "type": "string"
              },
              "Proportion": {
                "type": "number"
              }
            },
            "required": [
              "Name",
              "Proportion"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "StationEconomy": {
          "type": "string"
        },
        "StationEconomy_Localised": {
          "type": "string"
        },
        "StationFaction": {
          "additionalProperties": false,
          "properties": {
            "FactionState": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": [
            "Name"
          ],
          "type": "object"
        },
        "StationGovernment": {
          "type": "string"
        },
        "StationGovernment_Localised": {
          "type": "string"
        },
        "StationServices": {
          "items": {
            "$ref": "#/definitions/StationService"
          },
          "type": "array"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "ApproachSettlement",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Name",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "AsteroidCracked": {
      "additionalProperties": false,
      "description": "Written when the player has broken up a \"Motherlode\" asteroid for mining.",
      "properties": {
        "Body": {
          "description": "Name of nearest body.",
          "type": "string"
        },
        "event": {
          "const": "AsteroidCracked",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Body",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Backpack": {
      "additionalProperties": false,
      "properties": {
        "Components": {
          "items": {
            "$ref": "#/definitions/BackpackItem"
          },
          "type": "array"
        },
        "Consumables": {
          "items": {
            "$ref": "#/definitions/BackpackItem"
          },
          "type": "array"
        },
        "Data": {
          "items": {
            "$ref": "#/definitions/BackpackItem"
          },
          "type": "array"
        },
        "Items": {
          "items": {
            "$ref": "#/definitions/BackpackItem"
          },
          "type": "array"
        },
        "event": {
          "const": "Backpack",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "BackpackChange": {
      "additionalProperties": false,
      "properties": {
        "Added": {
          "items": {
            "$ref": "#/definitions/ChangedBackpackItem"
          },
          "type": "array"
        },
        "Removed": {
          "items": {
            "$ref": "#/definitions/ChangedBackpackItem"
          },
          "type": "array"
        },
        "event": {
          "const": "BackpackChange",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "BackpackItem": {
      "additionalProperties": false,
      "properties": {
        "Count": {
          "type": "number"
        },
        "MissionID": {
          "$ref": "#/definitions/ID"
        },
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "OwnerID": {
          "$ref": "#/definitions/ID"
        }
      },
      "required": [
        "Name",
        "OwnerID",
        "Count"
      ],
      "type": "object"
    },
    "BodyType": {
      "description": "Body types.",
      "enum": [
        "Planet",
        "Station",
        "Star",
        "PlanetaryRing",
        "AsteroidCluster",
        "Null",
        "StellarRing",
        "Ring"
      ],
      "type": "string"
    },
    "BookDropship": {
      "additionalProperties": false,
      "properties": {
        "Cost": {
          "type": "number"
        },
        "DestinationLocation": {
          "type": "string"
        },
        "DestinationSystem": {
          "type": "string"
        },
        "Retreat": {
          "type": "boolean"
        },
        "event": {
          "const": "BookDropship",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Cost",
        "DestinationLocation",
        "DestinationSystem",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "BookTaxi": {
      "additionalProperties": false,
      "properties": {
        "Cost": {
          "type": "number"
        },
        "DestinationLocation": {
          "type": "string"
        },
        "DestinationSystem": {
          "type": "string"
        },
        "Retreat": {
          "description": "Indicates if requested for exit from combat zone.",
          "type": "boolean"
        },
        "event": {
          "const": "BookTaxi",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Cost",
        "DestinationLocation",
        "DestinationSystem",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Bounty": {
      "additionalProperties": false,
      "description": "Written when player is awarded a bounty for a kill.",
      "properties": {
        "Faction": {
          "description": "Faction paying the bounty (when bounty is for a skimmer).",
          "type": "string"
        },
        "Faction_Localised": {
          "type": "string"
        },
        "PilotName": {
          "type": "string"
        },
        "PilotName_Localised": {
          "type": "string"
        },
        "Reward": {
          "description": "The reward (when bounty is for a skimmer).",
          "type": "number"
        },
        "Rewards": {
          "description": "An array of faction names and the reward values, as the target can have multiple bounties per faction.",
          "items": {
            "additionalProperties": false,
            "properties": {
              "Faction": {
                "type": "string"
              },
              "Reward": {
                "type": "number"
              }
            },
            "required": [
              "Faction",
              "Reward"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "SharedWithOthers": {
          "description": "If credit for the kill is shared with other players this has the number of other players involved.",
          "type": "number"
        },
        "Target": {
          "description": "Type of ship or target (if skimmer).",
          "type": "string"
        },
        "Target_Localised": {
          "type": "string"
        },
        "TotalReward": {
          "type": "number"
        },
        "VictimFaction": {
          "description": "The victim's faction.",
          "type": "string"
        },
        "VictimFaction_Localised": {
          "type": "string"
        },
        "event": {
          "const": "Bounty",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "VictimFaction",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "BuyAmmo": {
      "additionalProperties": false,
      "properties": {
        "Cost": {
          "type": "number"
        },
        "event": {
          "const": "BuyAmmo",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Cost",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "BuyDrones": {
      "additionalProperties": false,
      "properties": {
        "BuyPrice": {
          "type": "number"
        },
        "Count": {
          "type": "number"
        },
        "TotalCost": {
          "type": "number"
        },
        "Type": {
          "type": "string"
        },
        "event": {
          "const": "BuyDrones",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BuyPrice",
        "Count",
        "TotalCost",
        "Type",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "BuyExplorationData": {
      "additionalProperties": false,
      "description": "Written when buying system data via the galaxy map.",
      "properties": {
        "Cost": {
          "type": "number"
        },
        "System": {
          "type": "string"
        },
        "event": {
          "const": "BuyExplorationData",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Cost",
        "System",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "BuyMicroResources": {
      "anyOf": [
        {
          "$ref": "#/definitions/OldBuyMicroResources"
        },
        {
          "$ref": "#/definitions/NewBuyMicroResources"
        }
      ]
    },
    "BuySuit": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "Price": {
          "type": "number"
        },
        "SuitID": {
          "$ref": "#/definitions/ID"
        },
        "SuitMods": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "event": {
          "const": "BuySuit",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Name",
        "Name_Localised",
        "Price",
        "SuitID",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "BuyTradeData": {
      "additionalProperties": false,
      "properties": {
        "Cost": {
          "type": "number"
        },
        "System": {
          "type": "string"
        },
        "event": {
          "const": "BuyTradeData",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Cost",
        "System",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "BuyWeapon": {
      "additionalProperties": false,
      "properties": {
        "Class": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "Price": {
          "type": "number"
        },
        "SuitModuleID": {
          "$ref": "#/definitions/ID"
        },
        "WeaponMods": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "event": {
          "const": "BuyWeapon",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Name",
        "Name_Localised",
        "Price",
        "SuitModuleID",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CancelDropship": {
      "additionalProperties": false,
      "properties": {
        "Refund": {
          "type": "number"
        },
        "event": {
          "const": "CancelDropship",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Refund",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CancelTaxi": {
      "additionalProperties": false,
      "properties": {
        "Refund": {
          "type": "number"
        },
        "event": {
          "const": "CancelTaxi",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Refund",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CapShipBond": {
      "additionalProperties": false,
      "description": "Written when the player has been rewarded for a capital ship combat.",
      "properties": {
        "AwardingFaction": {
          "type": "string"
        },
        "AwardingFaction_Localised": {
          "type": "string"
        },
        "Reward": {
          "description": "Value of award.",
          "type": "number"
        },
        "VictimFaction": {
          "type": "string"
        },
        "VictimFaction_Localised": {
          "type": "string"
        },
        "event": {
          "const": "CapShipBond",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "AwardingFaction",
        "Reward",
        "VictimFaction",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Cargo": {
      "additionalProperties": false,
      "description": "Written slightly later in startup after missions are initialized so cargo coming from an abandoned delivery mission can be detected.\n\nThe first Cargo event in the file will contain the full inventory.\n\nA simple event (with no Inventory property) is written to the main journal file when the cargo file is updated.",
      "properties": {
        "Count": {
          "description": "The total number of items.",
          "type": "number"
        },
        "Inventory": {
          "description": "Array of cargo. Not set when Cargo.json file was written instead.",
          "items": {
            "additionalProperties": false,
            "properties": {
              "Count": {
                "description": "The number of items.",
                "type": "number"
              },
              "MissionID": {
                "$ref": "#/definitions/ID",
                "description": "ID of the mission the item belongs to."
              },
              "Name": {
                "description": "The item name.",
                "type": "string"
              },
              "Name_Localised": {
                "description": "Optional localized item name.",
                "type": "string"
              },
              "Stolen": {
                "description": "How many of the items are stolen.",
                "type": "number"
              }
            },
            "required": [
              "Name",
              "Count"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "Vessel": {
          "$ref": "#/definitions/CargoVessel",
          "description": "Ship or SRV"
        },
        "event": {
          "const": "Cargo",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CargoDepot": {
      "additionalProperties": false,
      "properties": {
        "CargoType": {
          "type": "string"
        },
        "CargoType_Localised": {
          "type": "string"
        },
        "Count": {
          "type": "number"
        },
        "EndMarketID": {
          "$ref": "#/definitions/ID"
        },
        "ItemsCollected": {
          "type": "number"
        },
        "ItemsDelivered": {
          "type": "number"
        },
        "MissionID": {
          "$ref": "#/definitions/ID"
        },
        "Progress": {
          "type": "number"
        },
        "StartMarketID": {
          "$ref": "#/definitions/ID"
        },
        "TotalItemsToDeliver": {
          "type": "number"
        },
        "UpdateType": {
          "type": "string"
        },
        "event": {
          "const": "CargoDepot",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "EndMarketID",
        "ItemsCollected",
        "ItemsDelivered",
        "MissionID",
        "Progress",
        "StartMarketID",
        "TotalItemsToDeliver",
        "UpdateType",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CargoTransfer": {
      "additionalProperties": false,
      "properties": {
        "Transfers": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Count": {
                "type": "number"
              },
              "Direction": {
                "type": "string"
              },
              "Type": {
                "type": "string"
              },
              "Type_Localised": {
                "type": "string"
              }
            },
            "required": [
              "Type",
              "Count",
              "Direction"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "event": {
          "const": "CargoTransfer",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Transfers",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CargoVessel": {
      "description": "The vessel for which the cargo event is written.",
      "enum": [
        "Ship",
        "SRV"
      ],
      "type": "string"
    },
    "CarrierBankTransfer": {
      "additionalProperties": false,
      "properties": {
        "CarrierBalance": {
          "type": "number"
        },
        "CarrierID": {
          "$ref": "#/definitions/ID"
        },
        "CarrierType": {
          "$ref": "#/definitions/CarrierType"
        },
        "Deposit": {
          "type": "number"
        },
        "PlayerBalance": {
          "type": "number"
        },
        "Withdraw": {
          "type": "number"
        },
        "event": {
          "const": "CarrierBankTransfer",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "CarrierBalance",
        "CarrierID",
        "PlayerBalance",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CarrierBuy": {
      "additionalProperties": false,
      "properties": {
        "BoughtAtMarket": {
          "type": "number"
        },
        "Callsign": {
          "type": "string"
        },
        "CarrierID": {
          "$ref": "#/definitions/ID"
        },
        "CarrierType": {
          "$ref": "#/definitions/CarrierType"
        },
        "Location": {
          "type": "string"
        },
        "Price": {
          "type": "number"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "Variant": {
          "type": "string"
        },
        "event": {
          "const": "CarrierBuy",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BoughtAtMarket",
        "Callsign",
        "CarrierID",
        "Location",
        "Price",
        "SystemAddress",
        "Variant",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CarrierCrewServices": {
      "additionalProperties": false,
      "properties": {
        "CarrierID": {
          "$ref": "#/definitions/ID"
        },
        "CarrierType": {
          "$ref": "#/definitions/CarrierType"
        },
        "CrewName": {
          "type": "string"
        },
        "CrewRole": {
          "type": "string"
        },
        "Operation": {
          "type": "string"
        },
        "event": {
          "const": "CarrierCrewServices",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "CarrierID",
        "CrewName",
        "CrewRole",
        "Operation",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CarrierDepositFuel": {
      "additionalProperties": false,
      "properties": {
        "Amount": {
          "type": "number"
        },
        "CarrierID": {
          "$ref": "#/definitions/ID"
        },
        "Total": {
          "type": "number"
        },
        "event": {
          "const": "CarrierDepositFuel",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Amount",
        "CarrierID",
        "Total",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CarrierDockingPermission": {
      "additionalProperties": false,
      "properties": {
        "AllowNotorious": {
          "type": "boolean"
        },
        "CarrierID": {
          "$ref": "#/definitions/ID"
        },
        "CarrierType": {
          "$ref": "#/definitions/CarrierType"
        },
        "DockingAccess": {
          "type": "string"
        },
        "event": {
          "const": "CarrierDockingPermission",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "AllowNotorious",
        "CarrierID",
        "DockingAccess",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CarrierFinance": {
      "additionalProperties": false,
      "description": "Change to tax rate or reserve",
      "properties": {
        "AvailableBalance": {
          "type": "number"
        },
        "CarrierBalance": {
          "type": "number"
        },
        "CarrierID": {
          "$ref": "#/definitions/ID"
        },
        "CarrierType": {
          "$ref": "#/definitions/CarrierType"
        },
        "ReserveBalance": {
          "type": "number"
        },
        "ReservePercent": {
          "type": "number"
        },
        "TaxRate": {
          "type": "number"
        },
        "TaxRate_outfitting": {
          "type": "number"
        },
        "TaxRate_pioneersupplies": {
          "type": "number"
        },
        "TaxRate_rearm": {
          "type": "number"
        },
        "TaxRate_refuel": {
          "type": "number"
        },
        "TaxRate_repair": {
          "type": "number"
        },
        "TaxRate_shipyard": {
          "type": "number"
        },
        "event": {
          "const": "CarrierFinance",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "AvailableBalance",
        "CarrierBalance",
        "CarrierID",
        "ReserveBalance",
        "ReservePercent",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CarrierJump": {
      "additionalProperties": false,
      "properties": {
        "Body": {
          "type": "string"
        },
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "BodyType": {
          "$ref": "#/definitions/BodyType"
        },
        "Conflicts": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Faction1": {
                "$ref": "#/definitions/ConflictFaction"
              },
              "Faction2": {
                "$ref": "#/definitions/ConflictFaction"
              },
              "Status": {
                "type": "string"
              },
              "WarType": {
                "type": "string"
              }
            },
            "required": [
              "WarType",
              "Status",
              "Faction1",
              "Faction2"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "ControllingPower": {
          "type": "string"
        },
        "Docked": {
          "type": "boolean"
        },
        "Factions": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "ActiveStates": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "State": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "State"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "Allegiance": {
                "type": "string"
              },
              "FactionState": {
                "type": "string"
              },
              "Government": {
                "type": "string"
              },
              "Happiness": {
                "type": "string"
              },
              "Happiness_Localised": {
                "type": "string"
              },
              "Influence": {
                "type": "number"
              },
              "MyReputation": {
                "type": "number"
              },
              "Name": {
                "type": "string"
              },
              "PendingStates": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "State": {
                      "type": "string"
                    },
                    "Trend": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "State",
                    "Trend"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "RecoveringStates": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "State": {
                      "type": "string"
                    },
                    "Trend": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "State",
                    "Trend"
                  ],
                  "type": "object"
                },
                "type": "array"
              }
            },
            "required": [
              "Name",
              "FactionState",
              "Government",
              "Influence",
              "Allegiance",
              "Happiness",
              "Happiness_Localised",
              "MyReputation"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Multicrew": {
          "type": "boolean"
        },
        "OnFoot": {
          "type": "boolean"
        },
        "Population": {
          "type": "number"
        },
        "PowerplayConflictProgress": {
          "items": {
            "$ref": "#/definitions/ConflictProgress"
          },
          "type": "array"
        },
        "PowerplayState": {
          "$ref": "#/definitions/PowerState"
        },
        "PowerplayStateControlProgress": {
          "type": "number"
        },
        "PowerplayStateReinforcement": {
          "type": "number"
        },
        "PowerplayStateUndermining": {
          "type": "number"
        },
        "Powers": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "StarPos": {
          "items": {
            "type": "number"
          },
          "maxItems": 3,
          "minItems": 3,
          "type": "array"
        },
        "StarSystem": {
          "type": "string"
        },
        "StationEconomies": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "Name_Localised": {
                "type": "string"
              },
              "Proportion": {
                "type": "number"
              }
            },
            "required": [
              "Name",
              "Proportion"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "StationEconomy": {
          "type": "string"
        },
        "StationEconomy_Localised": {
          "type": "string"
        },
        "StationFaction": {
          "additionalProperties": false,
          "properties": {
            "Name": {
              "type": "string"
            }
          },
          "required": [
            "Name"
          ],
          "type": "object"
        },
        "StationGovernment": {
          "type": "string"
        },
        "StationGovernment_Localised": {
          "type": "string"
        },
        "StationName": {
          "type": "string"
        },
        "StationServices": {
          "items": {
            "$ref": "#/definitions/StationService"
          },
          "type": "array"
        },
        "StationType": {
          "$ref": "#/definitions/StationType"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "SystemAllegiance": {
          "type": "string"
        },
        "SystemEconomy": {
          "type": "string"
        },
        "SystemEconomy_Localised": {
          "type": "string"
        },
        "SystemFaction": {
          "additionalProperties": false,
          "properties": {
            "FactionState": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": [
            "Name"
          ],
          "type": "object"
        },
        "SystemGovernment": {
          "type": "string"
        },
        "SystemGovernment_Localised": {
          "type": "string"
        },
        "SystemSecondEconomy": {
          "type": "string"
        },
        "SystemSecondEconomy_Localised": {
          "type": "string"
        },
        "SystemSecurity": {
          "type": "string"
        },
        "SystemSecurity_Localised": {
          "type": "string"
        },
        "Taxi": {
          "type": "boolean"
        },
        "event": {
          "const": "CarrierJump",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Body",
        "BodyID",
        "BodyType",
        "Docked",
        "Population",
        "StarPos",
        "StarSystem",
        "SystemAddress",
        "SystemAllegiance",
        "SystemEconomy",
        "SystemEconomy_Localised",
        "SystemGovernment",
        "SystemGovernment_Localised",
        "SystemSecondEconomy",
        "SystemSecondEconomy_Localised",
        "SystemSecurity",
        "SystemSecurity_Localised",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CarrierJumpCancelled": {
      "additionalProperties": false,
      "properties": {
        "CarrierID": {
          "$ref": "#/definitions/ID"
        },
        "CarrierType": {
          "$ref": "#/definitions/CarrierType"
        },
        "event": {
          "const": "CarrierJumpCancelled",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "CarrierID",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CarrierJumpRequest": {
      "additionalProperties": false,
      "properties": {
        "Body": {
          "type": "string"
        },
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "CarrierID": {
          "$ref": "#/definitions/ID"
        },
        "CarrierType": {
          "$ref": "#/definitions/CarrierType"
        },
        "DepartureTime": {
          "type": "string"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "SystemName": {
          "type": "string"
        },
        "event": {
          "const": "CarrierJumpRequest",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BodyID",
        "CarrierID",
        "SystemAddress",
        "SystemName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CarrierLocation": {
      "additionalProperties": false,
      "properties": {
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "CarrierID": {
          "$ref": "#/definitions/ID"
        },
        "CarrierType": {
          "$ref": "#/definitions/CarrierType"
        },
        "StarSystem": {
          "type": "string"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "CarrierLocation",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BodyID",
        "CarrierID",
        "StarSystem",
        "SystemAddress",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CarrierModulePack": {
      "anyOf": [
        {
          "$ref": "#/definitions/CarrierModulePackBuy"
        },
        {
          "$ref": "#/definitions/CarrierModulePackSell"
        }
      ]
    },
    "CarrierModulePackBuy": {
      "additionalProperties": false,
      "properties": {
        "CarrierID": {
          "$ref": "#/definitions/ID"
        },
        "CarrierType": {
          "$ref": "#/definitions/CarrierType"
        },
        "Cost": {
          "type": "number"
        },
        "Operation": {
          "const": "BuyPack",
          "type": "string"
        },
        "PackTheme": {
          "type": "string"
        },
        "PackTier": {
          "type": "number"
        },
        "event": {
          "const": "CarrierModulePack",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "CarrierID",
        "Cost",
        "Operation",
        "PackTheme",
        "PackTier",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CarrierModulePackSell": {
      "additionalProperties": false,
      "properties": {
        "CarrierID": {
          "$ref": "#/definitions/ID"
        },
        "CarrierType": {
          "$ref": "#/definitions/CarrierType"
        },
        "Operation": {
          "const": "SellPack",
          "type": "string"
        },
        "PackTheme": {
          "type": "string"
        },
        "PackTier": {
          "type": "number"
        },
        "Refund": {
          "type": "number"
        },
        "event": {
          "const": "CarrierModulePack",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "CarrierID",
        "Operation",
        "PackTheme",
        "PackTier",
        "Refund",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CarrierNameChange": {
      "additionalProperties": false,
      "properties": {
        "Callsign": {
          "type": "string"
        },
        "CarrierID": {
          "$ref": "#/definitions/ID"
        },
        "CarrierType": {
          "$ref": "#/definitions/CarrierType"
        },
        "Name": {
          "type": "string"
        },
        "event": {
          "const": "CarrierNameChange",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Callsign",
        "CarrierID",
        "Name",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CarrierShipPack": {
      "anyOf": [
        {
          "$ref": "#/definitions/CarrierShipPackBuy"
        },
        {
          "$ref": "#/definitions/CarrierShipPackSell"
        }
      ]
    },
    "CarrierShipPackBuy": {
      "additionalProperties": false,
      "properties": {
        "CarrierID": {
          "$ref": "#/definitions/ID"
        },
        "CarrierType": {
          "$ref": "#/definitions/CarrierType"
        },
        "Cost": {
          "type": "number"
        },
        "Operation": {
          "const": "BuyPack",
          "type": "string"
        },
        "PackTheme": {
          "type": "string"
        },
        "PackTier": {
          "type": "number"
        },
        "event": {
          "const": "CarrierShipPack",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "CarrierID",
        "Cost",
        "Operation",
        "PackTheme",
        "PackTier",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CarrierShipPackSell": {
      "additionalProperties": false,
      "properties": {
        "CarrierID": {
          "$ref": "#/definitions/ID"
        },
        "CarrierType": {
          "$ref": "#/definitions/CarrierType"
        },
        "Operation": {
          "const": "SellPack",
          "type": "string"
        },
        "PackTheme": {
          "type": "string"
        },
        "PackTier": {
          "type": "number"
        },
        "Refund": {
          "type": "number"
        },
        "event": {
          "const": "CarrierShipPack",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "CarrierID",
        "Operation",
        "PackTheme",
        "PackTier",
        "Refund",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CarrierStats": {
      "additionalProperties": false,
      "properties": {
        "AllowNotorious": {
          "type": "boolean"
        },
        "Callsign": {
          "type": "string"
        },
        "CarrierID": {
          "$ref": "#/definitions/ID"
        },
        "CarrierType": {
          "$ref": "#/definitions/CarrierType"
        },
        "Crew": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Activated": {
                "type": "boolean"
              },
              "CrewName": {
                "type": "string"
              },
              "CrewRole": {
                "type": "string"
              },
              "Enabled": {
                "type": "boolean"
              }
            },
            "required": [
              "CrewRole",
              "Activated"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "DockingAccess": {
          "type": "string"
        },
        "Finance": {
          "additionalProperties": false,
          "properties": {
            "AvailableBalance": {
              "type": "number"
            },
            "CarrierBalance": {
              "type": "number"
            },
            "ReserveBalance": {
              "type": "number"
            },
            "ReservePercent": {
              "type": "number"
            },
            "TaxRate_outfitting": {
              "type": "number"
            },
            "TaxRate_pioneersupplies": {
              "type": "number"
            },
            "TaxRate_rearm": {
              "type": "number"
            },
            "TaxRate_refuel": {
              "type": "number"
            },
            "TaxRate_repair": {
              "type": "number"
            },
            "TaxRate_shipyard": {
              "type": "number"
            }
          },
          "required": [
            "CarrierBalance",
            "ReserveBalance",
            "AvailableBalance"
          ],
          "type": "object"
        },
        "FuelLevel": {
          "type": "number"
        },
        "JumpRangeCurr": {
          "type": "number"
        },
        "JumpRangeMax": {
          "type": "number"
        },
        "ModulePacks": {
          "items": {
            "$ref": "#/definitions/Pack"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        },
        "PendingDecommission": {
          "type": "boolean"
        },
        "ShipPacks": {
          "items": {
            "$ref": "#/definitions/Pack"
          },
          "type": "array"
        },
        "SpaceUsage": {
          "additionalProperties": false,
          "properties": {
            "Cargo": {
              "type": "number"
            },
            "CargoSpaceReserved": {
              "type": "number"
            },
            "Crew": {
              "type": "number"
            },
            "FreeSpace": {
              "type": "number"
            },
            "ModulePacks": {
              "type": "number"
            },
            "ShipPacks": {
              "type": "number"
            },
            "TotalCapacity": {
              "type": "number"
            }
          },
          "required": [
            "TotalCapacity",
            "Crew",
            "Cargo",
            "CargoSpaceReserved",
            "ShipPacks",
            "ModulePacks",
            "FreeSpace"
          ],
          "type": "object"
        },
        "event": {
          "const": "CarrierStats",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "AllowNotorious",
        "Callsign",
        "CarrierID",
        "Crew",
        "DockingAccess",
        "Finance",
        "FuelLevel",
        "JumpRangeCurr",
        "JumpRangeMax",
        "ModulePacks",
        "Name",
        "PendingDecommission",
        "ShipPacks",
        "SpaceUsage",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CarrierTradeOrder": {
      "additionalProperties": false,
      "properties": {
        "BlackMarket": {
          "type": "boolean"
        },
        "CancelTrade": {
          "type": "boolean"
        },
        "CarrierID": {
          "$ref": "#/definitions/ID"
        },
        "CarrierType": {
          "$ref": "#/definitions/CarrierType"
        },
        "Commodity": {
          "type": "string"
        },
        "Commodity_Localised": {
          "type": "string"
        },
        "Price": {
          "type": "number"
        },
        "PurchaseOrder": {
          "type": "number"
        },
        "SaleOrder": {
          "type": "number"
        },
        "event": {
          "const": "CarrierTradeOrder",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BlackMarket",
        "CarrierID",
        "Commodity",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CarrierType": {
      "enum": [
        "FleetCarrier",
        "SquadronCarrier"
      ],
      "type": "string"
    },
    "ChangeCrewRole": {
      "additionalProperties": false,
      "properties": {
        "Role": {
          "type": "string"
        },
        "event": {
          "const": "ChangeCrewRole",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Role",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ChangedBackpackItem": {
      "additionalProperties": false,
      "properties": {
        "Count": {
          "type": "number"
        },
        "MissionID": {
          "$ref": "#/definitions/ID"
        },
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "OwnerID": {
          "$ref": "#/definitions/ID"
        },
        "Type": {
          "type": "string"
        }
      },
      "required": [
        "Name",
        "OwnerID",
        "Count",
        "Type"
      ],
      "type": "object"
    },
    "ClearSavedGame": {
      "additionalProperties": false,
      "description": "Written when player resets the game.",
      "properties": {
        "FID": {
          "description": "The player ID.",
          "type": "string"
        },
        "Name": {
          "description": "The commander name.",
          "type": "string"
        },
        "event": {
          "const": "ClearSavedGame",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Name",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CockpitBreached": {
      "additionalProperties": false,
      "properties": {
        "event": {
          "const": "CockpitBreached",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CodexEntry": {
      "additionalProperties": false,
      "description": "Written when a new discovery is added to the Codex.",
      "properties": {
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "Category": {
          "type": "string"
        },
        "Category_Localised": {
          "type": "string"
        },
        "EntryID": {
          "$ref": "#/definitions/ID"
        },
        "IsNewEntry": {
          "type": "boolean"
        },
        "Latitude": {
          "type": "number"
        },
        "Longitude": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "NearestDestination": {
          "description": "Added if within 50km of a location listed in the navigation panel.",
          "type": "string"
        },
        "NearestDestination_Localised": {
          "type": "string"
        },
        "NewTraitsDiscovered": {
          "type": "boolean"
        },
        "Region": {
          "type": "string"
        },
        "Region_Localised": {
          "type": "string"
        },
        "SubCategory": {
          "type": "string"
        },
        "SubCategory_Localised": {
          "type": "string"
        },
        "System": {
          "type": "string"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "Traits": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "VoucherAmount": {
          "type": "number"
        },
        "event": {
          "const": "CodexEntry",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Category",
        "Category_Localised",
        "EntryID",
        "Name",
        "Name_Localised",
        "Region",
        "Region_Localised",
        "SubCategory",
        "SubCategory_Localised",
        "System",
        "SystemAddress",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CollectCargo": {
      "additionalProperties": false,
      "properties": {
        "MissionID": {
          "$ref": "#/definitions/ID"
        },
        "Stolen": {
          "type": "boolean"
        },
        "Type": {
          "type": "string"
        },
        "Type_Localised": {
          "type": "string"
        },
        "event": {
          "const": "CollectCargo",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Stolen",
        "Type",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CollectItems": {
      "additionalProperties": false,
      "properties": {
        "Count": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "OwnerID": {
          "$ref": "#/definitions/ID"
        },
        "Stolen": {
          "type": "boolean"
        },
        "Type": {
          "type": "string"
        },
        "event": {
          "const": "CollectItems",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Count",
        "Name",
        "OwnerID",
        "Stolen",
        "Type",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ColonisationConstructionDepot": {
      "additionalProperties": false,
      "properties": {
        "ConstructionComplete": {
          "type": "boolean"
        },
        "ConstructionFailed": {
          "type": "boolean"
        },
        "ConstructionProgress": {
          "type": "number"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "ResourcesRequired": {
          "items": {
            "$ref": "#/definitions/ColonisationConstructionResource"
          },
          "type": "array"
        },
        "event": {
          "const": "ColonisationConstructionDepot",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "ConstructionComplete",
        "ConstructionFailed",
        "ConstructionProgress",
        "MarketID",
        "ResourcesRequired",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ColonisationConstructionResource": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "Payment": {
          "type": "number"
        },
        "ProvidedAmount": {
          "type": "number"
        },
        "RequiredAmount": {
          "type": "number"
        }
      },
      "required": [
        "Name",
        "Name_Localised",
        "RequiredAmount",
        "ProvidedAmount",
        "Payment"
      ],
      "type": "object"
    },
    "ColonisationContribution": {
      "additionalProperties": false,
      "properties": {
        "Contributions": {
          "items": {
            "$ref": "#/definitions/ColonisationContributionResource"
          },
          "type": "array"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "ColonisationContribution",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Contributions",
        "MarketID",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ColonisationContributionResource": {
      "additionalProperties": false,
      "properties": {
        "Amount": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        }
      },
      "required": [
        "Name",
        "Name_Localised",
        "Amount"
      ],
      "type": "object"
    },
    "Commander": {
      "additionalProperties": false,
      "description": "Written at start of the game loading process.",
      "properties": {
        "FID": {
          "description": "The player ID.",
          "type": "string"
        },
        "Name": {
          "description": "The commander name.",
          "type": "string"
        },
        "event": {
          "const": "Commander",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Name",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CommitCrime": {
      "additionalProperties": false,
      "properties": {
        "Bounty": {
          "type": "number"
        },
        "CrimeType": {
          "type": "string"
        },
        "Faction": {
          "type": "string"
        },
        "Fine": {
          "type": "number"
        },
        "Victim": {
          "type": "string"
        },
        "Victim_Localised": {
          "type": "string"
        },
        "event": {
          "const": "CommitCrime",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "CrimeType",
        "Faction",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CommunityGoal": {
      "additionalProperties": false,
      "properties": {
        "CurrentGoals": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Bonus": {
                "type": "number"
              },
              "CGID": {
                "$ref": "#/definitions/ID"
              },
              "CurrentTotal": {
                "type": "number"
              },
              "Expiry": {
                "type": "string"
              },
              "IsComplete": {
                "type": "boolean"
              },
              "MarketName": {
                "type": "string"
              },
              "NumContributors": {
                "type": "number"
              },
              "PlayerContribution": {
                "type": "number"
              },
              "PlayerInTopRank": {
                "type": "boolean"
              },
              "PlayerPercentileBand": {
                "type": "number"
              },
              "SystemName": {
                "type": "string"
              },
              "TierReached": {
                "type": "string"
              },
              "Title": {
                "type": "string"
              },
              "TopRankSize": {
                "type": "number"
              },
              "TopTier": {
                "additionalProperties": false,
                "properties": {
                  "Bonus": {
                    "type": "string"
                  },
                  "Name": {
                    "type": "string"
                  }
                },
                "required": [
                  "Name",
                  "Bonus"
                ],
                "type": "object"
              }
            },
            "required": [
              "CGID",
              "CurrentTotal",
              "Expiry",
              "IsComplete",
              "MarketName",
              "NumContributors",
              "PlayerContribution",
              "PlayerInTopRank",
              "PlayerPercentileBand",
              "SystemName",
              "Title",
              "TopRankSize"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "event": {
          "const": "CommunityGoal",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "CurrentGoals",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CommunityGoalDiscard": {
      "additionalProperties": false,
      "properties": {
        "CGID": {
          "$ref": "#/definitions/ID"
        },
        "Name": {
          "type": "string"
        },
        "System": {
          "type": "string"
        },
        "event": {
          "const": "CommunityGoalDiscard",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Name",
        "System",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CommunityGoalJoin": {
      "additionalProperties": false,
      "properties": {
        "CGID": {
          "$ref": "#/definitions/ID"
        },
        "Name": {
          "type": "string"
        },
        "System": {
          "type": "string"
        },
        "event": {
          "const": "CommunityGoalJoin",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Name",
        "System",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CommunityGoalReward": {
      "additionalProperties": false,
      "properties": {
        "CGID": {
          "$ref": "#/definitions/ID"
        },
        "Name": {
          "type": "string"
        },
        "Reward": {
          "type": "number"
        },
        "System": {
          "type": "string"
        },
        "event": {
          "const": "CommunityGoalReward",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Name",
        "Reward",
        "System",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ConflictFaction": {
      "additionalProperties": false,
      "description": "A faction in a conflict.",
      "properties": {
        "Name": {
          "type": "string"
        },
        "Stake": {
          "type": "string"
        },
        "WonDays": {
          "type": "number"
        }
      },
      "required": [
        "Name",
        "Stake",
        "WonDays"
      ],
      "type": "object"
    },
    "ConflictProgress": {
      "additionalProperties": false,
      "properties": {
        "ConflictProgress": {
          "type": "number"
        },
        "Power": {
          "type": "string"
        }
      },
      "required": [
        "Power",
        "ConflictProgress"
      ],
      "type": "object"
    },
    "Continued": {
      "additionalProperties": false,
      "properties": {
        "Part": {
          "type": "number"
        },
        "event": {
          "const": "Continued",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Part",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CreateSuitLoadout": {
      "additionalProperties": false,
      "properties": {
        "LoadoutID": {
          "$ref": "#/definitions/ID"
        },
        "LoadoutName": {
          "type": "string"
        },
        "Modules": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Class": {
                "type": "number"
              },
              "ModuleName": {
                "type": "string"
              },
              "ModuleName_Localised": {
                "type": "string"
              },
              "SlotName": {
                "type": "string"
              },
              "SuitModuleID": {
                "$ref": "#/definitions/ID"
              },
              "WeaponMods": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "SlotName",
              "SuitModuleID",
              "ModuleName",
              "ModuleName_Localised"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "SuitID": {
          "$ref": "#/definitions/ID"
        },
        "SuitMods": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SuitName": {
          "type": "string"
        },
        "SuitName_Localised": {
          "type": "string"
        },
        "event": {
          "const": "CreateSuitLoadout",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "LoadoutID",
        "LoadoutName",
        "Modules",
        "SuitID",
        "SuitName",
        "SuitName_Localised",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CrewAssign": {
      "additionalProperties": false,
      "properties": {
        "CrewID": {
          "$ref": "#/definitions/ID"
        },
        "Name": {
          "type": "string"
        },
        "Role": {
          "type": "string"
        },
        "event": {
          "const": "CrewAssign",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Name",
        "Role",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CrewFire": {
      "additionalProperties": false,
      "properties": {
        "CrewID": {
          "$ref": "#/definitions/ID"
        },
        "Name": {
          "type": "string"
        },
        "event": {
          "const": "CrewFire",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Name",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CrewHire": {
      "additionalProperties": false,
      "properties": {
        "CombatRank": {
          "type": "number"
        },
        "Cost": {
          "type": "number"
        },
        "CrewID": {
          "$ref": "#/definitions/ID"
        },
        "Faction": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "event": {
          "const": "CrewHire",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "CombatRank",
        "Cost",
        "Faction",
        "Name",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CrewLaunchFighter": {
      "additionalProperties": false,
      "properties": {
        "Crew": {
          "type": "string"
        },
        "event": {
          "const": "CrewLaunchFighter",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Crew",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CrewMemberJoins": {
      "additionalProperties": false,
      "properties": {
        "Crew": {
          "type": "string"
        },
        "Telepresence": {
          "type": "boolean"
        },
        "event": {
          "const": "CrewMemberJoins",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Crew",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CrewMemberQuits": {
      "additionalProperties": false,
      "properties": {
        "Crew": {
          "type": "string"
        },
        "Telepresence": {
          "type": "boolean"
        },
        "event": {
          "const": "CrewMemberQuits",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Crew",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CrewMemberRoleChange": {
      "additionalProperties": false,
      "properties": {
        "Crew": {
          "type": "string"
        },
        "Role": {
          "type": "string"
        },
        "Telepresence": {
          "type": "boolean"
        },
        "event": {
          "const": "CrewMemberRoleChange",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Crew",
        "Role",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "CrimeVictim": {
      "additionalProperties": false,
      "properties": {
        "Bounty": {
          "type": "number"
        },
        "CrimeType": {
          "type": "string"
        },
        "Fine": {
          "type": "number"
        },
        "Offender": {
          "type": "string"
        },
        "event": {
          "const": "CrimeVictim",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "CrimeType",
        "Offender",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "DataScanned": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Type_Localised": {
          "type": "string"
        },
        "event": {
          "const": "DataScanned",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Type",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "DatalinkScan": {
      "additionalProperties": false,
      "properties": {
        "Message": {
          "type": "string"
        },
        "Message_Localised": {
          "type": "string"
        },
        "event": {
          "const": "DatalinkScan",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Message",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "DatalinkVoucher": {
      "additionalProperties": false,
      "properties": {
        "PayeeFaction": {
          "type": "string"
        },
        "Reward": {
          "type": "number"
        },
        "VictimFaction": {
          "type": "string"
        },
        "event": {
          "const": "DatalinkVoucher",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "PayeeFaction",
        "Reward",
        "VictimFaction",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "DeleteSuitLoadout": {
      "additionalProperties": false,
      "properties": {
        "LoadoutID": {
          "$ref": "#/definitions/ID"
        },
        "LoadoutName": {
          "type": "string"
        },
        "SuitID": {
          "$ref": "#/definitions/ID"
        },
        "SuitName": {
          "type": "string"
        },
        "SuitName_Localised": {
          "type": "string"
        },
        "event": {
          "const": "DeleteSuitLoadout",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "LoadoutID",
        "LoadoutName",
        "SuitID",
        "SuitName",
        "SuitName_Localised",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "DeliverPowerMicroResources": {
      "additionalProperties": false,
      "properties": {
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "MicroResources": {
          "items": {
            "$ref": "#/definitions/MicroResource"
          },
          "type": "array"
        },
        "TotalCount": {
          "type": "number"
        },
        "event": {
          "const": "DeliverPowerMicroResources",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "MarketID",
        "MicroResources",
        "TotalCount",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Died": {
      "additionalProperties": false,
      "description": "Written when player was killed.",
      "properties": {
        "KillerName": {
          "type": "string"
        },
        "KillerName_Localised": {
          "type": "string"
        },
        "KillerRank": {
          "type": "string"
        },
        "KillerShip": {
          "type": "string"
        },
        "event": {
          "const": "Died",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "DiscoveryScan": {
      "additionalProperties": false,
      "description": "Written when using the discovery scanner, and new body discoveries are displayed in the cockpit info window. Note you can get two or three of these in a row, where some bodies are discovered by the automatic passive scan, before the active scan is complete.",
      "properties": {
        "Bodies": {
          "description": "Number of new bodies discovered.",
          "type": "number"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "DiscoveryScan",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Bodies",
        "SystemAddress",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Disembark": {
      "additionalProperties": false,
      "properties": {
        "Body": {
          "type": "string"
        },
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "ID": {
          "$ref": "#/definitions/ID"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Multicrew": {
          "type": "boolean"
        },
        "OnPlanet": {
          "type": "boolean"
        },
        "OnStation": {
          "type": "boolean"
        },
        "SRV": {
          "type": "boolean"
        },
        "StarSystem": {
          "type": "string"
        },
        "StationName": {
          "type": "string"
        },
        "StationType": {
          "$ref": "#/definitions/StationType"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "Taxi": {
          "type": "boolean"
        },
        "event": {
          "const": "Disembark",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Body",
        "BodyID",
        "Multicrew",
        "OnPlanet",
        "OnStation",
        "SRV",
        "StarSystem",
        "SystemAddress",
        "Taxi",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "DockFighter": {
      "additionalProperties": false,
      "properties": {
        "ID": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "DockFighter",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "DockSRV": {
      "additionalProperties": false,
      "properties": {
        "ID": {
          "$ref": "#/definitions/ID"
        },
        "SRVType": {
          "type": "string"
        },
        "SRVType_Localised": {
          "type": "string"
        },
        "event": {
          "const": "DockSRV",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Docked": {
      "additionalProperties": false,
      "description": "Written when landing at landing pad in a space station, output, or surface settlement.\n\nThe \"anonymous docking\" protocol comes into effect if you're either Wanted (ie have a local bounty) or have an ActiveFine.",
      "properties": {
        "ActiveFine": {
          "description": "True if any fine is active.",
          "type": "boolean"
        },
        "CockpitBreach": {
          "description": "True if landing with breached cockpit.",
          "type": "boolean"
        },
        "DistFromStarLS": {
          "type": "number"
        },
        "LandingPads": {
          "additionalProperties": false,
          "properties": {
            "Large": {
              "type": "number"
            },
            "Medium": {
              "type": "number"
            },
            "Small": {
              "type": "number"
            }
          },
          "required": [
            "Small",
            "Medium",
            "Large"
          ],
          "type": "object"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Multicrew": {
          "type": "boolean"
        },
        "Security": {
          "type": "string"
        },
        "Security_Localised": {
          "type": "string"
        },
        "StarSystem": {
          "description": "The name of the start system.",
          "type": "string"
        },
        "StationAllegiance": {
          "type": "string"
        },
        "StationEconomies": {
          "description": "List of station economies.",
          "items": {
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "Name_Localised": {
                "type": "string"
              },
              "Proportion": {
                "type": "number"
              }
            },
            "required": [
              "Name",
              "Proportion"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "StationEconomy": {
          "description": "The station's primary economy.",
          "type": "string"
        },
        "StationEconomy_Localised": {
          "type": "string"
        },
        "StationFaction": {
          "additionalProperties": false,
          "description": "The station's controlling faction.",
          "properties": {
            "FactionState": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": [
            "Name"
          ],
          "type": "object"
        },
        "StationGovernment": {
          "type": "string"
        },
        "StationGovernment_Localised": {
          "type": "string"
        },
        "StationName": {
          "description": "The name of the station.",
          "type": "string"
        },
        "StationServices": {
          "items": {
            "$ref": "#/definitions/StationService"
          },
          "type": "array"
        },
        "StationState": {
          "type": "string"
        },
        "StationType": {
          "$ref": "#/definitions/StationType",
          "description": "The type of the station. Not set in older journals."
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "Taxi": {
          "type": "boolean"
        },
        "Wanted": {
          "description": "True if docking when wanted locally.",
          "type": "boolean"
        },
        "event": {
          "const": "Docked",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "StationName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "DockingCancelled": {
      "additionalProperties": false,
      "description": "Written when the player cancels a docking request.",
      "properties": {
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "StationName": {
          "type": "string"
        },
        "StationType": {
          "$ref": "#/definitions/StationType"
        },
        "event": {
          "const": "DockingCancelled",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "DockingDenied": {
      "additionalProperties": false,
      "description": "Written when the station denies a docking request.",
      "properties": {
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Reason": {
          "type": "string"
        },
        "StationName": {
          "type": "string"
        },
        "StationType": {
          "$ref": "#/definitions/StationType"
        },
        "event": {
          "const": "DockingDenied",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Reason",
        "StationName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "DockingGranted": {
      "additionalProperties": false,
      "description": "Written when a docking request is granted.",
      "properties": {
        "LandingPad": {
          "type": "number"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "StationName": {
          "type": "string"
        },
        "StationType": {
          "$ref": "#/definitions/StationType"
        },
        "event": {
          "const": "DockingGranted",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "LandingPad",
        "StationName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "DockingRequested": {
      "additionalProperties": false,
      "description": "Written when the player requests a docking at a station.",
      "properties": {
        "LandingPads": {
          "additionalProperties": false,
          "properties": {
            "Large": {
              "type": "number"
            },
            "Medium": {
              "type": "number"
            },
            "Small": {
              "type": "number"
            }
          },
          "required": [
            "Small",
            "Medium",
            "Large"
          ],
          "type": "object"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "StationName": {
          "type": "string"
        },
        "StationType": {
          "$ref": "#/definitions/StationType"
        },
        "event": {
          "const": "DockingRequested",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "StationName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "DockingTimeout": {
      "additionalProperties": false,
      "description": "Written when a docking request has timed out.",
      "properties": {
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "StationName": {
          "type": "string"
        },
        "StationType": {
          "$ref": "#/definitions/StationType"
        },
        "event": {
          "const": "DockingTimeout",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "StationName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "DropItems": {
      "additionalProperties": false,
      "properties": {
        "Count": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "OwnerID": {
          "$ref": "#/definitions/ID"
        },
        "Type": {
          "type": "string"
        },
        "event": {
          "const": "DropItems",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Count",
        "Name",
        "OwnerID",
        "Type",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "DropshipDeploy": {
      "additionalProperties": false,
      "properties": {
        "Body": {
          "type": "string"
        },
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "OnPlanet": {
          "type": "boolean"
        },
        "OnStation": {
          "type": "boolean"
        },
        "StarSystem": {
          "type": "string"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "DropshipDeploy",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Body",
        "BodyID",
        "OnPlanet",
        "OnStation",
        "StarSystem",
        "SystemAddress",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "EjectCargo": {
      "additionalProperties": false,
      "properties": {
        "Abandoned": {
          "type": "boolean"
        },
        "Count": {
          "type": "number"
        },
        "PowerplayOrigin": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        },
        "Type_Localised": {
          "type": "string"
        },
        "event": {
          "const": "EjectCargo",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Abandoned",
        "Count",
        "Type",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Embark": {
      "additionalProperties": false,
      "properties": {
        "Body": {
          "type": "string"
        },
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "Crew": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "Role": {
                "type": "string"
              }
            },
            "required": [
              "Name",
              "Role"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "ID": {
          "$ref": "#/definitions/ID"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Multicrew": {
          "type": "boolean"
        },
        "OnPlanet": {
          "type": "boolean"
        },
        "OnStation": {
          "type": "boolean"
        },
        "SRV": {
          "type": "boolean"
        },
        "StarSystem": {
          "type": "string"
        },
        "StationName": {
          "type": "string"
        },
        "StationType": {
          "$ref": "#/definitions/StationType"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "Taxi": {
          "type": "boolean"
        },
        "event": {
          "const": "Embark",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Body",
        "BodyID",
        "Multicrew",
        "OnPlanet",
        "OnStation",
        "SRV",
        "StarSystem",
        "SystemAddress",
        "Taxi",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "EndCrewSession": {
      "additionalProperties": false,
      "properties": {
        "OnCrime": {
          "type": "boolean"
        },
        "Telepresence": {
          "type": "boolean"
        },
        "event": {
          "const": "EndCrewSession",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "OnCrime",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Engineer": {
      "anyOf": [
        {
          "$ref": "#/definitions/LockedEngineer"
        },
        {
          "$ref": "#/definitions/UnlockedEngineer"
        }
      ],
      "description": "Union type of  {@link  LockedEngineer }  and  {@link  UnlockedEngineer } ."
    },
    "EngineerApply": {
      "additionalProperties": false,
      "description": "This event is obsolete and no longer written since ED v3.0.",
      "properties": {
        "Blueprint": {
          "type": "string"
        },
        "Engineer": {
          "type": "string"
        },
        "Level": {
          "type": "number"
        },
        "Override": {
          "type": "string"
        },
        "event": {
          "const": "EngineerApply",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Blueprint",
        "Engineer",
        "Level",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "EngineerContribution": {
      "additionalProperties": false,
      "properties": {
        "Commodity": {
          "type": "string"
        },
        "Commodity_Localised": {
          "type": "string"
        },
        "Engineer": {
          "type": "string"
        },
        "EngineerID": {
          "$ref": "#/definitions/ID"
        },
        "Faction": {
          "type": "string"
        },
        "Material": {
          "type": "string"
        },
        "Material_Localised": {
          "type": "string"
        },
        "Quantity": {
          "type": "number"
        },
        "TotalQuantity": {
          "type": "number"
        },
        "Type": {
          "type": "string"
        },
        "event": {
          "const": "EngineerContribution",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Engineer",
        "Quantity",
        "TotalQuantity",
        "Type",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "EngineerCraft": {
      "additionalProperties": false,
      "properties": {
        "ApplyExperimentalEffect": {
          "type": "string"
        },
        "Blueprint": {
          "type": "string"
        },
        "BlueprintID": {
          "$ref": "#/definitions/ID"
        },
        "BlueprintName": {
          "type": "string"
        },
        "Engineer": {
          "type": "string"
        },
        "EngineerID": {
          "$ref": "#/definitions/ID"
        },
        "ExperimentalEffect": {
          "type": "string"
        },
        "ExperimentalEffect_Localised": {
          "type": "string"
        },
        "Ingredients": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Count": {
                "type": "number"
              },
              "Name": {
                "type": "string"
              },
              "Name_Localised": {
                "type": "string"
              }
            },
            "required": [
              "Count",
              "Name"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "Level": {
          "type": "number"
        },
        "Modifiers": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Label": {
                "type": "string"
              },
              "LessIsGood": {
                "type": "number"
              },
              "OriginalValue": {
                "type": "number"
              },
              "Value": {
                "type": "number"
              },
              "ValueStr": {
                "type": "string"
              },
              "ValueStr_Localised": {
                "type": "string"
              }
            },
            "required": [
              "Label"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "Module": {
          "type": "string"
        },
        "Quality": {
          "type": "number"
        },
        "Slot": {
          "type": "string"
        },
        "event": {
          "const": "EngineerCraft",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Ingredients",
        "Level",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "EngineerLegacyConvert": {
      "additionalProperties": false,
      "properties": {
        "ApplyExperimentalEffect": {
          "type": "string"
        },
        "Blueprint": {
          "type": "string"
        },
        "BlueprintID": {
          "$ref": "#/definitions/ID"
        },
        "BlueprintName": {
          "type": "string"
        },
        "Engineer": {
          "type": "string"
        },
        "EngineerID": {
          "$ref": "#/definitions/ID"
        },
        "ExperimentalEffect": {
          "type": "string"
        },
        "ExperimentalEffect_Localised": {
          "type": "string"
        },
        "IsPreview": {
          "type": "boolean"
        },
        "Level": {
          "type": "number"
        },
        "Modifiers": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Label": {
                "type": "string"
              },
              "LessIsGood": {
                "type": "number"
              },
              "OriginalValue": {
                "type": "number"
              },
              "Value": {
                "type": "number"
              },
              "ValueStr": {
                "type": "string"
              },
              "ValueStr_Localised": {
                "type": "string"
              }
            },
            "required": [
              "Label"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "Module": {
          "type": "string"
        },
        "Quality": {
          "type": "number"
        },
        "Slot": {
          "type": "string"
        },
        "event": {
          "const": "EngineerLegacyConvert",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Engineer",
        "IsPreview",
        "Level",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "EngineerProgress": {
      "additionalProperties": false,
      "properties": {
        "Engineers": {
          "description": "List of engineers. As old event formats (containing only one engineer) are converted to new event format this list may only contain one engineer and the event may be fired multiple times.",
          "items": {
            "$ref": "#/definitions/Engineer"
          },
          "type": "array"
        },
        "event": {
          "const": "EngineerProgress",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Engineers",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "EscapeInterdiction": {
      "additionalProperties": false,
      "description": "Written when player has escaped interdiction.",
      "properties": {
        "Interdictor": {
          "description": "The interdicting pilot name.",
          "type": "string"
        },
        "Interdictor_Localised": {
          "type": "string"
        },
        "IsPlayer": {
          "description": "Whether player or NPC.",
          "type": "boolean"
        },
        "event": {
          "const": "EscapeInterdiction",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Interdictor",
        "IsPlayer",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "FCMaterials": {
      "additionalProperties": false,
      "description": "Written when trading with a Fleet Carrier Bartender for materials, a file is written with the price list. Similar to the Shipyard and Cargo events, a brief entry is written in the journal.",
      "properties": {
        "CarrierID": {
          "type": "string"
        },
        "CarrierName": {
          "type": "string"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "FCMaterials",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "CarrierID",
        "CarrierName",
        "MarketID",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "FSDJump": {
      "additionalProperties": false,
      "description": "Written when jumping from one star to another.",
      "properties": {
        "Body": {
          "type": "string"
        },
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "BodyType": {
          "$ref": "#/definitions/BodyType"
        },
        "BoostUsed": {
          "description": "Whether FSD boost was used.",
          "type": "number"
        },
        "Conflicts": {
          "description": "Info about local conflicts (if any)",
          "items": {
            "additionalProperties": false,
            "properties": {
              "Faction1": {
                "$ref": "#/definitions/ConflictFaction"
              },
              "Faction2": {
                "$ref": "#/definitions/ConflictFaction"
              },
              "Status": {
                "type": "string"
              },
              "WarType": {
                "type": "string"
              }
            },
            "required": [
              "WarType",
              "Status",
              "Faction1",
              "Faction2"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "ControllingPower": {
          "type": "string"
        },
        "Factions": {
          "description": "Info for the local minor factions.",
          "items": {
            "additionalProperties": false,
            "properties": {
              "ActiveStates": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "State": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "State"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "Allegiance": {
                "type": "string"
              },
              "FactionState": {
                "type": "string"
              },
              "Government": {
                "type": "string"
              },
              "Happiness": {
                "type": "string"
              },
              "Happiness_Localised": {
                "type": "string"
              },
              "Influence": {
                "type": "number"
              },
              "MyReputation": {
                "type": "number"
              },
              "Name": {
                "type": "string"
              },
              "PendingStates": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "State": {
                      "type": "string"
                    },
                    "Trend": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "State",
                    "Trend"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "RecoveringStates": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "State": {
                      "type": "string"
                    },
                    "Trend": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "State",
                    "Trend"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "SquadronFaction": {
                "type": "boolean"
              }
            },
            "required": [
              "Name",
              "FactionState",
              "Government",
              "Influence",
              "Allegiance"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "FuelLevel": {
          "type": "number"
        },
        "FuelUsed": {
          "type": "number"
        },
        "JumpDist": {
          "description": "Distance jumped.",
          "type": "number"
        },
        "Multicrew": {
          "type": "boolean"
        },
        "Population": {
          "type": "number"
        },
        "PowerplayConflictProgress": {
          "items": {
            "$ref": "#/definitions/ConflictProgress"
          },
          "type": "array"
        },
        "PowerplayState": {
          "$ref": "#/definitions/PowerState",
          "description": "The system's powerplay state."
        },
        "PowerplayStateControlProgress": {
          "type": "number"
        },
        "PowerplayStateReinforcement": {
          "type": "number"
        },
        "PowerplayStateUndermining": {
          "type": "number"
        },
        "Powers": {
          "description": "Names of any powers contesting the system, or the name of the controlling power.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "StarPos": {
          "description": "Star position as array (x, y, z) in light years.",
          "items": {
            "type": "number"
          },
          "maxItems": 3,
          "minItems": 3,
          "type": "array"
        },
        "StarSystem": {
          "description": "Name of destination star system.",
          "type": "string"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "SystemAllegiance": {
          "type": "string"
        },
        "SystemEconomy": {
          "type": "string"
        },
        "SystemEconomy_Localised": {
          "type": "string"
        },
        "SystemFaction": {
          "additionalProperties": false,
          "description": "System's controlling faction.",
          "properties": {
            "FactionState": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": [
            "Name"
          ],
          "type": "object"
        },
        "SystemGovernment": {
          "type": "string"
        },
        "SystemGovernment_Localised": {
          "type": "string"
        },
        "SystemSecondEconomy": {
          "type": "string"
        },
        "SystemSecondEconomy_Localised": {
          "type": "string"
        },
        "SystemSecurity": {
          "type": "string"
        },
        "SystemSecurity_Localised": {
          "type": "string"
        },
        "Taxi": {
          "type": "boolean"
        },
        "ThargoidWar": {
          "additionalProperties": false,
          "description": "If starting in a system affected by the thargoid war.",
          "properties": {
            "CurrentState": {
              "type": "string"
            },
            "NextStateFailure": {
              "type": "string"
            },
            "NextStateSuccess": {
              "type": "string"
            },
            "RemainingPorts": {
              "type": "number"
            },
            "SuccessStateReached": {
              "type": "boolean"
            },
            "WarProgress": {
              "type": "number"
            }
          },
          "required": [
            "CurrentState",
            "NextStateSuccess",
            "NextStateFailure",
            "SuccessStateReached",
            "WarProgress",
            "RemainingPorts"
          ],
          "type": "object"
        },
        "Wanted": {
          "type": "boolean"
        },
        "event": {
          "const": "FSDJump",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "FuelLevel",
        "FuelUsed",
        "JumpDist",
        "StarPos",
        "StarSystem",
        "SystemAllegiance",
        "SystemEconomy",
        "SystemGovernment",
        "SystemSecurity",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "FSDTarget": {
      "additionalProperties": false,
      "description": "Written when selecting a star system to jump to.\n\nNote, when following a multi-jump route, this will typically appear for the next star, during a jump, ie after \"StartJump\" but before the \"FSDJump\"",
      "properties": {
        "Name": {
          "type": "string"
        },
        "RemainingJumpsInRoute": {
          "type": "number"
        },
        "StarClass": {
          "$ref": "#/definitions/StarType"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "FSDTarget",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Name",
        "SystemAddress",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "FSSAllBodiesFound": {
      "additionalProperties": false,
      "description": "Written after having identified all bodies in the system.",
      "properties": {
        "Count": {
          "type": "number"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "SystemName": {
          "type": "string"
        },
        "event": {
          "const": "FSSAllBodiesFound",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Count",
        "SystemAddress",
        "SystemName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "FSSBodySignals": {
      "additionalProperties": false,
      "properties": {
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "BodyName": {
          "type": "string"
        },
        "Signals": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Count": {
                "type": "number"
              },
              "Type": {
                "type": "string"
              },
              "Type_Localised": {
                "type": "string"
              }
            },
            "required": [
              "Type",
              "Type_Localised",
              "Count"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "FSSBodySignals",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BodyID",
        "BodyName",
        "Signals",
        "SystemAddress",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "FSSDiscoveryScan": {
      "additionalProperties": false,
      "description": "Written when performing a full system scan (\"Honk\")",
      "properties": {
        "BodyCount": {
          "description": "Number of stellar bodies in system.",
          "type": "number"
        },
        "NonBodyCount": {
          "description": "Number of non-body signals found.",
          "type": "number"
        },
        "Progress": {
          "description": "A value in range 0-1 showing how completely the system has been scanned.",
          "type": "number"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "SystemName": {
          "type": "string"
        },
        "event": {
          "const": "FSSDiscoveryScan",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BodyCount",
        "NonBodyCount",
        "Progress",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "FSSSignalDiscovered": {
      "additionalProperties": false,
      "description": "Written when zooming in on a signal using the FSS scanner.",
      "properties": {
        "IsStation": {
          "description": "True if it is a station.",
          "type": "boolean"
        },
        "OpposingPower": {
          "type": "string"
        },
        "SignalName": {
          "type": "string"
        },
        "SignalName_Localised": {
          "type": "string"
        },
        "SignalType": {
          "$ref": "#/definitions/SignalType",
          "description": "The type of the signal. May be missing in older journals."
        },
        "SpawningFaction": {
          "description": "The minor faction, if relevant",
          "type": "string"
        },
        "SpawningFaction_Localised": {
          "type": "string"
        },
        "SpawningPower": {
          "type": "string"
        },
        "SpawningState": {
          "description": "The BGS state that triggered this event, if relevant.",
          "type": "string"
        },
        "SpawningState_Localised": {
          "type": "string"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "ThreatLevel": {
          "description": "Threat level of a USS.",
          "type": "number"
        },
        "TimeRemaining": {
          "description": "Remaining lifetime in seconds, if relevant",
          "type": "number"
        },
        "USSType": {
          "type": "string"
        },
        "USSType_Localised": {
          "type": "string"
        },
        "event": {
          "const": "FSSSignalDiscovered",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "SignalName",
        "SystemAddress",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "FactionKillBond": {
      "additionalProperties": false,
      "description": "Written when player is rewarded for taking part in a combat zone.",
      "properties": {
        "AwardingFaction": {
          "type": "string"
        },
        "AwardingFaction_Localised": {
          "type": "string"
        },
        "Reward": {
          "type": "number"
        },
        "VictimFaction": {
          "type": "string"
        },
        "VictimFaction_Localised": {
          "type": "string"
        },
        "event": {
          "const": "FactionKillBond",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "AwardingFaction",
        "Reward",
        "VictimFaction",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "FetchRemoteModule": {
      "additionalProperties": false,
      "properties": {
        "ServerId": {
          "type": "number"
        },
        "Ship": {
          "type": "string"
        },
        "ShipID": {
          "$ref": "#/definitions/ID"
        },
        "StorageSlot": {
          "type": "number"
        },
        "StoredItem": {
          "type": "string"
        },
        "StoredItem_Localised": {
          "type": "string"
        },
        "TransferCost": {
          "type": "number"
        },
        "TransferTime": {
          "type": "number"
        },
        "event": {
          "const": "FetchRemoteModule",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "ServerId",
        "Ship",
        "ShipID",
        "StorageSlot",
        "StoredItem",
        "TransferCost",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "FighterDestroyed": {
      "additionalProperties": false,
      "description": "Written when a ship-launched fighter is destroyed.",
      "properties": {
        "ID": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "FighterDestroyed",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "FighterRebuilt": {
      "additionalProperties": false,
      "properties": {
        "ID": {
          "$ref": "#/definitions/ID"
        },
        "Loadout": {
          "type": "string"
        },
        "event": {
          "const": "FighterRebuilt",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Loadout",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Fileheader": {
      "additionalProperties": false,
      "description": "The heading entry is added at the beginning of every file.\n\nThe first event in a new journal file. If the play session goes on a long time, and the journal gets very large, the file will be closed and a new file is started with an increased part number. See also the  {@link  Continued  }  event.",
      "properties": {
        "Odyssey": {
          "description": "True when odyssey, false if other version.",
          "type": "boolean"
        },
        "build": {
          "description": "The game build number.",
          "type": "string"
        },
        "event": {
          "const": "Fileheader",
          "description": "The type of event.",
          "type": "string"
        },
        "gameversion": {
          "description": "Which version of the game produced the log (will indicate if beta).",
          "type": "string"
        },
        "language": {
          "description": "The language code.",
          "type": "string"
        },
        "part": {
          "description": "The file part number.",
          "type": "number"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "build",
        "event",
        "gameversion",
        "language",
        "part",
        "timestamp"
      ],
      "type": "object"
    },
    "Friends": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Status": {
          "type": "string"
        },
        "event": {
          "const": "Friends",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Name",
        "Status",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "FuelScoop": {
      "additionalProperties": false,
      "properties": {
        "Scooped": {
          "type": "number"
        },
        "Total": {
          "type": "number"
        },
        "event": {
          "const": "FuelScoop",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Scooped",
        "Total",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "GameMode": {
      "description": "The game mode.",
      "enum": [
        "Open",
        "Solo",
        "Group"
      ],
      "type": "string"
    },
    "HeatDamage": {
      "additionalProperties": false,
      "description": "When taking damage due to overheating.",
      "properties": {
        "event": {
          "const": "HeatDamage",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "HeatWarning": {
      "additionalProperties": false,
      "description": "Written when heat exceeds 100%.",
      "properties": {
        "event": {
          "const": "HeatWarning",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "HullDamage": {
      "additionalProperties": false,
      "description": "Written when hull health drops below a threshold (20% steps).",
      "properties": {
        "Fighter": {
          "description": "True for ship-launched fighter.",
          "type": "boolean"
        },
        "Health": {
          "type": "number"
        },
        "PlayerPilot": {
          "description": "True if player is piloting the ship/fighter taking damage.",
          "type": "boolean"
        },
        "event": {
          "const": "HullDamage",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Health",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ID": {
      "description": "ID numbers in Elite Dangerous may be very large, exceeding the 53 bit range of JavaScript number type. So IDs are treated like both, number and bigint. The JSON parser automatically creates bigint values for ID properties when the value exceeds the safe integer range.",
      "type": "integer"
    },
    "Interdicted": {
      "additionalProperties": false,
      "description": "Written when player was interdicted by player or NPC.",
      "properties": {
        "CombatRank": {
          "description": "Combat rank (if player).",
          "type": "number"
        },
        "Faction": {
          "description": "Faction (if NPC).",
          "type": "string"
        },
        "Interdictor": {
          "description": "Interdicting pilot name.",
          "type": "string"
        },
        "Interdictor_Localised": {
          "type": "string"
        },
        "IsPlayer": {
          "description": "Whether player or NPC.",
          "type": "boolean"
        },
        "Power": {
          "description": "The power if NPC working for one.",
          "type": "string"
        },
        "Submitted": {
          "description": "Whether player submitted to the interdiction.",
          "type": "boolean"
        },
        "event": {
          "const": "Interdicted",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Interdictor",
        "IsPlayer",
        "Submitted",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Interdiction": {
      "additionalProperties": false,
      "description": "Written when player has (attempted to) interdict another player or NPC.",
      "properties": {
        "CombatRank": {
          "description": "Combat rank (if player).",
          "type": "number"
        },
        "Faction": {
          "description": "Faction (if NPC).",
          "type": "string"
        },
        "Interdicted": {
          "description": "Victim pilot name.",
          "type": "string"
        },
        "IsPlayer": {
          "description": "Whether player or NPC.",
          "type": "boolean"
        },
        "Power": {
          "description": "Power (if NPC working for a power).",
          "type": "string"
        },
        "Success": {
          "description": "Whether interdiction has been successful.",
          "type": "boolean"
        },
        "event": {
          "const": "Interdiction",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "IsPlayer",
        "Success",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "InvitedToSquadron": {
      "additionalProperties": false,
      "properties": {
        "SquadronName": {
          "type": "string"
        },
        "event": {
          "const": "InvitedToSquadron",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "SquadronName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "JetConeBoost": {
      "additionalProperties": false,
      "properties": {
        "BoostValue": {
          "type": "number"
        },
        "event": {
          "const": "JetConeBoost",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BoostValue",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "JetConeDamage": {
      "additionalProperties": false,
      "properties": {
        "Module": {
          "type": "string"
        },
        "Module_Localised": {
          "type": "string"
        },
        "event": {
          "const": "JetConeDamage",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Module",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "JoinACrew": {
      "additionalProperties": false,
      "properties": {
        "Captain": {
          "type": "string"
        },
        "event": {
          "const": "JoinACrew",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Captain",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "JoinedSquadron": {
      "additionalProperties": false,
      "properties": {
        "SquadronID": {
          "$ref": "#/definitions/ID"
        },
        "SquadronName": {
          "type": "string"
        },
        "event": {
          "const": "JoinedSquadron",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "SquadronName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "JumpType": {
      "description": "The type of jump.",
      "enum": [
        "Hyperspace",
        "Supercruise"
      ],
      "type": "string"
    },
    "KickCrewMember": {
      "additionalProperties": false,
      "properties": {
        "Crew": {
          "type": "string"
        },
        "OnCrime": {
          "type": "boolean"
        },
        "event": {
          "const": "KickCrewMember",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Crew",
        "OnCrime",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "LaunchDrone": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "event": {
          "const": "LaunchDrone",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Type",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "LaunchFighter": {
      "additionalProperties": false,
      "properties": {
        "ID": {
          "$ref": "#/definitions/ID"
        },
        "Loadout": {
          "type": "string"
        },
        "PlayerControlled": {
          "type": "boolean"
        },
        "event": {
          "const": "LaunchFighter",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Loadout",
        "PlayerControlled",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "LaunchSRV": {
      "additionalProperties": false,
      "properties": {
        "ID": {
          "$ref": "#/definitions/ID"
        },
        "Loadout": {
          "type": "string"
        },
        "PlayerControlled": {
          "type": "boolean"
        },
        "SRVType": {
          "type": "string"
        },
        "SRVType_Localised": {
          "type": "string"
        },
        "event": {
          "const": "LaunchSRV",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Loadout",
        "PlayerControlled",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "LeaveBody": {
      "additionalProperties": false,
      "description": "Written when flying away from a planet and distance increases above the \"Orbital Cruise\" altitude.",
      "properties": {
        "Body": {
          "type": "string"
        },
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "StarSystem": {
          "type": "string"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "LeaveBody",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Body",
        "BodyID",
        "StarSystem",
        "SystemAddress",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "LeftSquadron": {
      "additionalProperties": false,
      "properties": {
        "SquadronID": {
          "$ref": "#/definitions/ID"
        },
        "SquadronName": {
          "type": "string"
        },
        "event": {
          "const": "LeftSquadron",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "SquadronName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Liftoff": {
      "additionalProperties": false,
      "description": "Written when taking off from planet surface.",
      "properties": {
        "Body": {
          "type": "string"
        },
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "Latitude": {
          "type": "number"
        },
        "Longitude": {
          "type": "number"
        },
        "Multicrew": {
          "type": "boolean"
        },
        "NearestDestination": {
          "type": "string"
        },
        "NearestDestination_Localised": {
          "type": "string"
        },
        "OnPlanet": {
          "type": "boolean"
        },
        "OnStation": {
          "type": "boolean"
        },
        "PlayerControlled": {
          "description": "False if ship dismissed when player is in SRV, true if player is taking off.",
          "type": "boolean"
        },
        "StarSystem": {
          "type": "string"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "Taxi": {
          "type": "boolean"
        },
        "event": {
          "const": "Liftoff",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "LoadGame": {
      "additionalProperties": false,
      "description": "Written at startup when loading from main menu into the game.",
      "properties": {
        "Commander": {
          "description": "The commander's name.",
          "type": "string"
        },
        "Credits": {
          "description": "Current credit balance.",
          "type": "number"
        },
        "FID": {
          "description": "The player ID. Not set in older journals (before December 2018).",
          "type": "string"
        },
        "FuelCapacity": {
          "description": "Size if main tank. Not set in journals from older game versions or when currently flying in an Apex Shuttle.",
          "type": "number"
        },
        "FuelLevel": {
          "description": "Current fuel level. Not set in journals from older game versions or when currently flying in an Apex Shuttle.",
          "type": "number"
        },
        "GameMode": {
          "$ref": "#/definitions/GameMode",
          "description": "The game mode. Can be missing for unknown reasons, maybe a game bug."
        },
        "Group": {
          "description": "Name of the group (if in a group). Not set if game mode is Open or Solo.",
          "type": "string"
        },
        "Horizons": {
          "description": "True when game has Horizons. Not set before Horizons.",
          "type": "boolean"
        },
        "Loan": {
          "description": "Current loan.",
          "type": "number"
        },
        "Odyssey": {
          "description": "True when game has Odyssey. Not set before Odyssey.",
          "type": "boolean"
        },
        "Ship": {
          "description": "The current ship type. Can be missing for unknown reasons, maybe a game bug.",
          "type": "string"
        },
        "ShipID": {
          "$ref": "#/definitions/ID",
          "description": "The ID of the current ship. Not set if player is currently in an Apex Shuttle."
        },
        "ShipIdent": {
          "description": "User-defined ship ID. Not set in journals from older game versions or when currently flying in an Apex Shuttle.",
          "type": "string"
        },
        "ShipName": {
          "description": "User-defined ship name. Not set in journals from older game versions or when currently flying in an Apex Shuttle.",
          "type": "string"
        },
        "Ship_Localised": {
          "description": "Localised ship type. Not always set unfortunately, so a custom translation from  {@link  Ship }  value is needed.",
          "type": "string"
        },
        "StartDead": {
          "description": "True if starting dead. See  {@link  Resurrect  } .",
          "type": "boolean"
        },
        "StartLanded": {
          "description": "True if landed.",
          "type": "boolean"
        },
        "build": {
          "description": "The game build. Set since Odyssey Update 5 (July 2021).",
          "type": "string"
        },
        "event": {
          "const": "LoadGame",
          "description": "The type of event.",
          "type": "string"
        },
        "gameversion": {
          "description": "The game version. Set since Odyssey Update 5 (July 2021).",
          "type": "string"
        },
        "language": {
          "description": "The game language. Set since Odyssey Update 5 (July 2021).",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Commander",
        "Credits",
        "Loan",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Loadout": {
      "additionalProperties": false,
      "description": "Written at startup when loading from main menu, when switching ships, after changing the ship in outfitting or when docking SRV back in mothership.",
      "properties": {
        "CargoCapacity": {
          "type": "number"
        },
        "FuelCapacity": {
          "additionalProperties": false,
          "properties": {
            "Main": {
              "type": "number"
            },
            "Reserve": {
              "type": "number"
            }
          },
          "required": [
            "Main",
            "Reserve"
          ],
          "type": "object"
        },
        "Hot": {
          "description": "If wanted at startup.",
          "type": "boolean"
        },
        "HullHealth": {
          "type": "number"
        },
        "HullValue": {
          "type": "number"
        },
        "MaxJumpRange": {
          "description": "Maximum jump range based on zero cargo, and just enough fuel for 1 jump.",
          "type": "number"
        },
        "Modules": {
          "description": "Array of installed items.",
          "items": {
            "additionalProperties": false,
            "properties": {
              "AmmoInClip": {
                "description": "For a passenger cabin, holds the number of places in the cabin.",
                "type": "number"
              },
              "AmmoInHopper": {
                "type": "number"
              },
              "EngineerBlueprint": {
                "description": "Replaced by Engineering object in newer version.",
                "type": "string"
              },
              "EngineerLevel": {
                "description": "Replaced by Engineering object in newer version.",
                "type": "number"
              },
              "Engineering": {
                "additionalProperties": false,
                "description": "Set if module is engineered.",
                "properties": {
                  "BlueprintID": {
                    "$ref": "#/definitions/ID",
                    "description": "The ID of the applied blueprint."
                  },
                  "BlueprintName": {
                    "description": "The name of the applied blueprint.",
                    "type": "string"
                  },
                  "Engineer": {
                    "description": "The name of the engineer.",
                    "type": "string"
                  },
                  "EngineerID": {
                    "$ref": "#/definitions/ID",
                    "description": "The ID of the engineer."
                  },
                  "ExperimentalEffect": {
                    "description": "The experimental effect if applied.",
                    "type": "string"
                  },
                  "ExperimentalEffect_Localised": {
                    "description": "Localised name of applied experimental effect.",
                    "type": "string"
                  },
                  "Level": {
                    "description": "The engineering level.",
                    "type": "number"
                  },
                  "Modifiers": {
                    "items": {
                      "additionalProperties": false,
                      "properties": {
                        "Label": {
                          "type": "string"
                        },
                        "LessIsGood": {
                          "type": "number"
                        },
                        "OriginalValue": {
                          "type": "number"
                        },
                        "Value": {
                          "type": [
                            "string",
                            "number"
                          ]
                        },
                        "ValueStr": {
                          "type": "string"
                        },
                        "ValueStr_Localised": {
                          "type": "string"
                        },
                        "Value_Localised": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "Label"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "Quality": {
                    "type": "number"
                  }
                },
                "required": [
                  "BlueprintID",
                  "BlueprintName",
                  "EngineerID",
                  "Level",
                  "Modifiers",
                  "Quality"
                ],
                "type": "object"
              },
              "Health": {
                "type": "number"
              },
              "Item": {
                "description": "Module name.",
                "type": "string"
              },
              "On": {
                "description": "Indicates if module is on or off.",
                "type": "boolean"
              },
              "Priority": {
                "description": "Power priority.",
                "type": "number"
              },
              "Slot": {
                "type": "string"
              },
              "Value": {
                "type": "number"
              }
            },
            "required": [
              "Slot",
              "Item",
              "On",
              "Priority",
              "Health"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "ModulesValue": {
          "type": "number"
        },
        "Rebuy": {
          "type": "number"
        },
        "Ship": {
          "description": "Current ship type.",
          "type": "string"
        },
        "ShipID": {
          "$ref": "#/definitions/ID",
          "description": "Ship ID number."
        },
        "ShipIdent": {
          "description": "User-defined ship ID string.",
          "type": "string"
        },
        "ShipName": {
          "description": "User-defined ship name.",
          "type": "string"
        },
        "UnladenMass": {
          "description": "Mass of hull and modules, excludes fuel and cargo.",
          "type": "number"
        },
        "event": {
          "const": "Loadout",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Modules",
        "Ship",
        "ShipID",
        "ShipIdent",
        "ShipName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "LoadoutEquipModule": {
      "additionalProperties": false,
      "properties": {
        "Class": {
          "type": "number"
        },
        "LoadoutID": {
          "$ref": "#/definitions/ID"
        },
        "LoadoutName": {
          "type": "string"
        },
        "ModuleName": {
          "type": "string"
        },
        "ModuleName_Localised": {
          "type": "string"
        },
        "SlotName": {
          "type": "string"
        },
        "SuitID": {
          "$ref": "#/definitions/ID"
        },
        "SuitModuleID": {
          "$ref": "#/definitions/ID"
        },
        "SuitName": {
          "type": "string"
        },
        "SuitName_Localised": {
          "type": "string"
        },
        "WeaponMods": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "event": {
          "const": "LoadoutEquipModule",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "LoadoutID",
        "LoadoutName",
        "ModuleName",
        "ModuleName_Localised",
        "SlotName",
        "SuitID",
        "SuitModuleID",
        "SuitName",
        "SuitName_Localised",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Location": {
      "additionalProperties": false,
      "description": "Written at startup or when being resurrected at a station.",
      "properties": {
        "Body": {
          "type": "string"
        },
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "BodyType": {
          "$ref": "#/definitions/BodyType"
        },
        "Body_Localised": {
          "type": "string"
        },
        "Conflicts": {
          "description": "Info on local conflicts.",
          "items": {
            "additionalProperties": false,
            "properties": {
              "Faction1": {
                "$ref": "#/definitions/ConflictFaction"
              },
              "Faction2": {
                "$ref": "#/definitions/ConflictFaction"
              },
              "Status": {
                "type": "string"
              },
              "WarType": {
                "type": "string"
              }
            },
            "required": [
              "WarType",
              "Status",
              "Faction1",
              "Faction2"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "ControllingPower": {
          "type": "string"
        },
        "DistFromStarLS": {
          "type": "number"
        },
        "Docked": {
          "type": "boolean"
        },
        "Factions": {
          "description": "Info on local minor factions.",
          "items": {
            "additionalProperties": false,
            "properties": {
              "ActiveStates": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "State": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "State"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "Allegiance": {
                "type": "string"
              },
              "FactionState": {
                "type": "string"
              },
              "Government": {
                "type": "string"
              },
              "Happiness": {
                "type": "string"
              },
              "Happiness_Localised": {
                "type": "string"
              },
              "Influence": {
                "type": "number"
              },
              "MyReputation": {
                "type": "number"
              },
              "Name": {
                "type": "string"
              },
              "PendingStates": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "State": {
                      "type": "string"
                    },
                    "Trend": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "State",
                    "Trend"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "RecoveringStates": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "State": {
                      "type": "string"
                    },
                    "Trend": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "State",
                    "Trend"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "SquadronFaction": {
                "type": "boolean"
              }
            },
            "required": [
              "Allegiance",
              "FactionState",
              "Government",
              "Influence",
              "Name"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "InSRV": {
          "type": "boolean"
        },
        "Latitude": {
          "type": "number"
        },
        "Longitude": {
          "type": "number"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Multicrew": {
          "type": "boolean"
        },
        "OnFoot": {
          "type": "boolean"
        },
        "Population": {
          "type": "number"
        },
        "PowerplayConflictProgress": {
          "items": {
            "$ref": "#/definitions/ConflictProgress"
          },
          "type": "array"
        },
        "PowerplayState": {
          "$ref": "#/definitions/PowerState",
          "description": "The system's powerplay state."
        },
        "PowerplayStateControlProgress": {
          "type": "number"
        },
        "PowerplayStateReinforcement": {
          "type": "number"
        },
        "PowerplayStateUndermining": {
          "type": "number"
        },
        "Powers": {
          "description": "Names of any powers contesting the system, or the name of the controlling power.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "StarPos": {
          "description": "Star position as array (x, y, z) in light years.",
          "items": {
            "type": "number"
          },
          "maxItems": 3,
          "minItems": 3,
          "type": "array"
        },
        "StarSystem": {
          "type": "string"
        },
        "StationAllegiance": {
          "type": "string"
        },
        "StationEconomies": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "Name_Localised": {
                "type": "string"
              },
              "Proportion": {
                "type": "number"
              }
            },
            "required": [
              "Name",
              "Name_Localised",
              "Proportion"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "StationEconomy": {
          "type": "string"
        },
        "StationEconomy_Localised": {
          "type": "string"
        },
        "StationFaction": {
          "additionalProperties": false,
          "properties": {
            "FactionState": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": [
            "Name"
          ],
          "type": "object"
        },
        "StationGovernment": {
          "type": "string"
        },
        "StationGovernment_Localised": {
          "type": "string"
        },
        "StationName": {
          "type": "string"
        },
        "StationServices": {
          "items": {
            "$ref": "#/definitions/StationService"
          },
          "type": "array"
        },
        "StationType": {
          "$ref": "#/definitions/StationType"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "SystemAllegiance": {
          "type": "string"
        },
        "SystemEconomy": {
          "type": "string"
        },
        "SystemEconomy_Localised": {
          "type": "string"
        },
        "SystemFaction": {
          "additionalProperties": false,
          "description": "Star system's controlling faction.",
          "properties": {
            "FactionState": {
              "type": "string"
            },
            "Name": {
              "type": "string"
            }
          },
          "required": [
            "Name"
          ],
          "type": "object"
        },
        "SystemGovernment": {
          "type": "string"
        },
        "SystemGovernment_Localised": {
          "type": "string"
        },
        "SystemSecondEconomy": {
          "type": "string"
        },
        "SystemSecondEconomy_Localised": {
          "type": "string"
        },
        "SystemSecurity": {
          "type": "string"
        },
        "SystemSecurity_Localised": {
          "type": "string"
        },
        "Taxi": {
          "type": "boolean"
        },
        "ThargoidWar": {
          "additionalProperties": false,
          "properties": {
            "CurrentState": {
              "type": "string"
            },
            "NextStateFailure": {
              "type": "string"
            },
            "NextStateSuccess": {
              "type": "string"
            },
            "RemainingPorts": {
              "type": "number"
            },
            "SuccessStateReached": {
              "type": "boolean"
            },
            "WarProgress": {
              "type": "number"
            }
          },
          "required": [
            "CurrentState",
            "NextStateSuccess",
            "NextStateFailure",
            "SuccessStateReached",
            "WarProgress",
            "RemainingPorts"
          ],
          "type": "object"
        },
        "Wanted": {
          "type": "boolean"
        },
        "event": {
          "const": "Location",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Body",
        "BodyType",
        "Docked",
        "StarPos",
        "StarSystem",
        "SystemAllegiance",
        "SystemEconomy",
        "SystemGovernment",
        "SystemSecurity",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "LockedEngineer": {
      "additionalProperties": false,
      "description": "A locked engineer (known or invited state) without rank and rang progress information.",
      "properties": {
        "Engineer": {
          "description": "The engineer's name.",
          "type": "string"
        },
        "EngineerID": {
          "$ref": "#/definitions/ID",
          "description": "The engineer ID. Not present in older events, therefore optional."
        },
        "Progress": {
          "description": "The engineer's progress state.",
          "enum": [
            "Known",
            "Invited"
          ],
          "type": "string"
        }
      },
      "required": [
        "Engineer",
        "Progress"
      ],
      "type": "object"
    },
    "Market": {
      "additionalProperties": false,
      "properties": {
        "CarrierDockingAccess": {
          "type": "string"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "StarSystem": {
          "type": "string"
        },
        "StationName": {
          "type": "string"
        },
        "StationType": {
          "$ref": "#/definitions/StationType"
        },
        "event": {
          "const": "Market",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "MarketID",
        "StarSystem",
        "StationName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "MarketBuy": {
      "additionalProperties": false,
      "properties": {
        "BuyPrice": {
          "type": "number"
        },
        "Count": {
          "type": "number"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "TotalCost": {
          "type": "number"
        },
        "Type": {
          "type": "string"
        },
        "Type_Localised": {
          "type": "string"
        },
        "event": {
          "const": "MarketBuy",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BuyPrice",
        "Count",
        "TotalCost",
        "Type",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "MarketSell": {
      "additionalProperties": false,
      "properties": {
        "AvgPricePaid": {
          "type": "number"
        },
        "BlackMarket": {
          "type": "boolean"
        },
        "Count": {
          "type": "number"
        },
        "IllegalGoods": {
          "type": "boolean"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "SellPrice": {
          "type": "number"
        },
        "StolenGoods": {
          "type": "boolean"
        },
        "TotalSale": {
          "type": "number"
        },
        "Type": {
          "type": "string"
        },
        "Type_Localised": {
          "type": "string"
        },
        "event": {
          "const": "MarketSell",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "AvgPricePaid",
        "Count",
        "SellPrice",
        "TotalSale",
        "Type",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "MassModuleStore": {
      "additionalProperties": false,
      "properties": {
        "Items": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "EngineerModifications": {
                "type": "string"
              },
              "Hot": {
                "type": "boolean"
              },
              "Level": {
                "type": "number"
              },
              "Name": {
                "type": "string"
              },
              "Name_Localised": {
                "type": "string"
              },
              "Quality": {
                "type": "number"
              },
              "Slot": {
                "type": "string"
              }
            },
            "required": [
              "Name",
              "Slot"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Ship": {
          "type": "string"
        },
        "ShipID": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "MassModuleStore",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Items",
        "Ship",
        "ShipID",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Material": {
      "additionalProperties": false,
      "description": "A single material.",
      "properties": {
        "Count": {
          "description": "The material count.",
          "type": "number"
        },
        "Name": {
          "description": "The material name.",
          "type": "string"
        },
        "Name_Localised": {
          "description": "The localised material name.",
          "type": "string"
        }
      },
      "required": [
        "Count",
        "Name"
      ],
      "type": "object"
    },
    "MaterialCollected": {
      "additionalProperties": false,
      "description": "Written whenever materials are collected.",
      "properties": {
        "Category": {
          "description": "Type of material.",
          "type": "string"
        },
        "Count": {
          "description": "Number of units collected.",
          "type": "number"
        },
        "Name": {
          "description": "Name of material.",
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "event": {
          "const": "MaterialCollected",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Category",
        "Count",
        "Name",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "MaterialDiscarded": {
      "additionalProperties": false,
      "description": "Written when materials are discarded.",
      "properties": {
        "Category": {
          "type": "string"
        },
        "Count": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "event": {
          "const": "MaterialDiscarded",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Category",
        "Count",
        "Name",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "MaterialDiscovered": {
      "additionalProperties": false,
      "description": "Written when a new material is discovered.",
      "properties": {
        "Category": {
          "type": "string"
        },
        "DiscoveryNumber": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "event": {
          "const": "MaterialDiscovered",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Category",
        "DiscoveryNumber",
        "Name",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "MaterialTrade": {
      "additionalProperties": false,
      "properties": {
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Paid": {
          "additionalProperties": false,
          "properties": {
            "Category": {
              "type": "string"
            },
            "Category_Localised": {
              "type": "string"
            },
            "Material": {
              "type": "string"
            },
            "Material_Localised": {
              "type": "string"
            },
            "Quantity": {
              "type": "number"
            }
          },
          "required": [
            "Category",
            "Material",
            "Quantity"
          ],
          "type": "object"
        },
        "Received": {
          "additionalProperties": false,
          "properties": {
            "Category": {
              "type": "string"
            },
            "Category_Localised": {
              "type": "string"
            },
            "Material": {
              "type": "string"
            },
            "Material_Localised": {
              "type": "string"
            },
            "Quantity": {
              "type": "number"
            }
          },
          "required": [
            "Category",
            "Material",
            "Quantity"
          ],
          "type": "object"
        },
        "TraderType": {
          "type": "string"
        },
        "event": {
          "const": "MaterialTrade",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "MarketID",
        "Paid",
        "Received",
        "TraderType",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Materials": {
      "additionalProperties": false,
      "description": "Written at startup when loading from main menu into the game. Indicates the number of materials in the player's inventory.",
      "properties": {
        "Encoded": {
          "description": "The list of encoded materials.",
          "items": {
            "$ref": "#/definitions/Material"
          },
          "type": "array"
        },
        "Manufactured": {
          "description": "The list of manufactured materials.",
          "items": {
            "$ref": "#/definitions/Material"
          },
          "type": "array"
        },
        "Raw": {
          "description": "The list of raw materials.",
          "items": {
            "$ref": "#/definitions/Material"
          },
          "type": "array"
        },
        "event": {
          "const": "Materials",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Encoded",
        "Manufactured",
        "Raw",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "MicroResource": {
      "additionalProperties": false,
      "properties": {
        "Category": {
          "type": "string"
        },
        "Count": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        }
      },
      "required": [
        "Name",
        "Category",
        "Count"
      ],
      "type": "object"
    },
    "MiningRefined": {
      "additionalProperties": false,
      "properties": {
        "Type": {
          "type": "string"
        },
        "Type_Localised": {
          "type": "string"
        },
        "event": {
          "const": "MiningRefined",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Type",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Mission": {
      "additionalProperties": false,
      "description": "Data about a single mission.",
      "properties": {
        "Expires": {
          "description": "Time left in seconds.",
          "type": "number"
        },
        "MissionID": {
          "$ref": "#/definitions/ID"
        },
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "PassengerMission": {
          "type": "boolean"
        }
      },
      "required": [
        "MissionID",
        "Name",
        "PassengerMission",
        "Expires"
      ],
      "type": "object"
    },
    "MissionAbandoned": {
      "additionalProperties": false,
      "properties": {
        "Fine": {
          "type": "number"
        },
        "LocalisedName": {
          "type": "string"
        },
        "MissionID": {
          "$ref": "#/definitions/ID"
        },
        "Name": {
          "type": "string"
        },
        "event": {
          "const": "MissionAbandoned",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "MissionID",
        "Name",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "MissionAccepted": {
      "additionalProperties": false,
      "description": "Accept some kill missions to verify",
      "properties": {
        "Commodity": {
          "type": "string"
        },
        "Commodity_Localised": {
          "type": "string"
        },
        "Count": {
          "type": "number"
        },
        "DestinationSettlement": {
          "type": "string"
        },
        "DestinationStation": {
          "type": "string"
        },
        "DestinationSystem": {
          "type": "string"
        },
        "Donation": {
          "type": "string"
        },
        "Expiry": {
          "type": "string"
        },
        "Faction": {
          "type": "string"
        },
        "Influence": {
          "type": "string"
        },
        "KillCount": {
          "type": "number"
        },
        "LocalisedName": {
          "type": "string"
        },
        "MissionID": {
          "$ref": "#/definitions/ID"
        },
        "Name": {
          "type": "string"
        },
        "PassengerCount": {
          "type": "number"
        },
        "PassengerType": {
          "type": "string"
        },
        "PassengerVIPs": {
          "type": "boolean"
        },
        "PassengerWanted": {
          "type": "boolean"
        },
        "Reputation": {
          "type": "string"
        },
        "Reward": {
          "type": "number"
        },
        "Target": {
          "type": "string"
        },
        "TargetFaction": {
          "type": "string"
        },
        "TargetType": {
          "type": "string"
        },
        "TargetType_Localised": {
          "type": "string"
        },
        "Target_Localised": {
          "type": "string"
        },
        "Wing": {
          "type": "boolean"
        },
        "event": {
          "const": "MissionAccepted",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Faction",
        "MissionID",
        "Name",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "MissionCompleted": {
      "additionalProperties": false,
      "properties": {
        "Commodity": {
          "type": "string"
        },
        "CommodityReward": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Count": {
                "type": "number"
              },
              "Name": {
                "type": "string"
              },
              "Name_Localised": {
                "type": "string"
              }
            },
            "required": [
              "Count",
              "Name"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "Commodity_Localised": {
          "type": "string"
        },
        "Count": {
          "type": "number"
        },
        "DestinationSettlement": {
          "type": "string"
        },
        "DestinationStation": {
          "type": "string"
        },
        "DestinationSystem": {
          "type": "string"
        },
        "Donated": {
          "type": "number"
        },
        "Donation": {
          "type": [
            "string",
            "number"
          ]
        },
        "Faction": {
          "type": "string"
        },
        "FactionEffects": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Effects": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "Effect": {
                      "type": "string"
                    },
                    "Effect_Localised": {
                      "type": "string"
                    },
                    "Trend": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "Effect",
                    "Trend"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "Faction": {
                "type": "string"
              },
              "Influence": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "Influence": {
                      "type": "string"
                    },
                    "System": {
                      "type": "number"
                    },
                    "SystemAddress": {
                      "$ref": "#/definitions/ID"
                    },
                    "Trend": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "Trend"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "Reputation": {
                "type": "string"
              },
              "ReputationTrend": {
                "type": "string"
              }
            },
            "required": [
              "Faction",
              "Effects",
              "Influence",
              "Reputation"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "KillCount": {
          "type": "number"
        },
        "LocalisedName": {
          "type": "string"
        },
        "MaterialsReward": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Category": {
                "type": "string"
              },
              "Category_Localised": {
                "type": "string"
              },
              "Count": {
                "type": "number"
              },
              "Name": {
                "type": "string"
              },
              "Name_Localised": {
                "type": "string"
              }
            },
            "required": [
              "Name",
              "Category",
              "Category_Localised",
              "Count"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "MissionID": {
          "$ref": "#/definitions/ID"
        },
        "Name": {
          "type": "string"
        },
        "NewDestinationStation": {
          "type": "string"
        },
        "NewDestinationSystem": {
          "type": "string"
        },
        "PermitsAwarded": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Reward": {
          "type": "number"
        },
        "Target": {
          "type": "string"
        },
        "TargetFaction": {
          "type": "string"
        },
        "TargetType": {
          "type": "string"
        },
        "TargetType_Localised": {
          "type": "string"
        },
        "Target_Localised": {
          "type": "string"
        },
        "event": {
          "const": "MissionCompleted",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Faction",
        "MissionID",
        "Name",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "MissionFailed": {
      "additionalProperties": false,
      "properties": {
        "Fine": {
          "type": "number"
        },
        "LocalisedName": {
          "type": "string"
        },
        "MissionID": {
          "$ref": "#/definitions/ID"
        },
        "Name": {
          "type": "string"
        },
        "event": {
          "const": "MissionFailed",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "MissionID",
        "Name",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "MissionRedirected": {
      "additionalProperties": false,
      "properties": {
        "LocalisedName": {
          "type": "string"
        },
        "MissionID": {
          "$ref": "#/definitions/ID"
        },
        "Name": {
          "type": "string"
        },
        "NewDestinationStation": {
          "type": "string"
        },
        "NewDestinationSystem": {
          "type": "string"
        },
        "OldDestinationStation": {
          "type": "string"
        },
        "OldDestinationSystem": {
          "type": "string"
        },
        "event": {
          "const": "MissionRedirected",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "MissionID",
        "Name",
        "NewDestinationStation",
        "NewDestinationSystem",
        "OldDestinationStation",
        "OldDestinationSystem",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Missions": {
      "additionalProperties": false,
      "description": "The player's missions. Written at startup.",
      "properties": {
        "Active": {
          "description": "List of active missions.",
          "items": {
            "$ref": "#/definitions/Mission"
          },
          "type": "array"
        },
        "Complete": {
          "description": "List of completed missions.",
          "items": {
            "$ref": "#/definitions/Mission"
          },
          "type": "array"
        },
        "Failed": {
          "description": "List of fails missions.",
          "items": {
            "$ref": "#/definitions/Mission"
          },
          "type": "array"
        },
        "event": {
          "const": "Missions",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Active",
        "Complete",
        "Failed",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ModuleBuy": {
      "additionalProperties": false,
      "properties": {
        "BuyItem": {
          "type": "string"
        },
        "BuyItem_Localised": {
          "type": "string"
        },
        "BuyPrice": {
          "type": "number"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "SellItem": {
          "type": "string"
        },
        "SellItem_Localised": {
          "type": "string"
        },
        "SellPrice": {
          "type": "number"
        },
        "Ship": {
          "type": "string"
        },
        "ShipID": {
          "$ref": "#/definitions/ID"
        },
        "Slot": {
          "type": "string"
        },
        "StoredItem": {
          "type": "string"
        },
        "StoredItem_Localised": {
          "type": "string"
        },
        "event": {
          "const": "ModuleBuy",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BuyItem",
        "BuyPrice",
        "Ship",
        "ShipID",
        "Slot",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ModuleBuyAndStore": {
      "additionalProperties": false,
      "properties": {
        "BuyItem": {
          "type": "string"
        },
        "BuyItem_Localised": {
          "type": "string"
        },
        "BuyPrice": {
          "type": "number"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Ship": {
          "type": "string"
        },
        "ShipID": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "ModuleBuyAndStore",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BuyItem",
        "BuyPrice",
        "Ship",
        "ShipID",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ModuleInfo": {
      "additionalProperties": false,
      "properties": {
        "event": {
          "const": "ModuleInfo",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ModuleRetrieve": {
      "additionalProperties": false,
      "properties": {
        "Cost": {
          "type": "number"
        },
        "EngineerModifications": {
          "type": "string"
        },
        "Hot": {
          "type": "boolean"
        },
        "Level": {
          "type": "number"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Quality": {
          "type": "number"
        },
        "RetrievedItem": {
          "type": "string"
        },
        "RetrievedItem_Localised": {
          "type": "string"
        },
        "Ship": {
          "type": "string"
        },
        "ShipID": {
          "$ref": "#/definitions/ID"
        },
        "Slot": {
          "type": "string"
        },
        "SwapOutItem": {
          "type": "string"
        },
        "SwapOutItem_Localised": {
          "type": "string"
        },
        "event": {
          "const": "ModuleRetrieve",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "RetrievedItem",
        "Ship",
        "ShipID",
        "Slot",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ModuleSell": {
      "additionalProperties": false,
      "properties": {
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "SellItem": {
          "type": "string"
        },
        "SellItem_Localised": {
          "type": "string"
        },
        "SellPrice": {
          "type": "number"
        },
        "Ship": {
          "type": "string"
        },
        "ShipID": {
          "$ref": "#/definitions/ID"
        },
        "Slot": {
          "type": "string"
        },
        "event": {
          "const": "ModuleSell",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "SellItem",
        "SellPrice",
        "Ship",
        "ShipID",
        "Slot",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ModuleSellRemote": {
      "additionalProperties": false,
      "properties": {
        "SellItem": {
          "type": "string"
        },
        "SellItem_Localised": {
          "type": "string"
        },
        "SellPrice": {
          "type": "number"
        },
        "ServerId": {
          "type": "number"
        },
        "Ship": {
          "type": "string"
        },
        "ShipID": {
          "$ref": "#/definitions/ID"
        },
        "StorageSlot": {
          "type": "number"
        },
        "event": {
          "const": "ModuleSellRemote",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "SellItem",
        "SellPrice",
        "Ship",
        "ShipID",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ModuleStore": {
      "additionalProperties": false,
      "properties": {
        "Cost": {
          "type": "number"
        },
        "EngineerModifications": {
          "type": "string"
        },
        "Hot": {
          "type": "boolean"
        },
        "Level": {
          "type": "number"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Quality": {
          "type": "number"
        },
        "ReplacementItem": {
          "type": "string"
        },
        "Ship": {
          "type": "string"
        },
        "ShipID": {
          "$ref": "#/definitions/ID"
        },
        "Slot": {
          "type": "string"
        },
        "StoredItem": {
          "type": "string"
        },
        "StoredItem_Localised": {
          "type": "string"
        },
        "event": {
          "const": "ModuleStore",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Ship",
        "ShipID",
        "Slot",
        "StoredItem",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ModuleSwap": {
      "additionalProperties": false,
      "properties": {
        "FromItem": {
          "type": "string"
        },
        "FromItem_Localised": {
          "type": "string"
        },
        "FromSlot": {
          "type": "string"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Ship": {
          "type": "string"
        },
        "ShipID": {
          "$ref": "#/definitions/ID"
        },
        "ToItem": {
          "type": "string"
        },
        "ToItem_Localised": {
          "type": "string"
        },
        "ToSlot": {
          "type": "string"
        },
        "event": {
          "const": "ModuleSwap",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "FromItem",
        "FromSlot",
        "Ship",
        "ShipID",
        "ToItem",
        "ToSlot",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "MultiSellExplorationData": {
      "additionalProperties": false,
      "description": "Written when selling exploration data in Cartographics, a page at a time.",
      "properties": {
        "BaseValue": {
          "type": "number"
        },
        "Bonus": {
          "type": "number"
        },
        "Discovered": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "NumBodies": {
                "type": "number"
              },
              "SystemName": {
                "type": "string"
              },
              "SystemName_Localised": {
                "type": "string"
              }
            },
            "required": [
              "SystemName",
              "NumBodies"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "TotalEarnings": {
          "type": "number"
        },
        "event": {
          "const": "MultiSellExplorationData",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BaseValue",
        "Bonus",
        "Discovered",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Music": {
      "additionalProperties": false,
      "properties": {
        "MusicTrack": {
          "type": "string"
        },
        "event": {
          "const": "Music",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "MusicTrack",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "NavBeaconScan": {
      "additionalProperties": false,
      "description": "Written when scanning a navigation beacon, before the scan data for all the bodies in the system is written into the journal.",
      "properties": {
        "NumBodies": {
          "type": "number"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "NavBeaconScan",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "NumBodies",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "NavRoute": {
      "additionalProperties": false,
      "description": "When plotting a multi-star route, the file “NavRoute.json” is written in the same directory as the journal, with a list of stars along that route.",
      "properties": {
        "event": {
          "const": "NavRoute",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "NavRouteClear": {
      "additionalProperties": false,
      "description": "When the current plotted nav route is cleared.",
      "properties": {
        "event": {
          "const": "NavRouteClear",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "NewBuyMicroResources": {
      "additionalProperties": false,
      "properties": {
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "MicroResources": {
          "items": {
            "$ref": "#/definitions/MicroResource"
          },
          "type": "array"
        },
        "Price": {
          "type": "number"
        },
        "TotalCount": {
          "type": "number"
        },
        "event": {
          "const": "BuyMicroResources",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "MarketID",
        "MicroResources",
        "Price",
        "TotalCount",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "NewCommander": {
      "additionalProperties": false,
      "description": "Written when creating a new commander.",
      "properties": {
        "FID": {
          "description": "The player ID.",
          "type": "string"
        },
        "Name": {
          "description": "The commander's name.",
          "type": "string"
        },
        "Package": {
          "description": "The selected starter package.",
          "type": "string"
        },
        "event": {
          "const": "NewCommander",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Name",
        "Package",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "NpcCrewPaidWage": {
      "additionalProperties": false,
      "properties": {
        "Amount": {
          "type": "number"
        },
        "NpcCrewId": {
          "type": "number"
        },
        "NpcCrewName": {
          "type": "string"
        },
        "event": {
          "const": "NpcCrewPaidWage",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Amount",
        "NpcCrewId",
        "NpcCrewName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "NpcCrewRank": {
      "additionalProperties": false,
      "properties": {
        "NpcCrewId": {
          "type": "number"
        },
        "NpcCrewName": {
          "type": "string"
        },
        "RankCombat": {},
        "event": {
          "const": "NpcCrewRank",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "NpcCrewId",
        "NpcCrewName",
        "RankCombat",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "OldBuyMicroResources": {
      "additionalProperties": false,
      "properties": {
        "Category": {
          "type": "string"
        },
        "Count": {
          "type": "number"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "Price": {
          "type": "number"
        },
        "event": {
          "const": "BuyMicroResources",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Category",
        "Count",
        "MarketID",
        "Name",
        "Name_Localised",
        "Price",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Outfitting": {
      "additionalProperties": false,
      "description": "Written when accessing the outfitting menu.",
      "properties": {
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "StarSystem": {
          "type": "string"
        },
        "StationName": {
          "type": "string"
        },
        "event": {
          "const": "Outfitting",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "MarketID",
        "StarSystem",
        "StationName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "PVPKill": {
      "additionalProperties": false,
      "description": "Written when this player has killed another player.",
      "properties": {
        "CombatRank": {
          "description": "Victim's combat rank.",
          "type": "number"
        },
        "Victim": {
          "description": "Name of victim.",
          "type": "string"
        },
        "event": {
          "const": "PVPKill",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "CombatRank",
        "Victim",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Pack": {
      "additionalProperties": false,
      "properties": {
        "PackTheme": {
          "type": "string"
        },
        "PackTier": {
          "type": "number"
        }
      },
      "required": [
        "PackTheme",
        "PackTier"
      ],
      "type": "object"
    },
    "Passengers": {
      "additionalProperties": false,
      "description": "List of passengers in the ship. Written at startup when loading the saved game file.",
      "properties": {
        "Manifest": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Count": {
                "type": "number"
              },
              "MissionID": {
                "$ref": "#/definitions/ID"
              },
              "Type": {
                "type": "string"
              },
              "VIP": {
                "type": "boolean"
              },
              "Wanted": {
                "type": "boolean"
              }
            },
            "required": [
              "MissionID",
              "Type",
              "VIP",
              "Wanted",
              "Count"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "event": {
          "const": "Passengers",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Manifest",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "PayBounties": {
      "additionalProperties": false,
      "properties": {
        "AllFines": {
          "type": "boolean"
        },
        "Amount": {
          "type": "number"
        },
        "BrokerPercentage": {
          "type": "number"
        },
        "Faction": {
          "type": "string"
        },
        "Faction_Localised": {
          "type": "string"
        },
        "ShipID": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "PayBounties",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Amount",
        "ShipID",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "PayFines": {
      "additionalProperties": false,
      "properties": {
        "AllFines": {
          "type": "boolean"
        },
        "Amount": {
          "type": "number"
        },
        "BrokerPercentage": {
          "type": "number"
        },
        "Faction": {
          "type": "string"
        },
        "Faction_Localised": {
          "type": "string"
        },
        "ShipID": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "PayFines",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Amount",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "PayLegacyFines": {
      "additionalProperties": false,
      "properties": {
        "Amount": {
          "type": "number"
        },
        "BrokerPercentage": {
          "type": "number"
        },
        "event": {
          "const": "PayLegacyFines",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Amount",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "PlanetClass": {
      "description": "Planet classes",
      "enum": [
        "Ammonia world",
        "Earthlike body",
        "Gas giant with ammonia based life",
        "Gas giant with water based life",
        "Helium rich gas giant",
        "High metal content body",
        "Icy body",
        "Metal rich body",
        "Rocky ice body",
        "Rocky body",
        "Sudarsky class I gas giant",
        "Sudarsky class II gas giant",
        "Sudarsky class III gas giant",
        "Sudarsky class IV gas giant",
        "Sudarsky class V gas giant",
        "Water giant",
        "Water world"
      ],
      "type": "string"
    },
    "PowerState": {
      "anyOf": [
        {
          "$ref": "#/definitions/PowerState1"
        },
        {
          "$ref": "#/definitions/PowerState2"
        }
      ]
    },
    "PowerState1": {
      "description": "Power states in Powerplay 1.0",
      "enum": [
        "InPrepareRadius",
        "Prepared",
        "Exploited",
        "Contested",
        "Controlled",
        "HomeSystem",
        "Turmoil"
      ],
      "type": "string"
    },
    "PowerState2": {
      "description": "Power states in Powerplay 2.0",
      "enum": [
        "Unoccupied",
        "Stronghold",
        "Fortified"
      ],
      "type": "string"
    },
    "Powerplay": {
      "additionalProperties": false,
      "description": "Written at startup if player has pledged to a power.",
      "properties": {
        "Merits": {
          "type": "number"
        },
        "Power": {
          "description": "The name of the power.",
          "type": "string"
        },
        "Rank": {
          "type": "number"
        },
        "TimePledged": {
          "description": "Time in seconds.",
          "type": "number"
        },
        "Votes": {
          "type": "number"
        },
        "event": {
          "const": "Powerplay",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Merits",
        "Power",
        "Rank",
        "TimePledged",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "PowerplayCollect": {
      "additionalProperties": false,
      "properties": {
        "Count": {
          "type": "number"
        },
        "Power": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        },
        "Type_Localised": {
          "type": "string"
        },
        "event": {
          "const": "PowerplayCollect",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Count",
        "Power",
        "Type",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "PowerplayDefect": {
      "additionalProperties": false,
      "properties": {
        "FromPower": {
          "type": "string"
        },
        "ToPower": {
          "type": "string"
        },
        "event": {
          "const": "PowerplayDefect",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "FromPower",
        "ToPower",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "PowerplayDeliver": {
      "additionalProperties": false,
      "properties": {
        "Count": {
          "type": "number"
        },
        "Power": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        },
        "Type_Localised": {
          "type": "string"
        },
        "event": {
          "const": "PowerplayDeliver",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Count",
        "Power",
        "Type",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "PowerplayFastTrack": {
      "additionalProperties": false,
      "properties": {
        "Cost": {
          "type": "number"
        },
        "Power": {
          "type": "string"
        },
        "event": {
          "const": "PowerplayFastTrack",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Cost",
        "Power",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "PowerplayJoin": {
      "additionalProperties": false,
      "properties": {
        "Power": {
          "type": "string"
        },
        "event": {
          "const": "PowerplayJoin",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Power",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "PowerplayLeave": {
      "additionalProperties": false,
      "properties": {
        "Power": {
          "type": "string"
        },
        "event": {
          "const": "PowerplayLeave",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Power",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "PowerplayMerits": {
      "additionalProperties": false,
      "properties": {
        "MeritsGained": {
          "type": "number"
        },
        "Power": {
          "type": "string"
        },
        "TotalMerits": {
          "type": "number"
        },
        "event": {
          "const": "PowerplayMerits",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "MeritsGained",
        "Power",
        "TotalMerits",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "PowerplayRank": {
      "additionalProperties": false,
      "properties": {
        "Power": {
          "type": "string"
        },
        "Rank": {
          "type": "number"
        },
        "event": {
          "const": "PowerplayRank",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Power",
        "Rank",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "PowerplaySalary": {
      "additionalProperties": false,
      "properties": {
        "Amount": {
          "type": "number"
        },
        "Power": {
          "type": "string"
        },
        "event": {
          "const": "PowerplaySalary",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Amount",
        "Power",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "PowerplayVote": {
      "additionalProperties": false,
      "properties": {
        "Power": {
          "type": "string"
        },
        "System": {
          "type": "string"
        },
        "Votes": {
          "type": "number"
        },
        "event": {
          "const": "PowerplayVote",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Power",
        "System",
        "Votes",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "PowerplayVoucher": {
      "additionalProperties": false,
      "properties": {
        "Power": {
          "type": "string"
        },
        "Systems": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "event": {
          "const": "PowerplayVoucher",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Power",
        "Systems",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Progress": {
      "additionalProperties": false,
      "description": "Player's progress written at startup.",
      "properties": {
        "CQC": {
          "description": "Percent progress to next CQC rank.",
          "type": "number"
        },
        "Combat": {
          "description": "Percent progress to next combat rank.",
          "type": "number"
        },
        "Empire": {
          "description": "Percent progress to next empire rank.",
          "type": "number"
        },
        "Exobiologist": {
          "description": "Percent progress to next exobiologist rank.",
          "type": "number"
        },
        "Explore": {
          "description": "Percent progress to next exploration rank.",
          "type": "number"
        },
        "Federation": {
          "description": "Percent progress to next federation rank.",
          "type": "number"
        },
        "Soldier": {
          "description": "Percent progress to next soldier rank.",
          "type": "number"
        },
        "Trade": {
          "description": "Percent progress to next trade rank.",
          "type": "number"
        },
        "event": {
          "const": "Progress",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "CQC",
        "Combat",
        "Empire",
        "Explore",
        "Federation",
        "Trade",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Promotion": {
      "additionalProperties": false,
      "properties": {
        "CQC": {
          "type": "number"
        },
        "Combat": {
          "type": "number"
        },
        "Empire": {
          "type": "number"
        },
        "Exobiologist": {
          "type": "number"
        },
        "Explore": {
          "type": "number"
        },
        "Federation": {
          "type": "number"
        },
        "Soldier": {
          "type": "number"
        },
        "Trade": {
          "type": "number"
        },
        "event": {
          "const": "Promotion",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ProspectedAsteroid": {
      "additionalProperties": false,
      "properties": {
        "Content": {
          "type": "string"
        },
        "Content_Localised": {
          "type": "string"
        },
        "Materials": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "Name_Localised": {
                "type": "string"
              },
              "Proportion": {
                "type": "number"
              }
            },
            "required": [
              "Name",
              "Proportion"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "MotherlodeMaterial": {
          "type": "string"
        },
        "MotherlodeMaterial_Localised": {
          "type": "string"
        },
        "Remaining": {
          "type": "number"
        },
        "event": {
          "const": "ProspectedAsteroid",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Content",
        "Content_Localised",
        "Materials",
        "Remaining",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "QuitACrew": {
      "additionalProperties": false,
      "properties": {
        "Captain": {
          "type": "string"
        },
        "event": {
          "const": "QuitACrew",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Captain",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Rank": {
      "additionalProperties": false,
      "description": "Player ranks written at startup.",
      "properties": {
        "CQC": {
          "type": "number"
        },
        "Combat": {
          "type": "number"
        },
        "Empire": {
          "type": "number"
        },
        "Exobiologist": {
          "type": "number"
        },
        "Explore": {
          "type": "number"
        },
        "Federation": {
          "type": "number"
        },
        "Soldier": {
          "type": "number"
        },
        "Trade": {
          "type": "number"
        },
        "event": {
          "const": "Rank",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "CQC",
        "Combat",
        "Empire",
        "Explore",
        "Federation",
        "Trade",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "RebootRepair": {
      "additionalProperties": false,
      "properties": {
        "Modules": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "event": {
          "const": "RebootRepair",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Modules",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ReceiveText": {
      "additionalProperties": false,
      "properties": {
        "Channel": {
          "type": "string"
        },
        "From": {
          "type": "string"
        },
        "From_Localised": {
          "type": "string"
        },
        "Message": {
          "type": "string"
        },
        "Message_Localised": {
          "type": "string"
        },
        "event": {
          "const": "ReceiveText",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Channel",
        "From",
        "Message",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "RedeemVoucher": {
      "additionalProperties": false,
      "properties": {
        "Amount": {
          "type": "number"
        },
        "BrokerPercentage": {
          "type": "number"
        },
        "Faction": {
          "type": "string"
        },
        "Factions": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Amount": {
                "type": "number"
              },
              "Faction": {
                "type": "string"
              }
            },
            "required": [
              "Amount",
              "Faction"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "Type": {
          "type": "string"
        },
        "event": {
          "const": "RedeemVoucher",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Amount",
        "Type",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "RefuelAll": {
      "additionalProperties": false,
      "properties": {
        "Amount": {
          "type": "number"
        },
        "Cost": {
          "type": "number"
        },
        "event": {
          "const": "RefuelAll",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Amount",
        "Cost",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "RefuelPartial": {
      "additionalProperties": false,
      "properties": {
        "Amount": {
          "type": "number"
        },
        "Cost": {
          "type": "number"
        },
        "event": {
          "const": "RefuelPartial",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Amount",
        "Cost",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "RenameSuitLoadout": {
      "additionalProperties": false,
      "properties": {
        "LoadoutID": {
          "$ref": "#/definitions/ID"
        },
        "LoadoutName": {
          "type": "string"
        },
        "SuitID": {
          "$ref": "#/definitions/ID"
        },
        "SuitName": {
          "type": "string"
        },
        "SuitName_Localised": {
          "type": "string"
        },
        "event": {
          "const": "RenameSuitLoadout",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "LoadoutID",
        "LoadoutName",
        "SuitID",
        "SuitName",
        "SuitName_Localised",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Repair": {
      "additionalProperties": false,
      "properties": {
        "Cost": {
          "type": "number"
        },
        "Item": {
          "type": "string"
        },
        "Item_Localised": {
          "type": "string"
        },
        "Items": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "event": {
          "const": "Repair",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Cost",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "RepairAll": {
      "additionalProperties": false,
      "properties": {
        "Cost": {
          "type": "number"
        },
        "event": {
          "const": "RepairAll",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Cost",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "RepairDrone": {
      "additionalProperties": false,
      "properties": {
        "CockpitRepaired": {
          "type": "number"
        },
        "CorrosionRepaired": {
          "type": "number"
        },
        "HullRepaired": {
          "type": "number"
        },
        "event": {
          "const": "RepairDrone",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "HullRepaired",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Reputation": {
      "additionalProperties": false,
      "description": "Player's reputation on a scale of -100 to +100 with the superpowers. Written at startup after  {@link  Rank  }  and  {@link  Progress  } .\n\nThresholds:\n\n* -100 to -90: Hostile\n*  -90 to -35: Unfriendly\n*  -35 to   4: Neutral\n*    4 to  35: Cordial\n*   35 to  90: Friendly\n*   90 to 100: Allied",
      "properties": {
        "Alliance": {
          "type": "number"
        },
        "Empire": {
          "type": "number"
        },
        "Federation": {
          "type": "number"
        },
        "Independent": {
          "type": "number"
        },
        "event": {
          "const": "Reputation",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ReserveLevel": {
      "description": "The resource reserve level.",
      "enum": [
        "PristineResources",
        "LowResources",
        "DepletedResources",
        "MajorResources",
        "CommonResources"
      ],
      "type": "string"
    },
    "ReservoirReplenished": {
      "additionalProperties": false,
      "properties": {
        "FuelMain": {
          "type": "number"
        },
        "FuelReservoir": {
          "type": "number"
        },
        "event": {
          "const": "ReservoirReplenished",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "FuelMain",
        "FuelReservoir",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "RestockVehicle": {
      "additionalProperties": false,
      "properties": {
        "Cost": {
          "type": "number"
        },
        "Count": {
          "type": "number"
        },
        "ID": {
          "$ref": "#/definitions/ID"
        },
        "Loadout": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        },
        "Type_Localised": {
          "type": "string"
        },
        "event": {
          "const": "RestockVehicle",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Cost",
        "Count",
        "Loadout",
        "Type",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Resupply": {
      "additionalProperties": false,
      "properties": {
        "event": {
          "const": "Resupply",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Resurrect": {
      "additionalProperties": false,
      "properties": {
        "Bankrupt": {
          "type": "boolean"
        },
        "Cost": {
          "type": "number"
        },
        "Option": {
          "type": "string"
        },
        "event": {
          "const": "Resurrect",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Bankrupt",
        "Cost",
        "Option",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Ring": {
      "additionalProperties": false,
      "description": "A ring of a planet, moon or star.",
      "properties": {
        "InnerRad": {
          "description": "The inner ring radius in meters.",
          "type": "number"
        },
        "MassMT": {
          "description": "The mass in mega tons.",
          "type": "number"
        },
        "Name": {
          "description": "The ring name.",
          "type": "string"
        },
        "OuterRad": {
          "description": "The outer ring radius in meters.",
          "type": "number"
        },
        "RingClass": {
          "$ref": "#/definitions/RingClass",
          "description": "The ring class."
        }
      },
      "required": [
        "Name",
        "RingClass",
        "MassMT",
        "InnerRad",
        "OuterRad"
      ],
      "type": "object"
    },
    "RingClass": {
      "description": "The ring class (Icy, Metallic, Metal Rich or Rocky).",
      "enum": [
        "eRingClass_Icy",
        "eRingClass_Metalic",
        "eRingClass_MetalRich",
        "eRingClass_Rocky"
      ],
      "type": "string"
    },
    "SAAScanComplete": {
      "additionalProperties": false,
      "description": "Written after using the Surface Area Analysis scanner.",
      "properties": {
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "BodyName": {
          "type": "string"
        },
        "EfficiencyTarget": {
          "type": "number"
        },
        "ProbesUsed": {
          "type": "number"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "SAAScanComplete",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BodyID",
        "BodyName",
        "EfficiencyTarget",
        "ProbesUsed",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SAASignalsFound": {
      "additionalProperties": false,
      "description": "Written when using SAA scanner on a planet or rings.",
      "properties": {
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "BodyName": {
          "type": "string"
        },
        "Genuses": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Genus": {
                "type": "string"
              },
              "Genus_Localised": {
                "type": "string"
              }
            },
            "required": [
              "Genus",
              "Genus_Localised"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "Signals": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Count": {
                "type": "number"
              },
              "Type": {
                "type": "string"
              },
              "Type_Localised": {
                "type": "string"
              }
            },
            "required": [
              "Type",
              "Count"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "SAASignalsFound",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BodyID",
        "BodyName",
        "Signals",
        "SystemAddress",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SRVDestroyed": {
      "additionalProperties": false,
      "description": "Written when the player's SRV is destroyed.",
      "properties": {
        "ID": {
          "$ref": "#/definitions/ID"
        },
        "SRVType": {
          "type": "string"
        },
        "SRVType_Localised": {
          "type": "string"
        },
        "event": {
          "const": "SRVDestroyed",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "ID",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Scan": {
      "anyOf": [
        {
          "$ref": "#/definitions/ScanStar"
        },
        {
          "$ref": "#/definitions/ScanPlanet"
        },
        {
          "$ref": "#/definitions/ScanOther"
        }
      ],
      "description": "Written on basic or detailed discovery scan of a star, planet, moon or ring.\n\nThis is also generated when scanning a navigation beacon in a populated system, to record info about all the bodies in the system"
    },
    "ScanBaryCentre": {
      "additionalProperties": false,
      "description": "Written when scanning a body of a binary pair. YOu will now get an event detailing the orbital parameters of their barycenter.",
      "properties": {
        "AscendingNode": {
          "type": "number"
        },
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "Eccentricity": {
          "type": "number"
        },
        "MeanAnomaly": {
          "type": "number"
        },
        "OrbitalInclination": {
          "type": "number"
        },
        "OrbitalPeriod": {
          "type": "number"
        },
        "Periapsis": {
          "type": "number"
        },
        "SemiMajorAxis": {
          "type": "number"
        },
        "StarSystem": {
          "type": "string"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "ScanBaryCentre",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "AscendingNode",
        "BodyID",
        "Eccentricity",
        "MeanAnomaly",
        "OrbitalInclination",
        "OrbitalPeriod",
        "Periapsis",
        "SemiMajorAxis",
        "StarSystem",
        "SystemAddress",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ScanOrganic": {
      "additionalProperties": false,
      "properties": {
        "Body": {
          "type": "number"
        },
        "Genus": {
          "type": "string"
        },
        "Genus_Localised": {
          "type": "string"
        },
        "ScanType": {
          "type": "string"
        },
        "Species": {
          "type": "string"
        },
        "Species_Localised": {
          "type": "string"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "Variant": {
          "type": "string"
        },
        "Variant_Localised": {
          "type": "string"
        },
        "WasLogged": {
          "type": "boolean"
        },
        "event": {
          "const": "ScanOrganic",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Body",
        "Genus",
        "Genus_Localised",
        "ScanType",
        "Species",
        "Species_Localised",
        "SystemAddress",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ScanOther": {
      "additionalProperties": false,
      "description": "Scan of a body which is not a star, planet or moon.",
      "properties": {
        "AscendingNode": {
          "description": "Ascending node in degrees. Not set in older journal versions.",
          "type": "number"
        },
        "AxialTilt": {
          "description": "Axial tilt (in degrees) if rotating. Not set in basic scans.",
          "type": "number"
        },
        "BodyID": {
          "$ref": "#/definitions/ID",
          "description": "The ID of the planet. Not set in older journals."
        },
        "BodyName": {
          "description": "The planet name.",
          "type": "string"
        },
        "DistanceFromArrivalLS": {
          "description": "The distance of the planet to the arrival star in light seconds.",
          "type": "number"
        },
        "Eccentricity": {
          "description": "Orbital eccentricity. Not set in older journal versions.",
          "type": "number"
        },
        "MeanAnomaly": {
          "description": "Mean anomaly in degrees. Not set in older journal versions.",
          "type": "number"
        },
        "OrbitalInclination": {
          "description": "Orbital inclination in degrees. Not set in older journal versions.",
          "type": "number"
        },
        "OrbitalPeriod": {
          "description": "Orbital period in seconds. Not set in older journal versions.",
          "type": "number"
        },
        "Parents": {
          "description": "Array of BodyType:BodyID pairs describing the body hierarchy from direct parent to root.",
          "items": {
            "anyOf": [
              {
                "additionalProperties": false,
                "properties": {
                  "Planet": {
                    "type": "number"
                  }
                },
                "required": [
                  "Planet"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "Station": {
                    "type": "number"
                  }
                },
                "required": [
                  "Station"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "Star": {
                    "type": "number"
                  }
                },
                "required": [
                  "Star"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "PlanetaryRing": {
                    "type": "number"
                  }
                },
                "required": [
                  "PlanetaryRing"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "AsteroidCluster": {
                    "type": "number"
                  }
                },
                "required": [
                  "AsteroidCluster"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "Null": {
                    "type": "number"
                  }
                },
                "required": [
                  "Null"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "StellarRing": {
                    "type": "number"
                  }
                },
                "required": [
                  "StellarRing"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "Ring": {
                    "type": "number"
                  }
                },
                "required": [
                  "Ring"
                ],
                "type": "object"
              }
            ]
          },
          "type": "array"
        },
        "Periapsis": {
          "description": "Argument of periapsis in degrees. Not set in older journal versions.",
          "type": "number"
        },
        "Rings": {
          "description": "The rings around the body. Not set in basic scans or when there are no rings.",
          "items": {
            "$ref": "#/definitions/Ring"
          },
          "type": "array"
        },
        "ScanType": {
          "$ref": "#/definitions/ScanType",
          "description": "The scan type. Missing in older journals. Maybe it is safe to assume a missing scan type is an auto scan."
        },
        "SemiMajorAxis": {
          "description": "The semi major axis in meters. Not set in basic scans.",
          "type": "number"
        },
        "StarSystem": {
          "description": "Star system name. May not be set in older journals and must be taken from previous events (like  {@link  FSDJump  }  which always set a system name.",
          "type": "string"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID",
          "description": "The system ID. Not set in older journals."
        },
        "WasDiscovered": {
          "description": "Set to true if planet has been discovered by someone already.",
          "type": "boolean"
        },
        "WasFootfalled": {
          "description": "Set to true if someone already set foot on this body.",
          "type": "boolean"
        },
        "WasMapped": {
          "description": "Set to true if planet has been mapped by someone already.",
          "type": "boolean"
        },
        "event": {
          "const": "Scan",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BodyName",
        "DistanceFromArrivalLS",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ScanPlanet": {
      "additionalProperties": false,
      "description": "Scan of a planet or moon. Can be recognized by the existence of a `PlanetClass` property.",
      "properties": {
        "AscendingNode": {
          "description": "Ascending node in degrees. Not set in older journal versions.",
          "type": "number"
        },
        "Atmosphere": {
          "description": "The atmosphere. Not set in basic scans. Empty if no atmosphere.",
          "type": "string"
        },
        "AtmosphereComposition": {
          "description": "The atmosphere composition. Not set in basic scans or no atmosphere is present.",
          "items": {
            "additionalProperties": false,
            "properties": {
              "Name": {
                "description": "Element name (Like Hydrogen, Helium, ...)",
                "type": "string"
              },
              "Percent": {
                "description": "The quantity in percent.",
                "type": "number"
              }
            },
            "required": [
              "Name",
              "Percent"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "AtmosphereType": {
          "description": "The atmosphere type. Not set in basic scans or no atmosphere is present.",
          "type": "string"
        },
        "AxialTilt": {
          "description": "Axial tilt (in degrees) if rotating. Not set in basic scans.",
          "type": "number"
        },
        "BodyID": {
          "$ref": "#/definitions/ID",
          "description": "The ID of the planet. Not set in older journals."
        },
        "BodyName": {
          "description": "The planet name.",
          "type": "string"
        },
        "Composition": {
          "additionalProperties": false,
          "description": "The composition of the planet/moon. Not set in basic scans or when planet/moon is not solid.",
          "properties": {
            "Ice": {
              "description": "Quantity of ice in percent.",
              "type": "number"
            },
            "Metal": {
              "description": "Quantity of metal in percent.",
              "type": "number"
            },
            "Rock": {
              "description": "Quantity of rock in percent.",
              "type": "number"
            }
          },
          "required": [
            "Ice",
            "Metal",
            "Rock"
          ],
          "type": "object"
        },
        "DistanceFromArrivalLS": {
          "description": "The distance of the planet to the arrival star in light seconds.",
          "type": "number"
        },
        "Eccentricity": {
          "description": "Orbital eccentricity. Not set in older journal versions.",
          "type": "number"
        },
        "Landable": {
          "description": "True if ships can land on the planet/moon. Not set in basic scans.",
          "type": "boolean"
        },
        "MassEM": {
          "description": "Earth masses.",
          "type": "number"
        },
        "Materials": {
          "description": "List of raw materials which can be gathered on the planet/moon. Not set if none.",
          "items": {
            "additionalProperties": false,
            "properties": {
              "Name": {
                "description": "The material name like \"tungsten\".",
                "type": "string"
              },
              "Percent": {
                "description": "The quantity in percent.",
                "type": "number"
              }
            },
            "required": [
              "Name",
              "Percent"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "MeanAnomaly": {
          "description": "Mean anomaly in degrees. Not set in older journal versions.",
          "type": "number"
        },
        "OrbitalInclination": {
          "description": "Orbital inclination in degrees. Not set in older journal versions.",
          "type": "number"
        },
        "OrbitalPeriod": {
          "description": "Orbital period in seconds. Not set in older journal versions.",
          "type": "number"
        },
        "Parents": {
          "description": "Array of BodyType:BodyID pairs describing the body hierarchy from direct parent to root.",
          "items": {
            "anyOf": [
              {
                "additionalProperties": false,
                "properties": {
                  "Planet": {
                    "type": "number"
                  }
                },
                "required": [
                  "Planet"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "Station": {
                    "type": "number"
                  }
                },
                "required": [
                  "Station"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "Star": {
                    "type": "number"
                  }
                },
                "required": [
                  "Star"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "PlanetaryRing": {
                    "type": "number"
                  }
                },
                "required": [
                  "PlanetaryRing"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "AsteroidCluster": {
                    "type": "number"
                  }
                },
                "required": [
                  "AsteroidCluster"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "Null": {
                    "type": "number"
                  }
                },
                "required": [
                  "Null"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "StellarRing": {
                    "type": "number"
                  }
                },
                "required": [
                  "StellarRing"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "Ring": {
                    "type": "number"
                  }
                },
                "required": [
                  "Ring"
                ],
                "type": "object"
              }
            ]
          },
          "type": "array"
        },
        "Periapsis": {
          "description": "Argument of periapsis in degrees. Not set in older journal versions.",
          "type": "number"
        },
        "PlanetClass": {
          "$ref": "#/definitions/PlanetClass",
          "description": "The planet class."
        },
        "Radius": {
          "description": "The radius in meters.",
          "type": "number"
        },
        "ReserveLevel": {
          "$ref": "#/definitions/ReserveLevel",
          "description": "The resource reserve level."
        },
        "Rings": {
          "description": "The rings around the body. Not set in basic scans or when there are no rings.",
          "items": {
            "$ref": "#/definitions/Ring"
          },
          "type": "array"
        },
        "RotationPeriod": {
          "description": "Rotation period in seconds.",
          "type": "number"
        },
        "ScanType": {
          "$ref": "#/definitions/ScanType",
          "description": "The scan type. Missing in older journals. Maybe it is safe to assume a missing scan type is an auto scan."
        },
        "SemiMajorAxis": {
          "description": "The semi major axis in meters. Not set in basic scans.",
          "type": "number"
        },
        "StarSystem": {
          "description": "Star system name. May not be set in older journals and must be taken from previous events (like  {@link  FSDJump  }  which always set a system name.",
          "type": "string"
        },
        "SurfaceGravity": {
          "description": "The surface gravity measured in m/s².",
          "type": "number"
        },
        "SurfacePressure": {
          "description": "The surface pressure in kPa. Not set in basic scans.",
          "type": "number"
        },
        "SurfaceTemperature": {
          "description": "The surface temperature in Kelvin. Missing in basic scans.",
          "type": "number"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID",
          "description": "The system ID. Not set in older journals."
        },
        "TerraformState": {
          "description": "The Terraform state. Not set in basic scans.",
          "type": "string"
        },
        "TidalLock": {
          "description": "True if planet/moon is tidally locked. Not set in basic scans.",
          "type": "boolean"
        },
        "Volcanism": {
          "description": "The volcanism like for example 'minor nitrogen magma volcanism'. Empty string if none. Not set in basic scans.",
          "type": "string"
        },
        "WasDiscovered": {
          "description": "Set to true if planet has been discovered by someone already.",
          "type": "boolean"
        },
        "WasFootfalled": {
          "description": "Set to true if someone already set foot on this body.",
          "type": "boolean"
        },
        "WasMapped": {
          "description": "Set to true if planet has been mapped by someone already.",
          "type": "boolean"
        },
        "event": {
          "const": "Scan",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BodyName",
        "DistanceFromArrivalLS",
        "MassEM",
        "PlanetClass",
        "Radius",
        "RotationPeriod",
        "SurfaceGravity",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ScanStar": {
      "additionalProperties": false,
      "description": "Scan of a star. Can be recognized by the existence of a `StarType` property.",
      "properties": {
        "AbsoluteMagnitude": {
          "description": "The absolute magnitude.",
          "type": "number"
        },
        "Age_MY": {
          "description": "Age in millions of years.",
          "type": "number"
        },
        "AscendingNode": {
          "description": "Ascending node in degrees. Not set in older journal versions.",
          "type": "number"
        },
        "AxialTilt": {
          "description": "Axial tilt (in degrees) if rotating. Not set in basic scans.",
          "type": "number"
        },
        "BodyID": {
          "$ref": "#/definitions/ID",
          "description": "The ID of the planet. Not set in older journals."
        },
        "BodyName": {
          "description": "The planet name.",
          "type": "string"
        },
        "DistanceFromArrivalLS": {
          "description": "The distance of the planet to the arrival star in light seconds.",
          "type": "number"
        },
        "Eccentricity": {
          "description": "Orbital eccentricity. Not set in older journal versions.",
          "type": "number"
        },
        "Luminosity": {
          "description": "The star luminosity. Not set in older journal versions.",
          "type": "string"
        },
        "MeanAnomaly": {
          "description": "Mean anomaly in degrees. Not set in older journal versions.",
          "type": "number"
        },
        "OrbitalInclination": {
          "description": "Orbital inclination in degrees. Not set in older journal versions.",
          "type": "number"
        },
        "OrbitalPeriod": {
          "description": "Orbital period in seconds. Not set in older journal versions.",
          "type": "number"
        },
        "Parents": {
          "description": "Array of BodyType:BodyID pairs describing the body hierarchy from direct parent to root.",
          "items": {
            "anyOf": [
              {
                "additionalProperties": false,
                "properties": {
                  "Planet": {
                    "type": "number"
                  }
                },
                "required": [
                  "Planet"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "Station": {
                    "type": "number"
                  }
                },
                "required": [
                  "Station"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "Star": {
                    "type": "number"
                  }
                },
                "required": [
                  "Star"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "PlanetaryRing": {
                    "type": "number"
                  }
                },
                "required": [
                  "PlanetaryRing"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "AsteroidCluster": {
                    "type": "number"
                  }
                },
                "required": [
                  "AsteroidCluster"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "Null": {
                    "type": "number"
                  }
                },
                "required": [
                  "Null"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "StellarRing": {
                    "type": "number"
                  }
                },
                "required": [
                  "StellarRing"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "Ring": {
                    "type": "number"
                  }
                },
                "required": [
                  "Ring"
                ],
                "type": "object"
              }
            ]
          },
          "type": "array"
        },
        "Periapsis": {
          "description": "Argument of periapsis in degrees. Not set in older journal versions.",
          "type": "number"
        },
        "Radius": {
          "description": "The radius of the star in meters.",
          "type": "number"
        },
        "Rings": {
          "description": "The rings around the body. Not set in basic scans or when there are no rings.",
          "items": {
            "$ref": "#/definitions/Ring"
          },
          "type": "array"
        },
        "RotationPeriod": {
          "description": "Rotation period in seconds.",
          "type": "number"
        },
        "ScanType": {
          "$ref": "#/definitions/ScanType",
          "description": "The scan type. Missing in older journals. Maybe it is safe to assume a missing scan type is an auto scan."
        },
        "SemiMajorAxis": {
          "description": "The semi major axis in meters. Not set in basic scans.",
          "type": "number"
        },
        "StarSystem": {
          "description": "Star system name. May not be set in older journals and must be taken from previous events (like  {@link  FSDJump  }  which always set a system name.",
          "type": "string"
        },
        "StarType": {
          "$ref": "#/definitions/StarType",
          "description": "Stellar classification."
        },
        "StellarMass": {
          "description": "Mass as multiple of Sol's mass.",
          "type": "number"
        },
        "Subclass": {
          "description": "Star's heat classification (0-9). Not set in older journal versions.",
          "type": "number"
        },
        "SurfaceTemperature": {
          "type": "number"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID",
          "description": "The system ID. Not set in older journals."
        },
        "WasDiscovered": {
          "description": "Set to true if planet has been discovered by someone already.",
          "type": "boolean"
        },
        "WasFootfalled": {
          "description": "Set to true if someone already set foot on this body.",
          "type": "boolean"
        },
        "WasMapped": {
          "description": "Set to true if planet has been mapped by someone already.",
          "type": "boolean"
        },
        "event": {
          "const": "Scan",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "AbsoluteMagnitude",
        "Age_MY",
        "BodyName",
        "DistanceFromArrivalLS",
        "Radius",
        "RotationPeriod",
        "StarType",
        "StellarMass",
        "SurfaceTemperature",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ScanType": {
      "description": "The scan type.\n\n- `AutoScan`: Automatic scan of nearby bodies after jumping into a system.\n- `Basic`: A basic scan in older game versions, when no Detailed Surface Scanner was installed.\n- `Detailed`: Normal scan made with Full Spectrum System Scanner or in older game versions a scan made with the Detailed Surface Scanner installed.\n- `NavBeaconDetail`: Data learned by scanning a nav beacon.",
      "enum": [
        "AutoScan",
        "Basic",
        "Detailed",
        "NavBeaconDetail"
      ],
      "type": "string"
    },
    "Scanned": {
      "additionalProperties": false,
      "properties": {
        "ScanType": {
          "type": "string"
        },
        "event": {
          "const": "Scanned",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "ScanType",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ScientificResearch": {
      "additionalProperties": false,
      "properties": {
        "Category": {
          "type": "string"
        },
        "Count": {
          "type": "number"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "event": {
          "const": "ScientificResearch",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Category",
        "Count",
        "Name",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Screenshot": {
      "additionalProperties": false,
      "description": "Written when a screenshot has been taken.\n\nThe latitude, longitude, altitude and heading will be included if on a planet or in low-altitude flight.",
      "properties": {
        "Altitude": {
          "type": "number"
        },
        "Body": {
          "description": "Name of nearest body.",
          "type": "string"
        },
        "Filename": {
          "description": "Filename of screenshot.",
          "type": "string"
        },
        "Heading": {
          "type": "number"
        },
        "Height": {
          "description": "Height in pixels.",
          "type": "number"
        },
        "Latitude": {
          "type": "number"
        },
        "Longitude": {
          "type": "number"
        },
        "System": {
          "description": "Current star system.",
          "type": "string"
        },
        "Width": {
          "description": "Width in pixels.",
          "type": "number"
        },
        "event": {
          "const": "Screenshot",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Filename",
        "Height",
        "Width",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SearchAndRescue": {
      "additionalProperties": false,
      "properties": {
        "Count": {
          "type": "number"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "Reward": {
          "type": "number"
        },
        "event": {
          "const": "SearchAndRescue",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Count",
        "Name",
        "Reward",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SelfDestruct": {
      "additionalProperties": false,
      "properties": {
        "event": {
          "const": "SelfDestruct",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SellDrones": {
      "additionalProperties": false,
      "properties": {
        "Count": {
          "type": "number"
        },
        "SellPrice": {
          "type": "number"
        },
        "TotalSale": {
          "type": "number"
        },
        "Type": {
          "type": "string"
        },
        "event": {
          "const": "SellDrones",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Count",
        "SellPrice",
        "TotalSale",
        "Type",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SellExplorationData": {
      "additionalProperties": false,
      "description": "Written when selling exploration data in Cartographics.",
      "properties": {
        "BaseValue": {
          "description": "Value of systems.",
          "type": "number"
        },
        "Bonus": {
          "description": "Bonus for first discoveries.",
          "type": "number"
        },
        "Discovered": {
          "description": "Discovered bodies.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "Systems": {
          "description": "System names.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "TotalEarnings": {
          "description": "Total credits received (including for example the 200% bonus if rank 5 with Li Yong Rui)",
          "type": "number"
        },
        "event": {
          "const": "SellExplorationData",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BaseValue",
        "Bonus",
        "Discovered",
        "Systems",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SellMicroResources": {
      "additionalProperties": false,
      "properties": {
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "MicroResources": {
          "items": {
            "$ref": "#/definitions/MicroResource"
          },
          "type": "array"
        },
        "Price": {
          "type": "number"
        },
        "TotalCount": {
          "type": "number"
        },
        "event": {
          "const": "SellMicroResources",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "MarketID",
        "MicroResources",
        "Price",
        "TotalCount",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SellOrganicData": {
      "additionalProperties": false,
      "properties": {
        "BioData": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Bonus": {
                "type": "number"
              },
              "Genus": {
                "type": "string"
              },
              "Genus_Localised": {
                "type": "string"
              },
              "Species": {
                "type": "string"
              },
              "Species_Localised": {
                "type": "string"
              },
              "Value": {
                "type": "number"
              },
              "Variant": {
                "type": "string"
              },
              "Variant_Localised": {
                "type": "string"
              }
            },
            "required": [
              "Genus",
              "Genus_Localised",
              "Species",
              "Species_Localised",
              "Value",
              "Bonus"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "SellOrganicData",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BioData",
        "MarketID",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SellShipOnRebuy": {
      "additionalProperties": false,
      "description": "TODO Verify by getting destroyed and selling the ship.",
      "properties": {
        "SellShipId": {
          "type": "number"
        },
        "ShipPrice": {
          "type": "number"
        },
        "ShipType": {
          "type": "string"
        },
        "System": {
          "type": "string"
        },
        "event": {
          "const": "SellShipOnRebuy",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "SellShipId",
        "ShipPrice",
        "ShipType",
        "System",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SellSuit": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "Price": {
          "type": "number"
        },
        "SuitID": {
          "$ref": "#/definitions/ID"
        },
        "SuitMods": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "event": {
          "const": "SellSuit",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Name",
        "Name_Localised",
        "Price",
        "SuitID",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SellWeapon": {
      "additionalProperties": false,
      "properties": {
        "Class": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "Price": {
          "type": "number"
        },
        "SuitModuleID": {
          "$ref": "#/definitions/ID"
        },
        "WeaponMods": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "event": {
          "const": "SellWeapon",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Name",
        "Name_Localised",
        "Price",
        "SuitModuleID",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SendText": {
      "additionalProperties": false,
      "properties": {
        "Message": {
          "type": "string"
        },
        "Sent": {
          "type": "boolean"
        },
        "To": {
          "type": "string"
        },
        "To_Localised": {
          "type": "string"
        },
        "event": {
          "const": "SendText",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Message",
        "To",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SetUserShipName": {
      "additionalProperties": false,
      "properties": {
        "Ship": {
          "type": "string"
        },
        "ShipID": {
          "$ref": "#/definitions/ID"
        },
        "UserShipId": {
          "type": "string"
        },
        "UserShipName": {
          "type": "string"
        },
        "event": {
          "const": "SetUserShipName",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Ship",
        "ShipID",
        "UserShipId",
        "UserShipName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SharedBookmarkToSquadron": {
      "additionalProperties": false,
      "properties": {
        "SquadronID": {
          "$ref": "#/definitions/ID"
        },
        "SquadronName": {
          "type": "string"
        },
        "event": {
          "const": "SharedBookmarkToSquadron",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "SquadronID",
        "SquadronName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ShieldState": {
      "additionalProperties": false,
      "description": "Written when shields are disabled in combat, or recharged.",
      "properties": {
        "ShieldsUp": {
          "description": "False when disabled, true when restored.",
          "type": "boolean"
        },
        "event": {
          "const": "ShieldState",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "ShieldsUp",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ShipLocker": {
      "additionalProperties": false,
      "description": "Lists the contents of the ship locker, eg at startup. The full list is written into the journal at startup (if in a ship) and when boarding a ship. For other updates the ship locker has to be watched separately.",
      "properties": {
        "Components": {
          "items": {
            "$ref": "#/definitions/ShipLockerItem"
          },
          "type": "array"
        },
        "Consumables": {
          "items": {
            "$ref": "#/definitions/ShipLockerItem"
          },
          "type": "array"
        },
        "Data": {
          "items": {
            "$ref": "#/definitions/ShipLockerItem"
          },
          "type": "array"
        },
        "Items": {
          "items": {
            "$ref": "#/definitions/ShipLockerItem"
          },
          "type": "array"
        },
        "event": {
          "const": "ShipLocker",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ShipLockerItem": {
      "additionalProperties": false,
      "properties": {
        "Count": {
          "type": "number"
        },
        "MissionID": {
          "$ref": "#/definitions/ID"
        },
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "OwnerID": {
          "$ref": "#/definitions/ID"
        }
      },
      "required": [
        "Name",
        "OwnerID",
        "Count"
      ],
      "type": "object"
    },
    "ShipRedeemed": {
      "additionalProperties": false,
      "properties": {
        "NewShipID": {
          "$ref": "#/definitions/ID"
        },
        "ShipType": {
          "type": "string"
        },
        "ShipType_Localised": {
          "type": "string"
        },
        "event": {
          "const": "ShipRedeemed",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "NewShipID",
        "ShipType",
        "ShipType_Localised",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ShipTargeted": {
      "additionalProperties": false,
      "description": "Written when the current player selects a new target.\n\nThe amount of data written depends on the extent to which the target ship has been scanned",
      "properties": {
        "Bounty": {
          "type": "number"
        },
        "Faction": {
          "type": "string"
        },
        "HullHealth": {
          "type": "number"
        },
        "LegalStatus": {
          "type": "string"
        },
        "PilotName": {
          "type": "string"
        },
        "PilotName_Localised": {
          "type": "string"
        },
        "PilotRank": {
          "type": "string"
        },
        "Power": {
          "description": "The power a scanned player is aligned to. Only set when player is also aligned to a power.",
          "type": "string"
        },
        "ScanStage": {
          "type": "number"
        },
        "ShieldHealth": {
          "type": "number"
        },
        "Ship": {
          "type": "string"
        },
        "Ship_Localised": {
          "type": "string"
        },
        "SquadronID": {
          "type": "string"
        },
        "Subsystem": {
          "type": "string"
        },
        "SubsystemHealth": {
          "type": "number"
        },
        "Subsystem_Localised": {
          "type": "string"
        },
        "TargetLocked": {
          "description": "False when losing target.",
          "type": "boolean"
        },
        "event": {
          "const": "ShipTargeted",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "TargetLocked",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Shipyard": {
      "additionalProperties": false,
      "description": "Written when accessing shipyard in a station.",
      "properties": {
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "StarSystem": {
          "type": "string"
        },
        "StationName": {
          "type": "string"
        },
        "event": {
          "const": "Shipyard",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "MarketID",
        "StarSystem",
        "StationName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ShipyardBankDeposit": {
      "additionalProperties": false,
      "properties": {
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "ShipType": {
          "type": "string"
        },
        "ShipType_Localised": {
          "type": "string"
        },
        "event": {
          "const": "ShipyardBankDeposit",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "MarketID",
        "ShipType",
        "ShipType_Localised",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ShipyardBuy": {
      "additionalProperties": false,
      "description": "Verify by buying a new ship and selling the current one the same time.",
      "properties": {
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "SellOldShip": {
          "type": "string"
        },
        "SellPrice": {
          "type": "number"
        },
        "SellShipID": {
          "$ref": "#/definitions/ID"
        },
        "ShipPrice": {
          "type": "number"
        },
        "ShipType": {
          "type": "string"
        },
        "ShipType_Localised": {
          "type": "string"
        },
        "StoreOldShip": {
          "type": "string"
        },
        "StoreShipID": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "ShipyardBuy",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "ShipPrice",
        "ShipType",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ShipyardNew": {
      "additionalProperties": false,
      "properties": {
        "NewShipID": {
          "$ref": "#/definitions/ID"
        },
        "ShipType": {
          "type": "string"
        },
        "ShipType_Localised": {
          "type": "string"
        },
        "event": {
          "const": "ShipyardNew",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "NewShipID",
        "ShipType",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ShipyardRedeem": {
      "additionalProperties": false,
      "properties": {
        "BundleID": {
          "$ref": "#/definitions/ID"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "ShipType": {
          "type": "string"
        },
        "ShipType_Localised": {
          "type": "string"
        },
        "event": {
          "const": "ShipyardRedeem",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BundleID",
        "MarketID",
        "ShipType",
        "ShipType_Localised",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ShipyardSell": {
      "additionalProperties": false,
      "properties": {
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "SellShipID": {
          "$ref": "#/definitions/ID"
        },
        "ShipMarketID": {
          "$ref": "#/definitions/ID"
        },
        "ShipPrice": {
          "type": "number"
        },
        "ShipType": {
          "type": "string"
        },
        "ShipType_Localised": {
          "type": "string"
        },
        "System": {
          "type": "string"
        },
        "event": {
          "const": "ShipyardSell",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "SellShipID",
        "ShipPrice",
        "ShipType",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ShipyardSwap": {
      "additionalProperties": false,
      "description": "TODO Verify by swapping ship and selling the old one at the same time.",
      "properties": {
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "SellOldShip": {
          "type": "string"
        },
        "SellShipID": {
          "$ref": "#/definitions/ID"
        },
        "ShipID": {
          "$ref": "#/definitions/ID"
        },
        "ShipType": {
          "type": "string"
        },
        "ShipType_Localised": {
          "type": "string"
        },
        "StoreOldShip": {
          "type": "string"
        },
        "StoreShipID": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "ShipyardSwap",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "ShipID",
        "ShipType",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "ShipyardTransfer": {
      "additionalProperties": false,
      "properties": {
        "Distance": {
          "type": "number"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "ShipID": {
          "$ref": "#/definitions/ID"
        },
        "ShipMarketID": {
          "$ref": "#/definitions/ID"
        },
        "ShipType": {
          "type": "string"
        },
        "ShipType_Localised": {
          "type": "string"
        },
        "System": {
          "type": "string"
        },
        "TransferPrice": {
          "type": "number"
        },
        "TransferTime": {
          "type": "number"
        },
        "event": {
          "const": "ShipyardTransfer",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Distance",
        "ShipID",
        "ShipType",
        "System",
        "TransferPrice",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Shutdown": {
      "additionalProperties": false,
      "properties": {
        "event": {
          "const": "Shutdown",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SignalType": {
      "enum": [
        "Outpost",
        "StationCoriolis",
        "FleetCarrier",
        "StationONeilOrbis",
        "NavBeacon",
        "Megaship",
        "Combat",
        "Installation",
        "StationONeilCylinder",
        "Generic",
        "ResourceExtraction",
        "StationBernalSphere",
        "TouristBeacon",
        "Titan",
        "StationMegaShip",
        "USS",
        "Codex",
        "StationAsteroid",
        "SquadronCarrier",
        "StationDodec"
      ],
      "type": "string"
    },
    "SquadronCreated": {
      "additionalProperties": false,
      "properties": {
        "SquadronID": {
          "$ref": "#/definitions/ID"
        },
        "SquadronName": {
          "type": "string"
        },
        "event": {
          "const": "SquadronCreated",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "SquadronID",
        "SquadronName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SquadronDemotion": {
      "additionalProperties": false,
      "properties": {
        "NewRank": {
          "type": "number"
        },
        "NewRankName": {
          "type": "string"
        },
        "OldRank": {
          "type": "number"
        },
        "OldRankName": {
          "type": "string"
        },
        "SquadronID": {
          "$ref": "#/definitions/ID"
        },
        "SquadronName": {
          "type": "string"
        },
        "event": {
          "const": "SquadronDemotion",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "NewRank",
        "NewRankName",
        "OldRank",
        "OldRankName",
        "SquadronID",
        "SquadronName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SquadronPromotion": {
      "additionalProperties": false,
      "properties": {
        "NewRank": {
          "type": "number"
        },
        "NewRankName": {
          "type": "string"
        },
        "OldRank": {
          "type": "number"
        },
        "OldRankName": {
          "type": "string"
        },
        "SquadronID": {
          "$ref": "#/definitions/ID"
        },
        "SquadronName": {
          "type": "string"
        },
        "event": {
          "const": "SquadronPromotion",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "NewRank",
        "NewRankName",
        "OldRank",
        "OldRankName",
        "SquadronID",
        "SquadronName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SquadronStartup": {
      "additionalProperties": false,
      "properties": {
        "CurrentRank": {
          "type": "number"
        },
        "CurrentRankName": {
          "type": "string"
        },
        "CurrentRankName_Localised": {
          "type": "string"
        },
        "SquadronID": {
          "$ref": "#/definitions/ID"
        },
        "SquadronName": {
          "type": "string"
        },
        "event": {
          "const": "SquadronStartup",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "CurrentRank",
        "SquadronName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "StarType": {
      "description": "Star types",
      "enum": [
        "A",
        "A_BlueWhiteSuperGiant",
        "AeBe",
        "B",
        "B_BlueWhiteSuperGiant",
        "CN",
        "D",
        "DA",
        "DAB",
        "DAV",
        "DAZ",
        "DB",
        "DBV",
        "DC",
        "DCV",
        "DQ",
        "F",
        "F_WhiteSuperGiant",
        "G",
        "H",
        "K",
        "K_OrangeGiant",
        "L",
        "M",
        "M_RedGiant",
        "M_RedSuperGiant",
        "MS",
        "N",
        "O",
        "S",
        "SupermassiveBlackHole",
        "T",
        "TTS",
        "W",
        "WC",
        "WO",
        "Y"
      ],
      "type": "string"
    },
    "StartJump": {
      "additionalProperties": false,
      "description": "Written at the start of a hyperspace or supercruise jump (start of countdown)",
      "properties": {
        "JumpType": {
          "$ref": "#/definitions/JumpType",
          "description": "The type of jump."
        },
        "StarClass": {
          "$ref": "#/definitions/StarType",
          "description": "Star type (Only for a hyperspace jump)"
        },
        "StarSystem": {
          "description": "Name of destination system (for a hyperspace jump)",
          "type": "string"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "Taxi": {
          "description": "True if player is in a taxi.",
          "type": "boolean"
        },
        "event": {
          "const": "StartJump",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "JumpType",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "StationService": {
      "description": "The station services.",
      "enum": [
        "dock",
        "autodock",
        "blackmarket",
        "commodities",
        "contacts",
        "exploration",
        "missions",
        "outfitting",
        "crewlounge",
        "rearm",
        "refuel",
        "repair",
        "shipyard",
        "tuning",
        "engineer",
        "missionsgenerated",
        "facilitator",
        "flightcontroller",
        "stationoperations",
        "ondockmission",
        "powerplay",
        "searchrescue",
        "materialtrader",
        "techBroker",
        "stationMenu",
        "carriermanagement",
        "carrierfuel",
        "voucherredemption",
        "shop",
        "carriervendor",
        "livery",
        "modulepacks",
        "socialspace",
        "bartender",
        "vistagenomics",
        "pioneersupplies",
        "apexinterstellar",
        "frontlinesolutions",
        "registeringcolonisation",
        "colonisationcontribution",
        "refinery",
        "squadronBank"
      ],
      "type": "string"
    },
    "StationType": {
      "description": "Station types.",
      "enum": [
        "FleetCarrier",
        "Outpost",
        "Coriolis",
        "Orbis",
        "Bernal",
        "SurfaceStation",
        "AsteroidBase",
        "MegaShip",
        "CraterOutpost",
        "Ocellus",
        "CraterPort",
        "OnFootSettlement",
        "SpaceConstructionDepot",
        "PlanetaryConstructionDepot"
      ],
      "type": "string"
    },
    "Statistics": {
      "additionalProperties": false,
      "description": "The information displayed in the statistics panel on the right side of the cockpit. Written at startup.\n\nNote: Times are in seconds.",
      "properties": {
        "Bank_Account": {
          "additionalProperties": false,
          "properties": {
            "Current_Wealth": {
              "type": "number"
            },
            "Insurance_Claims": {
              "type": "number"
            },
            "Owned_Ship_Count": {
              "type": "number"
            },
            "Premium_Stock_Bought": {
              "type": "number"
            },
            "Spent_On_Ammo_Consumables": {
              "type": "number"
            },
            "Spent_On_Fuel": {
              "type": "number"
            },
            "Spent_On_Insurance": {
              "type": "number"
            },
            "Spent_On_Outfitting": {
              "type": "number"
            },
            "Spent_On_Premium_Stock": {
              "type": "number"
            },
            "Spent_On_Repairs": {
              "type": "number"
            },
            "Spent_On_Ships": {
              "type": "number"
            },
            "Spent_On_Suit_Consumables": {
              "type": "number"
            },
            "Spent_On_Suits": {
              "type": "number"
            },
            "Spent_On_Weapons": {
              "type": "number"
            },
            "Suits_Owned": {
              "type": "number"
            },
            "Weapons_Owned": {
              "type": "number"
            }
          },
          "type": "object"
        },
        "CQC": {
          "additionalProperties": false,
          "properties": {
            "CQC_Credits_Earned": {
              "type": "number"
            },
            "CQC_KD": {
              "type": "number"
            },
            "CQC_Kills": {
              "type": "number"
            },
            "CQC_Time_Played": {
              "type": "number"
            },
            "CQC_WL": {
              "type": "number"
            }
          },
          "type": "object"
        },
        "Combat": {
          "additionalProperties": false,
          "properties": {
            "Assassination_Profits": {
              "type": "number"
            },
            "Assassinations": {
              "type": "number"
            },
            "Bounties_Claimed": {
              "type": "number"
            },
            "Bounty_Hunting_Profit": {
              "type": "number"
            },
            "Combat_Bond_Profits": {
              "type": "number"
            },
            "Combat_Bonds": {
              "type": "number"
            },
            "ConflictZone_High": {
              "type": "number"
            },
            "ConflictZone_High_Wins": {
              "type": "number"
            },
            "ConflictZone_Low": {
              "type": "number"
            },
            "ConflictZone_Low_Wins": {
              "type": "number"
            },
            "ConflictZone_Medium": {
              "type": "number"
            },
            "ConflictZone_Medium_Wins": {
              "type": "number"
            },
            "ConflictZone_Total": {
              "type": "number"
            },
            "ConflictZone_Total_Wins": {
              "type": "number"
            },
            "Dropships_Booked": {
              "type": "number"
            },
            "Dropships_Cancelled": {
              "type": "number"
            },
            "Dropships_Taken": {
              "type": "number"
            },
            "Highest_Single_Reward": {
              "type": "number"
            },
            "OnFoot_Combat_Bonds": {
              "type": "number"
            },
            "OnFoot_Combat_Bonds_Profits": {
              "type": "number"
            },
            "OnFoot_Scavs_Killed": {
              "type": "number"
            },
            "OnFoot_Ships_Destroyed": {
              "type": "number"
            },
            "OnFoot_Skimmers_Killed": {
              "type": "number"
            },
            "OnFoot_Vehicles_Destroyed": {
              "type": "number"
            },
            "Settlement_Conquered": {
              "type": "number"
            },
            "Settlement_Defended": {
              "type": "number"
            },
            "Skimmers_Killed": {
              "type": "number"
            }
          },
          "type": "object"
        },
        "Crafting": {
          "additionalProperties": false,
          "properties": {
            "Count_Of_Used_Engineers": {
              "type": "number"
            },
            "Recipes_Generated": {
              "type": "number"
            },
            "Recipes_Generated_Rank_1": {
              "type": "number"
            },
            "Recipes_Generated_Rank_2": {
              "type": "number"
            },
            "Recipes_Generated_Rank_3": {
              "type": "number"
            },
            "Recipes_Generated_Rank_4": {
              "type": "number"
            },
            "Recipes_Generated_Rank_5": {
              "type": "number"
            },
            "Suit_Mods_Applied": {
              "type": "number"
            },
            "Suit_Mods_Applied_Full": {
              "type": "number"
            },
            "Suits_Upgraded": {
              "type": "number"
            },
            "Suits_Upgraded_Full": {
              "type": "number"
            },
            "Weapon_Mods_Applied": {
              "type": "number"
            },
            "Weapon_Mods_Applied_Full": {
              "type": "number"
            },
            "Weapons_Upgraded": {
              "type": "number"
            },
            "Weapons_Upgraded_Full": {
              "type": "number"
            }
          },
          "type": "object"
        },
        "Crew": {
          "additionalProperties": false,
          "properties": {
            "NpcCrew_Died": {
              "type": "number"
            },
            "NpcCrew_Fired": {
              "type": "number"
            },
            "NpcCrew_Hired": {
              "type": "number"
            },
            "NpcCrew_TotalWages": {
              "type": "number"
            }
          },
          "type": "object"
        },
        "Crime": {
          "additionalProperties": false,
          "properties": {
            "Bounties_Received": {
              "type": "number"
            },
            "Citizens_Murdered": {
              "type": "number"
            },
            "Data_Stolen": {
              "type": "number"
            },
            "Fines": {
              "type": "number"
            },
            "Goods_Stolen": {
              "type": "number"
            },
            "Guards_Murdered": {
              "type": "number"
            },
            "Highest_Bounty": {
              "type": "number"
            },
            "Malware_Uploaded": {
              "type": "number"
            },
            "Notoriety": {
              "type": "number"
            },
            "Omnipol_Murdered": {
              "type": "number"
            },
            "Production_Sabotage": {
              "type": "number"
            },
            "Production_Theft": {
              "type": "number"
            },
            "Profiles_Cloned": {
              "type": "number"
            },
            "Sample_Stolen": {
              "type": "number"
            },
            "Settlements_State_Shutdown": {
              "type": "number"
            },
            "Total_Bounties": {
              "type": "number"
            },
            "Total_Fines": {
              "type": "number"
            },
            "Total_Murders": {
              "type": "number"
            },
            "Total_Stolen": {
              "type": "number"
            },
            "Turrets_Destroyed": {
              "type": "number"
            },
            "Turrets_Overloaded": {
              "type": "number"
            },
            "Turrets_Total": {
              "type": "number"
            },
            "Value_Stolen_StateChange": {
              "type": "number"
            }
          },
          "type": "object"
        },
        "Exobiology": {
          "additionalProperties": false,
          "properties": {
            "First_Logged": {
              "type": "number"
            },
            "First_Logged_Profits": {
              "type": "number"
            },
            "Organic_Data": {
              "type": "number"
            },
            "Organic_Data_Profits": {
              "type": "number"
            },
            "Organic_Genus": {
              "type": "number"
            },
            "Organic_Genus_Encountered": {
              "type": "number"
            },
            "Organic_Planets": {
              "type": "number"
            },
            "Organic_Species": {
              "type": "number"
            },
            "Organic_Species_Encountered": {
              "type": "number"
            },
            "Organic_Systems": {
              "type": "number"
            },
            "Organic_Variant_Encountered": {
              "type": "number"
            }
          },
          "required": [
            "Organic_Genus_Encountered",
            "Organic_Species_Encountered",
            "Organic_Variant_Encountered",
            "Organic_Data_Profits",
            "Organic_Data",
            "First_Logged_Profits",
            "First_Logged",
            "Organic_Systems",
            "Organic_Planets",
            "Organic_Genus",
            "Organic_Species"
          ],
          "type": "object"
        },
        "Exploration": {
          "additionalProperties": false,
          "properties": {
            "Efficient_Scans": {
              "type": "number"
            },
            "Exploration_Profits": {
              "type": "number"
            },
            "First_Footfalls": {
              "type": "number"
            },
            "Greatest_Distance_From_Start": {
              "type": "number"
            },
            "Highest_Payout": {
              "type": "number"
            },
            "OnFoot_Distance_Travelled": {
              "type": "number"
            },
            "Planet_Footfalls": {
              "type": "number"
            },
            "Planets_Scanned_To_Level_2": {
              "type": "number"
            },
            "Planets_Scanned_To_Level_3": {
              "type": "number"
            },
            "Settlements_Visited": {
              "type": "number"
            },
            "Shuttle_Distance_Travelled": {
              "type": "number"
            },
            "Shuttle_Journeys": {
              "type": "number"
            },
            "Spent_On_Shuttles": {
              "type": "number"
            },
            "Systems_Visited": {
              "type": "number"
            },
            "Time_Played": {
              "type": "number"
            },
            "Total_Hyperspace_Distance": {
              "type": "number"
            },
            "Total_Hyperspace_Jumps": {
              "type": "number"
            }
          },
          "type": "object"
        },
        "FLEETCARRIER": {
          "additionalProperties": false,
          "properties": {
            "FLEETCARRIER_DISTANCE_TRAVELLED": {
              "type": "number"
            },
            "FLEETCARRIER_EXPORT_TOTAL": {
              "type": "number"
            },
            "FLEETCARRIER_IMPORT_TOTAL": {
              "type": "number"
            },
            "FLEETCARRIER_OUTFITTING_PROFIT": {
              "type": "number"
            },
            "FLEETCARRIER_OUTFITTING_SOLD": {
              "type": "number"
            },
            "FLEETCARRIER_REARM_TOTAL": {
              "type": "number"
            },
            "FLEETCARRIER_REFUEL_PROFIT": {
              "type": "number"
            },
            "FLEETCARRIER_REFUEL_TOTAL": {
              "type": "number"
            },
            "FLEETCARRIER_REPAIRS_TOTAL": {
              "type": "number"
            },
            "FLEETCARRIER_SHIPYARD_PROFIT": {
              "type": "number"
            },
            "FLEETCARRIER_SHIPYARD_SOLD": {
              "type": "number"
            },
            "FLEETCARRIER_STOLENPROFIT_TOTAL": {
              "type": "number"
            },
            "FLEETCARRIER_STOLENSPEND_TOTAL": {
              "type": "number"
            },
            "FLEETCARRIER_TOTAL_JUMPS": {
              "type": "number"
            },
            "FLEETCARRIER_TRADEPROFIT_TOTAL": {
              "type": "number"
            },
            "FLEETCARRIER_TRADESPEND_TOTAL": {
              "type": "number"
            },
            "FLEETCARRIER_VOUCHERS_PROFIT": {
              "type": "number"
            },
            "FLEETCARRIER_VOUCHERS_REDEEMED": {
              "type": "number"
            }
          },
          "required": [
            "FLEETCARRIER_EXPORT_TOTAL",
            "FLEETCARRIER_IMPORT_TOTAL",
            "FLEETCARRIER_TRADEPROFIT_TOTAL",
            "FLEETCARRIER_TRADESPEND_TOTAL",
            "FLEETCARRIER_STOLENPROFIT_TOTAL",
            "FLEETCARRIER_STOLENSPEND_TOTAL",
            "FLEETCARRIER_DISTANCE_TRAVELLED",
            "FLEETCARRIER_TOTAL_JUMPS",
            "FLEETCARRIER_SHIPYARD_SOLD",
            "FLEETCARRIER_SHIPYARD_PROFIT",
            "FLEETCARRIER_OUTFITTING_SOLD",
            "FLEETCARRIER_OUTFITTING_PROFIT",
            "FLEETCARRIER_REARM_TOTAL",
            "FLEETCARRIER_REFUEL_TOTAL",
            "FLEETCARRIER_REFUEL_PROFIT",
            "FLEETCARRIER_REPAIRS_TOTAL",
            "FLEETCARRIER_VOUCHERS_REDEEMED",
            "FLEETCARRIER_VOUCHERS_PROFIT"
          ],
          "type": "object"
        },
        "Material_Trader_Stats": {
          "additionalProperties": false,
          "properties": {
            "Assets_Traded_In": {
              "type": "number"
            },
            "Assets_Traded_Out": {
              "type": "number"
            },
            "Encoded_Materials_Traded": {
              "type": "number"
            },
            "Grade_1_Materials_Traded": {
              "type": "number"
            },
            "Grade_2_Materials_Traded": {
              "type": "number"
            },
            "Grade_3_Materials_Traded": {
              "type": "number"
            },
            "Grade_4_Materials_Traded": {
              "type": "number"
            },
            "Grade_5_Materials_Traded": {
              "type": "number"
            },
            "Materials_Traded": {
              "type": "number"
            },
            "Raw_Materials_Traded": {
              "type": "number"
            },
            "Trades_Completed": {
              "type": "number"
            }
          },
          "type": "object"
        },
        "Mining": {
          "additionalProperties": false,
          "properties": {
            "Materials_Collected": {
              "type": "number"
            },
            "Mining_Profits": {
              "type": "number"
            },
            "Quantity_Mined": {
              "type": "number"
            }
          },
          "type": "object"
        },
        "Multicrew": {
          "additionalProperties": false,
          "properties": {
            "Multicrew_Credits_Total": {
              "type": "number"
            },
            "Multicrew_Fighter_Time_Total": {
              "type": "number"
            },
            "Multicrew_Fines_Total": {
              "type": "number"
            },
            "Multicrew_Gunner_Time_Total": {
              "type": "number"
            },
            "Multicrew_Time_Total": {
              "type": "number"
            }
          },
          "type": "object"
        },
        "Passengers": {
          "additionalProperties": false,
          "properties": {
            "Passengers_Missions_Accepted": {
              "type": "number"
            },
            "Passengers_Missions_Bulk": {
              "type": "number"
            },
            "Passengers_Missions_Delivered": {
              "type": "number"
            },
            "Passengers_Missions_Disgruntled": {
              "type": "number"
            },
            "Passengers_Missions_Ejected": {
              "type": "number"
            },
            "Passengers_Missions_VIP": {
              "type": "number"
            }
          },
          "type": "object"
        },
        "Search_And_Rescue": {
          "additionalProperties": false,
          "properties": {
            "Maglocks_Opened": {
              "type": "number"
            },
            "Panels_Opened": {
              "type": "number"
            },
            "Salvage_Illegal_POI": {
              "type": "number"
            },
            "Salvage_Illegal_Settlements": {
              "type": "number"
            },
            "Salvage_Legal_POI": {
              "type": "number"
            },
            "Salvage_Legal_Settlements": {
              "type": "number"
            },
            "SearchRescue_Count": {
              "type": "number"
            },
            "SearchRescue_Profit": {
              "type": "number"
            },
            "SearchRescue_Traded": {
              "type": "number"
            },
            "Settlements_State_FireOut": {
              "type": "number"
            },
            "Settlements_State_Reboot": {
              "type": "number"
            }
          },
          "type": "object"
        },
        "Smuggling": {
          "additionalProperties": false,
          "properties": {
            "Average_Profit": {
              "type": "number"
            },
            "Black_Markets_Profits": {
              "type": "number"
            },
            "Black_Markets_Traded_With": {
              "type": "number"
            },
            "Highest_Single_Transaction": {
              "type": "number"
            },
            "Resources_Smuggled": {
              "type": "number"
            }
          },
          "type": "object"
        },
        "Squadron": {
          "additionalProperties": false,
          "properties": {
            "Squadron_Bank_Commodities_Deposited_Num": {
              "type": "number"
            },
            "Squadron_Bank_Commodities_Deposited_Value": {
              "type": "number"
            },
            "Squadron_Bank_Commodities_Withdrawn_Num": {
              "type": "number"
            },
            "Squadron_Bank_Commodities_Withdrawn_Value": {
              "type": "number"
            },
            "Squadron_Bank_Credits_Deposited": {
              "type": "number"
            },
            "Squadron_Bank_Credits_Withdrawn": {
              "type": "number"
            },
            "Squadron_Bank_PersonalAssets_Deposited_Num": {
              "type": "number"
            },
            "Squadron_Bank_PersonalAssets_Deposited_Value": {
              "type": "number"
            },
            "Squadron_Bank_PersonalAssets_Withdrawn_Num": {
              "type": "number"
            },
            "Squadron_Bank_PersonalAssets_Withdrawn_Value": {
              "type": "number"
            },
            "Squadron_Bank_Ships_Deposited_Num": {
              "type": "number"
            },
            "Squadron_Bank_Ships_Deposited_Value": {
              "type": "number"
            },
            "Squadron_Leaderboard_aegis_highestcontribution": {
              "type": "number"
            },
            "Squadron_Leaderboard_bgs_highestcontribution": {
              "type": "number"
            },
            "Squadron_Leaderboard_bounty_highestcontribution": {
              "type": "number"
            },
            "Squadron_Leaderboard_colonisation_contribution_highestcontribution": {
              "type": "number"
            },
            "Squadron_Leaderboard_combat_highestcontribution": {
              "type": "number"
            },
            "Squadron_Leaderboard_cqc_highestcontribution": {
              "type": "number"
            },
            "Squadron_Leaderboard_exploration_highestcontribution": {
              "type": "number"
            },
            "Squadron_Leaderboard_mining_highestcontribution": {
              "type": "number"
            },
            "Squadron_Leaderboard_podiums": {
              "type": "number"
            },
            "Squadron_Leaderboard_powerplay_highestcontribution": {
              "type": "number"
            },
            "Squadron_Leaderboard_trade_highestcontribution": {
              "type": "number"
            },
            "Squadron_Leaderboard_trade_illicit_highestcontribution": {
              "type": "number"
            }
          },
          "required": [
            "Squadron_Bank_Credits_Deposited",
            "Squadron_Bank_Credits_Withdrawn",
            "Squadron_Bank_Commodities_Deposited_Num",
            "Squadron_Bank_Commodities_Deposited_Value",
            "Squadron_Bank_Commodities_Withdrawn_Num",
            "Squadron_Bank_Commodities_Withdrawn_Value",
            "Squadron_Bank_PersonalAssets_Deposited_Num",
            "Squadron_Bank_PersonalAssets_Deposited_Value",
            "Squadron_Bank_PersonalAssets_Withdrawn_Num",
            "Squadron_Bank_PersonalAssets_Withdrawn_Value",
            "Squadron_Bank_Ships_Deposited_Num",
            "Squadron_Bank_Ships_Deposited_Value",
            "Squadron_Leaderboard_aegis_highestcontribution",
            "Squadron_Leaderboard_bgs_highestcontribution",
            "Squadron_Leaderboard_bounty_highestcontribution",
            "Squadron_Leaderboard_colonisation_contribution_highestcontribution",
            "Squadron_Leaderboard_combat_highestcontribution",
            "Squadron_Leaderboard_cqc_highestcontribution",
            "Squadron_Leaderboard_exploration_highestcontribution",
            "Squadron_Leaderboard_mining_highestcontribution",
            "Squadron_Leaderboard_powerplay_highestcontribution",
            "Squadron_Leaderboard_trade_highestcontribution",
            "Squadron_Leaderboard_trade_illicit_highestcontribution",
            "Squadron_Leaderboard_podiums"
          ],
          "type": "object"
        },
        "TG_ENCOUNTERS": {
          "additionalProperties": false,
          "properties": {
            "TG_ENCOUNTER_IMPRINT": {
              "type": "number"
            },
            "TG_ENCOUNTER_KILLED": {
              "type": "number"
            },
            "TG_ENCOUNTER_TOTAL": {
              "type": "number"
            },
            "TG_ENCOUNTER_TOTAL_LAST_SHIP": {
              "type": "string"
            },
            "TG_ENCOUNTER_TOTAL_LAST_SYSTEM": {
              "type": "string"
            },
            "TG_ENCOUNTER_TOTAL_LAST_TIMESTAMP": {
              "type": "string"
            },
            "TG_SCOUT_COUNT": {
              "type": "number"
            }
          },
          "type": "object"
        },
        "Trading": {
          "additionalProperties": false,
          "properties": {
            "Assets_Sold": {
              "type": "number"
            },
            "Average_Profit": {
              "type": "number"
            },
            "Data_Sold": {
              "type": "number"
            },
            "Goods_Sold": {
              "type": "number"
            },
            "Highest_Single_Transaction": {
              "type": "number"
            },
            "Market_Profits": {
              "type": "number"
            },
            "Markets_Traded_With": {
              "type": "number"
            },
            "Resources_Traded": {
              "type": "number"
            }
          },
          "type": "object"
        },
        "event": {
          "const": "Statistics",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Bank_Account",
        "Combat",
        "Crime",
        "Exploration",
        "Mining",
        "Passengers",
        "Search_And_Rescue",
        "Smuggling",
        "Trading",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "StoredModules": {
      "additionalProperties": false,
      "description": "TODO Revalidate? Some mismatches between Log and API doc",
      "properties": {
        "Items": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "BuyPrice": {
                "type": "number"
              },
              "EngineerModifications": {
                "type": "string"
              },
              "Hot": {
                "type": "boolean"
              },
              "InTransit": {
                "type": "boolean"
              },
              "Level": {
                "type": "number"
              },
              "MarketID": {
                "$ref": "#/definitions/ID"
              },
              "Name": {
                "type": "string"
              },
              "Name_Localised": {
                "type": "string"
              },
              "Quality": {
                "type": "number"
              },
              "StarSystem": {
                "type": "string"
              },
              "StorageSlot": {
                "type": "number"
              },
              "TransferCost": {
                "type": "number"
              },
              "TransferTime": {
                "type": "number"
              }
            },
            "required": [
              "BuyPrice",
              "Hot",
              "Name",
              "StorageSlot"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "StarSystem": {
          "type": "string"
        },
        "StationName": {
          "type": "string"
        },
        "event": {
          "const": "StoredModules",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Items",
        "MarketID",
        "StarSystem",
        "StationName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "StoredShips": {
      "additionalProperties": false,
      "properties": {
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "ShipsHere": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Hot": {
                "type": "boolean"
              },
              "Name": {
                "type": "string"
              },
              "ShipID": {
                "$ref": "#/definitions/ID"
              },
              "ShipType": {
                "type": "string"
              },
              "ShipType_Localised": {
                "type": "string"
              },
              "Value": {
                "type": "number"
              }
            },
            "required": [
              "Hot",
              "ShipID",
              "ShipType",
              "Value"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "ShipsRemote": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Hot": {
                "type": "boolean"
              },
              "InTransit": {
                "type": "boolean"
              },
              "Name": {
                "type": "string"
              },
              "ShipID": {
                "$ref": "#/definitions/ID"
              },
              "ShipMarketID": {
                "$ref": "#/definitions/ID"
              },
              "ShipType": {
                "type": "string"
              },
              "ShipType_Localised": {
                "type": "string"
              },
              "StarSystem": {
                "type": "string"
              },
              "TransferPrice": {
                "type": "number"
              },
              "TransferTime": {
                "type": "number"
              },
              "Value": {
                "type": "number"
              }
            },
            "required": [
              "Hot",
              "ShipID",
              "ShipType",
              "Value"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "StarSystem": {
          "type": "string"
        },
        "StationName": {
          "type": "string"
        },
        "event": {
          "const": "StoredShips",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "MarketID",
        "ShipsHere",
        "ShipsRemote",
        "StarSystem",
        "StationName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SuitLoadout": {
      "additionalProperties": false,
      "properties": {
        "LoadoutID": {
          "$ref": "#/definitions/ID"
        },
        "LoadoutName": {
          "type": "string"
        },
        "Modules": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Class": {
                "type": "number"
              },
              "ModuleName": {
                "type": "string"
              },
              "ModuleName_Localised": {
                "type": "string"
              },
              "SlotName": {
                "type": "string"
              },
              "SuitModuleID": {
                "$ref": "#/definitions/ID"
              },
              "WeaponMods": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "SlotName",
              "SuitModuleID",
              "ModuleName",
              "ModuleName_Localised"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "SuitID": {
          "$ref": "#/definitions/ID"
        },
        "SuitMods": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SuitName": {
          "type": "string"
        },
        "SuitName_Localised": {
          "type": "string"
        },
        "event": {
          "const": "SuitLoadout",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "LoadoutID",
        "LoadoutName",
        "Modules",
        "SuitID",
        "SuitName",
        "SuitName_Localised",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SupercruiseDestinationDrop": {
      "additionalProperties": false,
      "description": "When dropping out of supercruise at a targeted destination.",
      "properties": {
        "MarketID": {
          "$ref": "#/definitions/ID",
          "description": "Optional market id of the destination if dropping at a market."
        },
        "Threat": {
          "description": "Threat level.",
          "type": "number"
        },
        "Type": {
          "description": "The type fo destination being dropped into.",
          "type": "string"
        },
        "Type_Localised": {
          "type": "string"
        },
        "event": {
          "const": "SupercruiseDestinationDrop",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Threat",
        "Type",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SupercruiseEntry": {
      "additionalProperties": false,
      "description": "Written when entering supercruise from normal space.",
      "properties": {
        "Multicrew": {
          "type": "boolean"
        },
        "StarSystem": {
          "type": "string"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "Taxi": {
          "type": "boolean"
        },
        "event": {
          "const": "SupercruiseEntry",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "StarSystem",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SupercruiseExit": {
      "additionalProperties": false,
      "description": "Written when leaving supercruise for normal space.",
      "properties": {
        "Body": {
          "type": "string"
        },
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "BodyType": {
          "$ref": "#/definitions/BodyType"
        },
        "Multicrew": {
          "type": "boolean"
        },
        "StarSystem": {
          "type": "string"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "Taxi": {
          "type": "boolean"
        },
        "event": {
          "const": "SupercruiseExit",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Body",
        "BodyType",
        "StarSystem",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SwitchSuitLoadout": {
      "additionalProperties": false,
      "properties": {
        "LoadoutID": {
          "$ref": "#/definitions/ID"
        },
        "LoadoutName": {
          "type": "string"
        },
        "Modules": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Class": {
                "type": "number"
              },
              "ModuleName": {
                "type": "string"
              },
              "ModuleName_Localised": {
                "type": "string"
              },
              "SlotName": {
                "type": "string"
              },
              "SuitModuleID": {
                "$ref": "#/definitions/ID"
              },
              "WeaponMods": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "SlotName",
              "SuitModuleID",
              "ModuleName",
              "ModuleName_Localised"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "SuitID": {
          "$ref": "#/definitions/ID"
        },
        "SuitMods": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "SuitName": {
          "type": "string"
        },
        "SuitName_Localised": {
          "type": "string"
        },
        "event": {
          "const": "SwitchSuitLoadout",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "LoadoutID",
        "LoadoutName",
        "Modules",
        "SuitID",
        "SuitName",
        "SuitName_Localised",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Synthesis": {
      "additionalProperties": false,
      "properties": {
        "Materials": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Count": {
                "type": "number"
              },
              "Name": {
                "type": "string"
              },
              "Name_Localised": {
                "type": "string"
              },
              "Percent": {
                "type": "number"
              }
            },
            "required": [
              "Name"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "Name": {
          "type": "string"
        },
        "event": {
          "const": "Synthesis",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Materials",
        "Name",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "SystemsShutdown": {
      "additionalProperties": false,
      "properties": {
        "event": {
          "const": "SystemsShutdown",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "TechnologyBroker": {
      "additionalProperties": false,
      "properties": {
        "BrokerType": {
          "type": "string"
        },
        "Commodities": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Count": {
                "type": "number"
              },
              "Name": {
                "type": "string"
              },
              "Name_Localised": {
                "type": "string"
              }
            },
            "required": [
              "Count",
              "Name"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "ItemsUnlocked": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Name": {
                "type": "string"
              },
              "Name_Localised": {
                "type": "string"
              }
            },
            "required": [
              "Name"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Materials": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Category": {
                "type": "string"
              },
              "Count": {
                "type": "number"
              },
              "Name": {
                "type": "string"
              },
              "Name_Localised": {
                "type": "string"
              }
            },
            "required": [
              "Category",
              "Count",
              "Name"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "event": {
          "const": "TechnologyBroker",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "BrokerType",
        "Commodities",
        "ItemsUnlocked",
        "MarketID",
        "Materials",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Touchdown": {
      "additionalProperties": false,
      "description": "Written when landing on a planet surface.",
      "properties": {
        "Body": {
          "type": "string"
        },
        "BodyID": {
          "$ref": "#/definitions/ID"
        },
        "Latitude": {
          "type": "number"
        },
        "Longitude": {
          "type": "number"
        },
        "Multicrew": {
          "type": "boolean"
        },
        "NearestDestination": {
          "description": "Included if within 50 km of a location listed in the nav panel.",
          "type": "string"
        },
        "NearestDestination_Localised": {
          "type": "string"
        },
        "OnPlanet": {
          "type": "boolean"
        },
        "OnStation": {
          "type": "boolean"
        },
        "PlayerControlled": {
          "description": "False if ship was recalled from SRV, true if player is landing.",
          "type": "boolean"
        },
        "StarSystem": {
          "type": "string"
        },
        "SystemAddress": {
          "$ref": "#/definitions/ID"
        },
        "Taxi": {
          "type": "boolean"
        },
        "event": {
          "const": "Touchdown",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "TradeMicroResources": {
      "additionalProperties": false,
      "properties": {
        "Category": {
          "type": "string"
        },
        "Count": {
          "type": "number"
        },
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Offered": {
          "items": {
            "$ref": "#/definitions/MicroResource"
          },
          "type": "array"
        },
        "Received": {
          "type": "string"
        },
        "Received_Localised": {
          "type": "string"
        },
        "TotalCount": {
          "type": "number"
        },
        "event": {
          "const": "TradeMicroResources",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Category",
        "Count",
        "MarketID",
        "Offered",
        "Received",
        "TotalCount",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "TransferMicroResources": {
      "additionalProperties": false,
      "properties": {
        "Transfers": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Category": {
                "type": "string"
              },
              "Count": {
                "description": "Old",
                "type": "number"
              },
              "Direction": {
                "type": "string"
              },
              "LockerNewCount": {
                "description": "New",
                "type": "number"
              },
              "LockerOldCount": {
                "description": "New",
                "type": "number"
              },
              "Name": {
                "type": "string"
              },
              "Name_Localised": {
                "type": "string"
              }
            },
            "required": [
              "Name",
              "Category",
              "Direction"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "event": {
          "const": "TransferMicroResources",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Transfers",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "USSDrop": {
      "additionalProperties": false,
      "properties": {
        "USSThreat": {
          "type": "number"
        },
        "USSType": {
          "type": "string"
        },
        "USSType_Localised": {
          "type": "string"
        },
        "event": {
          "const": "USSDrop",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "USSThreat",
        "USSType",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "UnderAttack": {
      "additionalProperties": false,
      "description": "Written when under fire (same time as the Under Attack voice message).",
      "properties": {
        "Target": {
          "enum": [
            "Fighter",
            "Mothership",
            "You"
          ],
          "type": "string"
        },
        "event": {
          "const": "UnderAttack",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "Undocked": {
      "additionalProperties": false,
      "description": "Written when liftoff from a landing pad in a station, outpost or settlement.",
      "properties": {
        "MarketID": {
          "$ref": "#/definitions/ID"
        },
        "Multicrew": {
          "type": "boolean"
        },
        "StationName": {
          "type": "string"
        },
        "StationType": {
          "$ref": "#/definitions/StationType"
        },
        "Taxi": {
          "type": "boolean"
        },
        "event": {
          "const": "Undocked",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "StationName",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "UnlockedEngineer": {
      "additionalProperties": false,
      "description": "An unlocked engineer with rank and rank progress.",
      "properties": {
        "Engineer": {
          "description": "The engineer's name.",
          "type": "string"
        },
        "EngineerID": {
          "$ref": "#/definitions/ID",
          "description": "The engineer ID. Not present in older events, therefore optional."
        },
        "Progress": {
          "const": "Unlocked",
          "description": "The engineer's progress state.",
          "type": "string"
        },
        "Rank": {
          "description": "The unlocked rank.",
          "type": "number"
        },
        "RankProgress": {
          "type": "number"
        }
      },
      "required": [
        "Engineer",
        "Progress",
        "Rank",
        "RankProgress"
      ],
      "type": "object"
    },
    "UpgradeSuit": {
      "additionalProperties": false,
      "properties": {
        "Class": {
          "type": "number"
        },
        "Cost": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "Resources": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Count": {
                "type": "number"
              },
              "Name": {
                "type": "string"
              },
              "Name_Localised": {
                "type": "string"
              }
            },
            "required": [
              "Name",
              "Count"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "SuitID": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "UpgradeSuit",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Class",
        "Cost",
        "Name",
        "Name_Localised",
        "SuitID",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "UpgradeWeapon": {
      "additionalProperties": false,
      "properties": {
        "Class": {
          "type": "number"
        },
        "Cost": {
          "type": "number"
        },
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "Resources": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "Count": {
                "type": "number"
              },
              "Name": {
                "type": "string"
              },
              "Name_Localised": {
                "type": "string"
              }
            },
            "required": [
              "Name",
              "Count"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "SuitModuleID": {
          "$ref": "#/definitions/ID"
        },
        "event": {
          "const": "UpgradeWeapon",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Class",
        "Cost",
        "Name",
        "Name_Localised",
        "SuitModuleID",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "UseConsumable": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "Name_Localised": {
          "type": "string"
        },
        "Type": {
          "type": "string"
        },
        "event": {
          "const": "UseConsumable",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Name",
        "Name_Localised",
        "Type",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "VehicleSwitch": {
      "additionalProperties": false,
      "properties": {
        "To": {
          "type": "string"
        },
        "event": {
          "const": "VehicleSwitch",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "WingAdd": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "event": {
          "const": "WingAdd",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Name",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "WingInvite": {
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": "string"
        },
        "event": {
          "const": "WingInvite",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Name",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "WingJoin": {
      "additionalProperties": false,
      "properties": {
        "Others": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "event": {
          "const": "WingJoin",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "Others",
        "event",
        "timestamp"
      ],
      "type": "object"
    },
    "WingLeave": {
      "additionalProperties": false,
      "properties": {
        "event": {
          "const": "WingLeave",
          "description": "The type of event.",
          "type": "string"
        },
        "timestamp": {
          "description": "The time in GMT, ISO 8601.",
          "type": "string"
        }
      },
      "required": [
        "event",
        "timestamp"
      ],
      "type": "object"
    }
  }
}