import { z } from "zod";

type AircraftType =
  | "Tornado GR4"
  | "Tornado IDS"
  | "F/A-18A"
  | "F/A-18C"
  | "F-14A"
  | "Tu-22M3"
  | "F-4E"
  | "B-52H"
  | "MiG-27K"
  | "Su-27"
  | "MiG-23MLD"
  | "Su-25"
  | "Su-25TM"
  | "Su-25T"
  | "Su-33"
  | "MiG-25PD"
  | "MiG-25RBT"
  | "Su-30"
  | "Su-17M4"
  | "MiG-31"
  | "Tu-95MS"
  | "Su-24M"
  | "Su-24MR"
  | "Tu-160"
  | "F-117A"
  | "B-1B"
  | "S-3B"
  | "S-3B Tanker"
  | "Mirage 2000-5"
  | "Mirage-F1CE"
  | "Mirage-F1EE"
  | "F-15C"
  | "F-15E"
  | "F-15ESE"
  | "MiG-29A"
  | "MiG-29G"
  | "MiG-29S"
  | "Tu-142"
  | "C-130"
  | "An-26B"
  | "An-30M"
  | "C-17A"
  | "A-50"
  | "E-3A"
  | "IL-78M"
  | "E-2C"
  | "IL-76MD"
  | "F-16C bl.50"
  | "F-16C bl.52d"
  | "F-16A"
  | "F-16A MLU"
  | "RQ-1A Predator"
  | "Yak-40"
  | "KC-135"
  | "FW-190D9"
  | "FW-190A8"
  | "Bf-109K-4"
  | "SpitfireLFMkIX"
  | "SpitfireLFMkIXCW"
  | "P-51D"
  | "P-51D-30-NA"
  | "P-47D-30"
  | "P-47D-30bl1"
  | "P-47D-40"
  | "MosquitoFBMkVI"
  | "Ju-88A4"
  | "A-20G"
  | "A-4E-C"
  | "A-10A"
  | "A-10C"
  | "A-10C_2"
  | "AJS37"
  | "AV8BNA"
  | "KC130"
  | "KC135MPRS"
  | "C-101EB"
  | "C-101CC"
  | "J-11A"
  | "JF-17"
  | "KJ-2000"
  | "WingLoong-I"
  | "H-6J"
  | "Christen Eagle II"
  | "F-16C_50"
  | "F-5E"
  | "F-5E-3"
  | "F-86F Sabre"
  | "F-14B"
  | "F-14A-135-GR"
  | "FA-18C_hornet"
  | "Hawk"
  | "I-16"
  | "L-39C"
  | "L-39ZA"
  | "M-2000C"
  | "MB-339A"
  | "MB-339APAN"
  | "MQ-9 Reaper"
  | "MiG-15bis"
  | "MiG-19P"
  | "MiG-21Bis"
  | "Su-34"
  | "TF-51D"
  | "Mi-24V"
  | "Mi-8MT"
  | "Mi-26"
  | "Ka-27"
  | "UH-60A"
  | "UH-60L"
  | "CH-53E"
  | "CH-47D"
  | "SH-3W"
  | "AH-64A"
  | "AH-64D"
  | "AH-1W"
  | "SH-60B"
  | "UH-1H"
  | "Mi-28N"
  | "OH-58D"
  | "AH-64D_BLK_II"
  | "Ka-50"
  | "Ka-50_3"
  | "Mi-24P"
  | "SA342M"
  | "SA342L"
  | "SA342Mistral"
  | "SA342Minigun"
  | "VSN_F4B"
  | "VSN_F4C"
  | "SK-60";
type CountryName =
  | "Russia"
  | "Ukraine"
  | "USA"
  | "Turkey"
  | "UK"
  | "France"
  | "Germany"
  | "USAF Aggressors"
  | "Canada"
  | "Spain"
  | "The Netherlands"
  | "Belgium"
  | "Norway"
  | "Denmark"
  | "Israel"
  | "Georgia"
  | "Insurgents"
  | "Abkhazia"
  | "South Ossetia"
  | "Italy"
  | "Australia"
  | "Switzerland"
  | "Austria"
  | "Belarus"
  | "Bulgaria"
  | "Czech Republic"
  | "China"
  | "Croatia"
  | "Egypt"
  | "Finland"
  | "Greece"
  | "Hungary"
  | "India"
  | "Iran"
  | "Iraq"
  | "Japan"
  | "Kazakhstan"
  | "North Korea"
  | "Pakistan"
  | "Poland"
  | "Romania"
  | "Saudi Arabia"
  | "Serbia"
  | "Slovakia"
  | "South Korea"
  | "Sweden"
  | "Syria"
  | "Yemen"
  | "Vietnam"
  | "Venezuela"
  | "Tunisia"
  | "Thailand"
  | "Sudan"
  | "Philippines"
  | "Morocco"
  | "Mexico"
  | "Malaysia"
  | "Libya"
  | "Jordan"
  | "Indonesia"
  | "Honduras"
  | "Ethiopia"
  | "Chile"
  | "Brazil"
  | "Bahrain"
  | "Third Reich"
  | "Yugoslavia"
  | "USSR"
  | "Italian Social Republic"
  | "Algeria"
  | "Kuwait"
  | "Qatar"
  | "Oman"
  | "United Arab Emirates"
  | "South Africa"
  | "Cuba"
  | "Portugal"
  | "GDR"
  | "Lebanon"
  | "Combined Joint Task Forces Blue"
  | "Combined Joint Task Forces Red"
  | "United Nations Peacekeepers"
  | "Argentina"
  | "Cyprus"
  | "Slovenia"
  | "Bolivia"
  | "Ghana"
  | "Nigeria"
  | "Peru"
  | "Ecuador";
type AirdromeName =
  | "Anapa-Vityazevo"
  | "Krasnodar-Center"
  | "Novorossiysk"
  | "Krymsk"
  | "Maykop-Khanskaya"
  | "Gelendzhik"
  | "Sochi-Adler"
  | "Krasnodar-Pashkovsky"
  | "Sukhumi-Babushara"
  | "Gudauta"
  | "Batumi"
  | "Senaki-Kolkhi"
  | "Kobuleti"
  | "Kutaisi"
  | "Mineralnye Vody"
  | "Nalchik"
  | "Mozdok"
  | "Tbilisi-Lochini"
  | "Soganlug"
  | "Vaziani"
  | "Beslan";
type GroundUnitName =
  | "2B11 mortar"
  | "SAU Gvozdika"
  | "SAU Msta"
  | "SAU Akatsia"
  | "SAU 2-C9"
  | "M-109"
  | "SpGH_Dana"
  | "AAV7"
  | "BMD-1"
  | "BMP-1"
  | "BMP-2"
  | "BMP-3"
  | "BRDM-2"
  | "BTR_D"
  | "Cobra"
  | "LAV-25"
  | "M1043 HMMWV Armament"
  | "M1045 HMMWV TOW"
  | "M1126 Stryker ICV"
  | "M-113"
  | "M1134 Stryker ATGM"
  | "M-2 Bradley"
  | "MCV-80"
  | "MTLB"
  | "Marder"
  | "TPZ"
  | "Grad_FDDM"
  | "Bunker"
  | "Paratrooper RPG-16"
  | "Paratrooper AKS-74"
  | "Infantry AK Ins"
  | "Sandbox"
  | "Soldier AK"
  | "Infantry AK"
  | "Soldier M249"
  | "Soldier M4"
  | "Soldier M4 GRG"
  | "Soldier RPG"
  | "MLRS FDDM"
  | "Infantry AK ver2"
  | "Infantry AK ver3"
  | "Grad-URAL"
  | "Uragan_BM-27"
  | "Smerch"
  | "Smerch_HE"
  | "MLRS"
  | "2S6 Tunguska"
  | "Kub 2P25 ln"
  | "5p73 s-125 ln"
  | "S-300PS 5P85C ln"
  | "S-300PS 5P85D ln"
  | "SA-11 Buk LN 9A310M1"
  | "Osa 9A33 ln"
  | "Tor 9A331"
  | "Strela-10M3"
  | "Strela-1 9P31"
  | "SA-11 Buk CC 9S470M1"
  | "Patriot AMG"
  | "Patriot ECS"
  | "Gepard"
  | "Hawk pcp"
  | "Vulcan"
  | "Hawk ln"
  | "M48 Chaparral"
  | "M6 Linebacker"
  | "Patriot ln"
  | "M1097 Avenger"
  | "Patriot EPP"
  | "Patriot cp"
  | "Roland ADS"
  | "S-300PS 54K6 cp"
  | "Soldier stinger"
  | "Stinger comm dsr"
  | "Stinger comm"
  | "ZSU-23-4 Shilka"
  | "ZU-23 Emplacement Closed"
  | "ZU-23 Emplacement"
  | "Ural-375 ZU-23"
  | "ZU-23 Closed Insurgent"
  | "Ural-375 ZU-23 Insurgent"
  | "ZU-23 Insurgent"
  | "SA-18 Igla manpad"
  | "SA-18 Igla comm"
  | "SA-18 Igla-S manpad"
  | "SA-18 Igla-S comm"
  | "Igla manpad INS"
  | "1L13 EWR"
  | "Kub 1S91 str"
  | "S-300PS 40B6M tr"
  | "S-300PS 40B6MD sr"
  | "55G6 EWR"
  | "S-300PS 64H6E sr"
  | "SA-11 Buk SR 9S18M1"
  | "Dog Ear radar"
  | "Hawk tr"
  | "Hawk sr"
  | "Patriot str"
  | "Hawk cwar"
  | "p-19 s-125 sr"
  | "Roland Radar"
  | "snr s-125 tr"
  | "house1arm"
  | "house2arm"
  | "outpost_road"
  | "outpost"
  | "houseA_arm"
  | "TACAN_beacon"
  | "Challenger2"
  | "Leclerc"
  | "M-60"
  | "M1128 Stryker MGS"
  | "M-1 Abrams"
  | "T-55"
  | "T-72B"
  | "T-80UD"
  | "T-90"
  | "Leopard1A3"
  | "Merkava_Mk4"
  | "Ural-4320 APA-5D"
  | "ATMZ-5"
  | "ATZ-10"
  | "GAZ-3307"
  | "GAZ-3308"
  | "GAZ-66"
  | "M978 HEMTT Tanker"
  | "HEMTT TFFT"
  | "IKARUS Bus"
  | "KAMAZ Truck"
  | "LAZ Bus"
  | "LiAZ Bus"
  | "Hummer"
  | "M 818"
  | "MAZ-6303"
  | "Predator GCS"
  | "Predator TrojanSpirit"
  | "Suidae"
  | "Tigr_233036"
  | "Trolley bus"
  | "UAZ-469"
  | "Ural ATsP-6"
  | "Ural-4320-31"
  | "Ural-4320T"
  | "Ural-375 PBU"
  | "Ural-375"
  | "VAZ Car"
  | "ZiL-131 APA-80"
  | "SKP-11"
  | "ZIL-131 KUNG"
  | "ZIL-4331"
  | "KrAZ6322"
  | "JTAC"
  | "Infantry Animated"
  | "Electric locomotive"
  | "Locomotive"
  | "Coach cargo"
  | "Coach cargo open"
  | "Coach a tank blue"
  | "Coach a tank yellow"
  | "Coach a passenger"
  | "Coach a platform"
  | "tacr2a"
  | "LARC-V"
  | "KS-19"
  | "SON_9"
  | "Scud_B"
  | "HL_DSHK"
  | "HL_KORD"
  | "tt_DSHK"
  | "tt_KORD"
  | "HL_ZU-23"
  | "tt_ZU-23"
  | "HL_B8M1"
  | "tt_B8M1"
  | "NASAMS_Radar_MPQ64F1"
  | "NASAMS_Command_Post"
  | "NASAMS_LN_B"
  | "NASAMS_LN_C"
  | "M4_Sherman"
  | "M2A1_halftrack"
  | "FPS-117 Dome"
  | "FPS-117 ECS"
  | "FPS-117"
  | "BTR-80"
  | "RD_75"
  | "S_75M_Volhov"
  | "SNR_75V"
  | "RLS_19J6"
  | "RPC_5N62V"
  | "S-200_Launcher"
  | "ZSU_57_2"
  | "S-60_Type59_Artillery"
  | "generator_5i57"
  | "T-72B3"
  | "PT_76"
  | "BTR-82A"
  | "ATZ-5"
  | "AA8"
  | "TZ-22_KrAZ"
  | "ATZ-60_Maz"
  | "ZIL-135"
  | "S_75_ZIL"
  | "rapier_fsa_launcher"
  | "rapier_fsa_optical_tracker_unit"
  | "rapier_fsa_blindfire_radar"
  | "bofors40"
  | "Chieftain_mk3"
  | "Bedford_MWD"
  | "Land_Rover_101_FC"
  | "Land_Rover_109_S3"
  | "hy_launcher"
  | "Silkworm_SR"
  | "ES44AH"
  | "Boxcartrinity"
  | "Tankcartrinity"
  | "Wellcarnsc"
  | "flak18"
  | "Pz_IV_H"
  | "Leopard-2A5"
  | "Leopard-2"
  | "leopard-2A4"
  | "leopard-2A4_trs"
  | "Sd_Kfz_251"
  | "Blitz_36-6700A"
  | "T155_Firtina"
  | "VAB_Mephisto"
  | "ZTZ96B"
  | "ZBD04A"
  | "HQ-7_LN_SP"
  | "HQ-7_LN_EO"
  | "HQ-7_STR_SP"
  | "PLZ05"
  | "TYPE-59";

type Theatre = "Caucasus" | "Syria";
type RouteType = "Turning Point";
type AltitudeType = "BARO" | "RADIO";
type Skill = "Average" | "High" | "Client";
type StartType = "cold" | "hot" | "air" | "runway";
type GroundRoutePointAction = "On Road" | "Off Road";
type ObjectiveType = "Town" | "Terrain" | "Airport" | "POI" | "Ship";
type Era = "WW2" | "Korea" | "Early CW" | "Late CW" | "Modern";
type StrikeTargetType =
  | "Vehicle"
  | "AAA"
  | "Artillery"
  | "SAM"
  | "Structure"
  | "Farp"
  | "EW";
type TakeOffAction =
  | "From Parking Area"
  | "From Parking Area Hot"
  | "From Ground Area"
  | "From Runway"
  | "Turning Point"
  | "Landing";
type TakeOffType =
  | "TakeOffParking"
  | "TakeOffParkingHot"
  | "TakeOffGround"
  | "TakeOff"
  | "Turning Point"
  | "Land";
type VehicleType =
  | "MBT"
  | "Track Radar"
  | "Search Radar"
  | "SAM Launcher"
  | "Unarmored"
  | "Armored"
  | "IFV"
  | "SHORAD"
  | "Transport"
  | "Power Generator"
  | "Refuel"
  | "Control Unit"
  | "EW"
  | "Infantry";
type AiSkill = "Average" | "Good" | "High" | "Excellent";
declare namespace Import {
  type AirdromeSlot = {
    crossroad_index: number;
    large: boolean;
    plane: boolean;
    helicopter: boolean;
    shelter: boolean;
  } & Position;
  type Airdrome = {
    id: number;
    name: string;
    airport?: unknown;
    standlist: Array<AirdromeSlot>;
    frequencies: {
      frequencyList: [
        [number, number] | number | undefined,
        [number, number] | number | undefined,
        [number, number] | number | undefined,
        [number, number] | number | undefined
      ];
      x: number;
      y: number;
      angle: number;
    };
  };
  type Objective = {
    name: string;
    type: ObjectiveType;
    position: Position;
  };
  type Country = {
    id: number;
    name: CountryName;
    short_name: string;
  };
}
type AirdromeSlot = {
  id: string;
  crossroad_index: number;
  large: boolean;
  plane: boolean;
  helicopter: boolean;
  shelter: boolean;
  inUse: boolean;
} & Position;
type RoutePointTaskAction = {
  enabled: boolean;
  auto: boolean;
  key?: string;
  id:
    | "AWACS"
    | "EngageTargets"
    | "WrappedAction"
    | "Orbit"
    | "AttackGroup"
    | "Bombing"
    | "Escort"
    | "SEAD"
    | "FireAtPoint"
    | "EngageTargetsInZone"
    | "EWR"
    | "FAC"
    | "ControlledTask";
  name?: string;
  number: number;
  params: object;
};
type RoutePointTaskActionWithoutNumber = Omit<RoutePointTaskAction, "number">;
type RoutePointTask = {
  id: "ComboTask";
  params: {
    tasks: Array<RoutePointTaskAction>;
  };
};
type RoutePoint = Waypoint;
type TakeOffPoint = {
  ETA: number;
  ETA_locked: boolean;
  action: TakeOffAction;
  airdromeId?: number;
  linkUnit?: number;
  helipadId?: number;
  alt: number;
  alt_type: AltitudeType;
  formation_template: string;
  name?: string;
  speed: number;
  speed_locked: boolean;
  task: RoutePointTask;
  type: TakeOffType;
} & Position;
type Waypoint = {
  ETA: number;
  ETA_locked: boolean;
  action: TakeOffAction;
  alt: number;
  alt_type: AltitudeType;
  name: string;
  speed: number;
  speed_locked: boolean;
  task: RoutePointTask;
  type: TakeOffType;
  airdromeId?: number;
  linkUnit?: number;
  helipadId?: number;
  formation_template?: string;
} & Position;
type GroundWaypoint = {
  ETA: number;
  ETA_locked: boolean;
  type: "Turning Point";
  action: GroundRoutePointAction;
  alt: number;
  alt_type: AltitudeType;
  formation_template: string;
  name?: string;
  speed: number;
  speed_locked: boolean;
  task: RoutePointTask;
} & Position;
type Route = {
  points: Array<RoutePoint>;
};
type Vehicle$1 = DCS.GroundUnit & {
  era: Era;
  vehicleTypes: Array<VehicleType>;
};
type GroundGroupUnit = {
  skill: AiSkill;
  coldAtStart: boolean;
  type: GroundUnitName;
  unitId: number;
  name: string;
  heading: number;
  playerCanDrive: boolean;
} & Position;
declare namespace DCS {
  type Plane = {
    chaff: number;
    display_name: string;
    flare: number;
    ammo_type?: number;
    gun?: number;
    max_fuel: number;
    max_height: number;
    max_speed: number;
    name: AircraftType;
  };
  type AirdromeSlot = {
    id: string;
    crossroad_index: number;
    large: boolean;
    plane: boolean;
    helicopter: boolean;
    shelter: boolean;
    blocked?: boolean;
  } & Position;
  type Airdrome = {
    id: number;
    name: string;
    airport?: unknown;
    standlist: Record<string, object>;
    frequency: number;
    frequencyList?: [number, number, number, number];
    runwayAngle: number;
  } & Position;
  type GroundUnit = {
    category: string;
    display_name: string;
    name: string;
    playerCanDrive: boolean;
  };
  type CoalitionDefinition = {
    bullseye: Position;
    country: Array<CountryDefinition>;
    nav_points: unknown;
  };
  type CountryDefinition = {
    id: number;
    name: CountryName;
    plane?: {
      group: Array<FlightGroup>;
    };
    helicopter?: {
      group: Array<FlightGroup>;
    };
    vehicle?: {
      group: Array<DCS.GroundGroup>;
    };
    ship?: {
      group: Array<ShipGroup>;
    };
    static?: {
      group: Array<StaticGroup>;
    };
  };
  type FlightGroupUnit = {
    alt: number;
    alt_type: AltitudeType;
    callsign:
      | {
          1: number;
          2: number;
          3: number;
          name: string;
        }
      | number
      | string;
    name: string;
    onboard_num: string;
    parking?: string;
    parking_id?: string;
    livery_id: string;
    payload: Payload;
    psi: number;
    skill: Skill;
    speed: number;
    type: AircraftType;
    unitId: number;
    Radio?: [
      {
        modulations: Record<number, number>;
        channels: Record<number, number>;
        channelsNames: object;
      },
      {
        modulations: Record<number, number>;
        channels: Record<number, number>;
        channelsNames: object;
      }
    ];
    linkUnit?: number;
    helipadId?: number;
    AddPropAircraft?: object;
  } & Position;
  type FlightGroup = {
    lateActivation: boolean;
    communication: boolean;
    frequency: number;
    groupId: number;
    hidden: boolean;
    hiddenOnMFD: boolean;
    hiddenOnPlanner: boolean;
    modulation: number;
    name: string;
    radioSet: boolean;
    route: Route;
    start_time: number;
    task: DCS.Task;
    taskSelected: boolean;
    tasks: Array<RoutePointTaskAction>;
    uncontrolled: boolean;
    units: Array<Partial<FlightGroupUnit>>;
  } & Position;
  type GroundGroup = {
    lateActivation?: boolean;
    visible: boolean;
    task?: "Ground Nothing";
    tasks?: [];
    taskSelected?: boolean;
    uncontrollable: boolean;
    route: {
      spans: object;
      points: Array<GroundWaypoint>;
    };
    groupId: number;
    hidden: boolean;
    name: string;
    units: Array<Partial<GroundGroupUnit>>;
    start_time?: number;
  } & Position;
  type Loadout = {
    task: Task | "default";
    name: string;
    displayName: string;
    pylons: Array<Pylon>;
  };
  type Aircraft = Plane & {
    loadouts: Array<Loadout>;
    availableTasks: Array<Task>;
    controllable: boolean;
    maxWaypoints?: number;
    isHelicopter: boolean;
    isMod?: boolean;
    isLarge?: boolean;
    cruiseAltitude: number;
    cruiseSpeed: number;
    era: Era;
    carrierCapable: boolean;
    allowedFrequency?: [number, number];
  };
  type Pylon = {
    CLSID: string;
    num?: number;
  };
  type Payload = {
    chaff: number;
    flare: number;
    fuel: number;
    gun: number;
    ammo_type?: number;
    pylons: Array<Pylon>;
  };
  type Task =
    | "SEAD"
    | "DEAD"
    | "Intercept"
    | "Antiship Strike"
    | "AWACS"
    | "CAP"
    | "TARCAP"
    | "CAS"
    | "Escort"
    | "Intercept"
    | "Fighter Sweep"
    | "Ground Attack"
    | "Pinpoint Strike"
    | "Runway Attack"
    | "Transport"
    | "Refueling"
    | "RescueHelo"
    | "CSAR"
    | "AFAC";
}
declare namespace DCS {}
type StaticUnit = {
  category: string;
  shape_name?: string;
  type: string;
  unitId: number;
  rate?: number;
  name: string;
  heading: number;
  heliport_callsign_id?: number;
  heliport_modulation?: number;
  heliport_frequency?: string;
  mass?: number;
  canCargo?: boolean;
} & Position;
type StaticGroup = {
  route: {
    points: [
      {
        alt: number;
        type: string;
        name: string;
        speed: number;
        formation_template: string;
        action: string;
      } & Position
    ];
  };
  groupId: number;
  units: Array<StaticUnit>;
  name: string;
  dead: boolean;
  heading?: number;
  type?: string;
  category?: string;
  frequency?: number;
  countryName: CountryName;
} & Position;
type ShipUnit = {
  skill: Skill;
  type: string;
  unitId: number;
  modulation: 0;
  name: string;
  heading: number;
  frequency: number;
} & Position;
type ShipGroup = {
  visible: boolean;
  tasks: object;
  uncontrollable: boolean;
  route: Route;
  groupId: number;
  hidden: boolean;
  units: Array<ShipUnit>;
  name: string;
  start_time: number;
  frequency: number;
  groupType: "carrier";
} & Position;
type Carrier = Position;
type AltitudeWind = {
  speed: number;
  dir: number;
};
type Weather = {
  atmosphere_type: number;
  wind: {
    at8000: AltitudeWind;
    atGround: AltitudeWind;
    at2000: AltitudeWind;
  };
  enable_fog: boolean;
  visibility: {
    distance: number;
  };
  halo: {
    preset: "auto" | "off";
  };
  fog: {
    thickness: number;
    visibility: number;
    density?: number;
  };
  season: {
    temperature: number;
  };
  type_weather: number;
  qnh: number;
  cyclones: object;
  name: string;
  dust_density: number;
  modifiedTime: boolean;
  groundTurbulence: number;
  enable_dust: boolean;
  clouds: {
    thickness: number;
    density: number;
    preset?: string;
    base: number;
    iprecptns: number;
  };
};
type WeatherClouds = {
  density: number;
  thickness: number;
  preset: string;
  base: number;
  iprecptns: number;
};
type MissionDate = {
  Day: number;
  Month: number;
  Year: number;
};
type Mission = {
  coalitions: Partial<Record<Coalition, number[]>>;
  coalition: Partial<Record<Coalition, DCS.CoalitionDefinition>>;
  theatre: Theatre;
  weather: Weather;
  date: MissionDate;
  currentKey: number;
  version: number;
  start_time: number;
  failures: object;
  goals: object;
  descriptionBlueTask: string;
  descriptionRedTask: string;
  descriptionText: string;
  pictureFileNameN?: Array<string>;
  pictureFileNameR?: Array<string>;
  pictureFileNameB?: Array<string>;
};
type CountryWithUnits = DCS.CountryDefinition & {
  plane?: {
    group: Array<Partial<DCS.FlightGroup>>;
  };
  vehicle?: {
    group: Array<Partial<DCS.GroundGroup>>;
  };
  helicopter?: {
    group: Array<Partial<DCS.FlightGroup>>;
  };
  static?: {
    group: Array<Partial<StaticGroup>>;
  };
  ship?: {
    group: Array<Partial<ShipGroup>>;
  };
};
type GeneratedCoalition = {
  bullseye: Position;
  country: Array<CountryWithUnits>;
  nav_points: unknown;
};
type GeneratedTriggerZone = TriggerZone & {
  zoneId: number;
  color: [number, number, number, number];
  hidden: boolean;
};
type GeneratedMission = Omit<Mission, "coalition"> & {
  requiredModules: Array<unknown>;
  coalition: Partial<Record<Coalition, GeneratedCoalition>>;
  map: {
    centerX: number;
    centerY: number;
    zoom: number;
  };
  usedModules: Record<string, boolean>;
  sortie: string;
  maxDictId: number;
  result: {
    offline: {
      conditions: unknown;
      actions: unknown;
      func: unknown;
    };
    total: number;
    blue: {
      conditions: unknown;
      actions: unknown;
      func: unknown;
    };
    red: {
      conditions: unknown;
      actions: unknown;
      func: unknown;
    };
  };
  groundControl: {
    passwords: {
      artillery_commander: unknown;
      instructor: unknown;
      observer: unknown;
      forward_observer: unknown;
    };
    roles: {
      artillery_commander: {
        neutrals: number;
        blue: number;
        red: number;
      };
      instructor: {
        neutrals: number;
        blue: number;
        red: number;
      };
      observer: {
        neutrals: number;
        blue: number;
        red: number;
      };
      forward_observer: {
        neutrals: number;
        blue: number;
        red: number;
      };
    };
    isPilotControlVehicles: false;
  };
  forcedOptions: unknown;
  trigrules?: Array<object>;
  trig?: {
    actions: Array<string>;
  };
  triggers: {
    zones: Array<GeneratedTriggerZone>;
  };
};
type WarehouseAirport = {
  OperatingLevel_Air: number;
  OperatingLevel_Eqp: number;
  OperatingLevel_Fuel: number;
  aircrafts: object;
  coalition: string;
  diesel: {
    InitFuel: number;
  };
  gasoline: {
    InitFuel: number;
  };
  jet_fuel: {
    InitFuel: number;
  };
  methanol_mixture: {
    InitFuel: number;
  };
  periodicity: 30;
  size: 100;
  speed: 16.666666;
  suppliers: object;
  unlimitedAircrafts: true;
  unlimitedFuel: true;
  unlimitedMunitions: true;
  weapons: object;
};
type Warehouse = {
  airports: Record<number, WarehouseAirport>;
  warehouses: object;
};
type UsableAirdromeSlot = DCS.AirdromeSlot & {
  reservedTill?: number;
};
type UsableAirdrome = Omit<DCS.Airdrome, "standlist"> & {
  standlist: Record<string, UsableAirdromeSlot>;
};
type TriggerZone = {
  radius: number;
  name: string;
} & Position;
type UnitPosition = Position & {
  heading: number;
};
type StrikeTarget = {
  name: string;
  position: Position;
  spans?: [Position, Position];
  blueGroup?: Omit<StrikeTarget, "bluGroup">;
  objectiveName: string;
  groupId: number;
  type?: StrikeTargetType;
  structureType?: string;
  structureCategory?: string;
  unitPositions: Array<UnitPosition>;
};
type FarpStructure = {
  position: Position;
  name: string;
  type: string;
  category: string;
  shapeName: string | undefined;
};
type MissionDefinition = {
  missionType: Task;
  aircraft: AircraftType;
  clients: number;
  startType: "cold" | "hot";
  blueFaction: Faction;
  redFaction: Faction;
  useCarrier?: boolean;
  useFARP?: boolean;
};
type GroundUnitsTemplate = {
  name: string;
  sams: Array<string>;
  vehicles: Array<string>;
  infantries: Array<string>;
  shoradVehicles: Array<string>;
  shoradInfantries: Array<string>;
  ews: Array<string>;
};
type FactionDefinition = {
  aircraftTypes: Partial<Record<Task | "Light Attack", Array<string>>>;
  countryName: string;
  name: string;
  year: number;
  playable: boolean;
  templateName: string;
  created?: Date;
};
type CampaignUnitState = "idle" | "en route" | "on objective";
type CampaignUnit = {
  id: string;
  name: string;
  displayName: string;
  category: string;
  alive: boolean;
  vehicleTypes: Array<VehicleType>;
  destroyedTime?: number;
  state: CampaignUnitState;
};
type StaticCategory = "Fortifications" | "Heliports";
type StaticShapeName =
  | "ceh_ang_a"
  | "garage_b"
  | "tr_budka"
  | "tech"
  | "PalatkaB"
  | "kp_ug"
  | "GSM Rus"
  | "invisiblefarp"
  | "SetkaKP"
  | "him_bak_a"
  | "tec_a"
  | "angar_b"
  | "Workshop A"
  | "hozdomik2"
  | "kotelnaya_a"
  | "aviashtab"
  | "s2"
  | "tele_bash";
type StaticType =
  | "Garage B"
  | "Tech hangar A"
  | "Electric power box"
  | "Repair workshop"
  | "FARP Tent"
  | "FARP CP Blindage"
  | "FARP Fuel Depot"
  | "Invisible FARP"
  | "FARP Ammo Dump Coating"
  | "Chemical tank A"
  | "Hangar B"
  | "Workshop A"
  | "Subsidiary structure 2"
  | "Boiler-house A"
  | "Military staff"
  | "Small werehouse 2"
  | "TV tower"
  | "Railway station"
  | "FARP_SINGLE_01"
  | "outpost"
  | "FARP";
type StructureBuilding = {
  offset: {
    x: number;
    y: number;
  };
  heading: number;
  category: StaticCategory;
  shapeName: string | undefined;
  type: StaticType;
};
type CampaignStructureBuilding = {
  name: string;
  alive: boolean;
  destroyedTime?: number;
  repairScore?: number;
} & StructureBuilding;
type CampaignStructureState = "active" | "destroyed" | "deactivated";
type CampaignStructureBase = {
  id: string;
  name: string;
  position: Position;
  objectiveName: string;
  groupId: number;
  buildings: Array<CampaignStructureBuilding>;
  state: CampaignStructureState;
};
type CampaignStructureDefault = CampaignStructureBase & {
  structureType:
    | "Ammo Depot"
    | "Farp"
    | "Command Center"
    | "Power Plant"
    | "Fuel Storage";
};
type CampaignStructureUnitCamp = CampaignStructureBase & {
  structureType: "Barrack" | "Depot";
  deploymentScore: number;
};
type CampaignStructure = CampaignStructureDefault | CampaignStructureUnitCamp;
type SamType = "SA-10-300" | "SA-6" | "SA-5" | "SA-3" | "SA-2" | "Hawk";
type CampaignSam = {
  id: string;
  position: Position;
  units: Array<CampaignUnit>;
  range: number;
  type: SamType;
  operational: boolean;
  weaponReadyTimer: number;
  fireInterval: number;
  name: string;
  objectiveName: string;
};
type CampaignHomeBaseType = "airdrome" | "farp" | "carrier";
type CampaignHomeBase = {
  type: CampaignHomeBaseType;
  name: string;
};
type CampaignAircraftState =
  | "idle"
  | "en route"
  | "on station"
  | "combat"
  | "rtb"
  | "waiting"
  | "maintenance";
type CampaignWaypoint = {
  name: string;
  time: number;
  duration?: number;
  speed: number;
  position: Position;
  taskStart?: boolean;
  onGround?: boolean;
  racetrack?: {
    position: Position;
    name: string;
    distance: number;
    duration: number;
  };
  hold?: boolean;
};
type CampaignFlightGroupUnit = {
  id: string;
  name: string;
  callSign:
    | number
    | {
        1: number;
        2: number;
        3: number;
        name: string;
      };
  client: boolean;
};
type CampaignGroundGroupState = "en route" | "on objective" | "combat";
type CampaignGroundGroupType = "armor" | "mbt" | "infantry" | "ew" | "sam";
type Airdromes = Record<string, DCS.Airdrome>;
type MapData = {
  objectives: Array<Import.Objective>;
  strikeTargets: Record<string, StrikeTarget[]>;
  airdromes: Airdromes;
  info: {
    center: {
      x: number;
      y: number;
    };
    weather: {
      temperature: {
        amplitude: number;
        mean: number;
      };
      cloudCover: {
        baseCloudCover: number;
        seasonEffect: number;
      };
      wind: {
        speed: number;
        direction: number;
      };
    };
    night: {
      startHour: number;
      endHour: number;
    };
  };
};
declare namespace Enum {
  const groundGroupType: readonly ["armor", "mbt", "infantry", "ew"];
  const structureTypeDefault: readonly [
    "Ammo Depot",
    "Farp",
    "Command Center",
    "Power Plant",
    "Fuel Storage",
    "Hospital",
    "Prison"
  ];
  const structureTypeUnitCamp: readonly ["Barrack", "Depot"];
}
declare namespace Schema {
  const coalition: z.ZodEnum<["blue", "red", "neutrals"]>;
  const aiSkill: z.ZodEnum<["Average", "Good", "High", "Excellent"]>;
  const mapName: z.ZodEnum<
    ["caucasus", "normandy", "persianGulf", "southAtlantic", "syria"]
  >;
  const aircraftState: z.ZodEnum<
    [
      "idle",
      "en route",
      "on station",
      "combat",
      "rtb",
      "waiting",
      "maintenance"
    ]
  >;
  const homeBaseType: z.ZodEnum<["airdrome", "farp", "carrier"]>;
  const task: z.ZodEnum<
    ["DEAD", "AWACS", "CAP", "Escort", "Pinpoint Strike", "CAS", "CSAR"]
  >;
  const pylonType: z.ZodEnum<
    ["Fuel Tank", "Targeting Pod", "Gun Pod", "ECM Pod", "Other", "Weapon"]
  >;
  const groundUnitType: z.ZodEnum<
    [
      "MBT",
      "Track Radar",
      "Search Radar",
      "SAM Launcher",
      "Unarmored",
      "Armored",
      "IFV",
      "SHORAD",
      "Transport",
      "Power Generator",
      "Refuel",
      "Control Unit",
      "EW",
      "Infantry"
    ]
  >;
  const groundUnitState: z.ZodEnum<["idle", "en route", "on objective"]>;
  const groundGroupState: z.ZodEnum<["en route", "on objective", "combat"]>;
  const groundGroupType: z.ZodEnum<["armor", "mbt", "infantry", "ew"]>;
  const samType: z.ZodEnum<
    ["SA-10-300", "SA-6", "SA-5", "SA-3", "SA-2", "Hawk"]
  >;
  const structureState: z.ZodEnum<["active", "destroyed", "deactivated"]>;
  const buildingCategory: z.ZodEnum<["Fortifications", "Heliports"]>;
  const structureTypeDefault: z.ZodEnum<
    [
      "Ammo Depot",
      "Farp",
      "Command Center",
      "Power Plant",
      "Fuel Storage",
      "Hospital",
      "Prison"
    ]
  >;
  const structureTypeUnitCamp: z.ZodEnum<["Barrack", "Depot"]>;
  const structureType: z.ZodEnum<
    [
      "Ammo Depot",
      "Farp",
      "Command Center",
      "Power Plant",
      "Fuel Storage",
      "Hospital",
      "Prison",
      "Barrack",
      "Depot"
    ]
  >;
  const A2AWeaponType: z.ZodEnum<
    ["infrared", "active radar", "semi-active radar"]
  >;
  const A2GWeaponType: z.ZodEnum<
    [
      "Bomb",
      "Cluster",
      "Rocket",
      "Laser Guided Bomb",
      "GPS Guided Bomb",
      "TV Guided Bomb",
      "Laser Guided Rocket"
    ]
  >;
  const A2GRangeWeaponType: z.ZodEnum<
    ["Missile", "Glide Bomb", "Laser Guided Missile", "Cruise Missile"]
  >;
  const RangeType: z.ZodEnum<["short", "medium", "long"]>;
  const A2GWeaponTarget: z.ZodEnum<
    [
      "Anti-Armor",
      "Hard Target",
      "Medium Target",
      "Soft Target",
      "Ship",
      "Radar",
      "Light Structure",
      "Medium Structure",
      "Hard Structure"
    ]
  >;
  const WeaponType: z.ZodUnion<
    [
      z.ZodEnum<["infrared", "active radar", "semi-active radar"]>,
      z.ZodEnum<
        [
          "Bomb",
          "Cluster",
          "Rocket",
          "Laser Guided Bomb",
          "GPS Guided Bomb",
          "TV Guided Bomb",
          "Laser Guided Rocket"
        ]
      >,
      z.ZodEnum<
        ["Missile", "Glide Bomb", "Laser Guided Missile", "Cruise Missile"]
      >
    ]
  >;
  const faction: z.ZodObject<
    {
      aircraftTypes: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
      countryName: z.ZodString;
      name: z.ZodString;
      year: z.ZodOptional<z.ZodNumber>;
      playable: z.ZodBoolean;
      templateName: z.ZodString;
      carrierName: z.ZodOptional<z.ZodString>;
      created: z.ZodOptional<z.ZodDate>;
    },
    "strip",
    z.ZodTypeAny,
    {
      name: string;
      aircraftTypes: Record<string, string[]>;
      countryName: string;
      playable: boolean;
      templateName: string;
      year?: number | undefined;
      carrierName?: string | undefined;
      created?: Date | undefined;
    },
    {
      name: string;
      aircraftTypes: Record<string, string[]>;
      countryName: string;
      playable: boolean;
      templateName: string;
      year?: number | undefined;
      carrierName?: string | undefined;
      created?: Date | undefined;
    }
  >;
  const factions: z.ZodObject<
    {
      factions: z.ZodArray<
        z.ZodObject<
          {
            aircraftTypes: z.ZodRecord<
              z.ZodString,
              z.ZodArray<z.ZodString, "many">
            >;
            countryName: z.ZodString;
            name: z.ZodString;
            year: z.ZodOptional<z.ZodNumber>;
            playable: z.ZodBoolean;
            templateName: z.ZodString;
            carrierName: z.ZodOptional<z.ZodString>;
            created: z.ZodOptional<z.ZodDate>;
          },
          "strip",
          z.ZodTypeAny,
          {
            name: string;
            aircraftTypes: Record<string, string[]>;
            countryName: string;
            playable: boolean;
            templateName: string;
            year?: number | undefined;
            carrierName?: string | undefined;
            created?: Date | undefined;
          },
          {
            name: string;
            aircraftTypes: Record<string, string[]>;
            countryName: string;
            playable: boolean;
            templateName: string;
            year?: number | undefined;
            carrierName?: string | undefined;
            created?: Date | undefined;
          }
        >,
        "many"
      >;
      version: z.ZodLiteral<0>;
    },
    "strip",
    z.ZodTypeAny,
    {
      version: 0;
      factions: {
        name: string;
        aircraftTypes: Record<string, string[]>;
        countryName: string;
        playable: boolean;
        templateName: string;
        year?: number | undefined;
        carrierName?: string | undefined;
        created?: Date | undefined;
      }[];
    },
    {
      version: 0;
      factions: {
        name: string;
        aircraftTypes: Record<string, string[]>;
        countryName: string;
        playable: boolean;
        templateName: string;
        year?: number | undefined;
        carrierName?: string | undefined;
        created?: Date | undefined;
      }[];
    }
  >;
  const homeBase: z.ZodObject<
    {
      type: z.ZodEnum<["airdrome", "farp", "carrier"]>;
      name: z.ZodString;
    },
    "strip",
    z.ZodTypeAny,
    {
      name: string;
      type: "airdrome" | "farp" | "carrier";
    },
    {
      name: string;
      type: "airdrome" | "farp" | "carrier";
    }
  >;
  const weaponBase: z.ZodObject<
    {
      name: z.ZodString;
      displayName: z.ZodString;
      year: z.ZodOptional<z.ZodNumber>;
    },
    "strip",
    z.ZodTypeAny,
    {
      name: string;
      displayName: string;
      year?: number | undefined;
    },
    {
      name: string;
      displayName: string;
      year?: number | undefined;
    }
  >;
  const a2AWeapon: z.ZodObject<
    {
      type: z.ZodEnum<["infrared", "active radar", "semi-active radar"]>;
      range: z.ZodNumber;
      rangeType: z.ZodEnum<["short", "medium", "long"]>;
      name: z.ZodString;
      displayName: z.ZodString;
      year: z.ZodOptional<z.ZodNumber>;
    },
    "strip",
    z.ZodTypeAny,
    {
      name: string;
      type: "infrared" | "active radar" | "semi-active radar";
      displayName: string;
      range: number;
      rangeType: "short" | "medium" | "long";
      year?: number | undefined;
    },
    {
      name: string;
      type: "infrared" | "active radar" | "semi-active radar";
      displayName: string;
      range: number;
      rangeType: "short" | "medium" | "long";
      year?: number | undefined;
    }
  >;
  const a2GWeapon: z.ZodObject<
    {
      type: z.ZodEnum<
        [
          "Bomb",
          "Cluster",
          "Rocket",
          "Laser Guided Bomb",
          "GPS Guided Bomb",
          "TV Guided Bomb",
          "Laser Guided Rocket"
        ]
      >;
      target: z.ZodEnum<
        [
          "Anti-Armor",
          "Hard Target",
          "Medium Target",
          "Soft Target",
          "Ship",
          "Radar",
          "Light Structure",
          "Medium Structure",
          "Hard Structure"
        ]
      >;
      weight: z.ZodOptional<z.ZodNumber>;
      highDrag: z.ZodOptional<z.ZodBoolean>;
      name: z.ZodString;
      displayName: z.ZodString;
      year: z.ZodOptional<z.ZodNumber>;
    },
    "strip",
    z.ZodTypeAny,
    {
      name: string;
      type:
        | "Bomb"
        | "Cluster"
        | "Rocket"
        | "Laser Guided Bomb"
        | "GPS Guided Bomb"
        | "TV Guided Bomb"
        | "Laser Guided Rocket";
      target:
        | "Anti-Armor"
        | "Hard Target"
        | "Medium Target"
        | "Soft Target"
        | "Ship"
        | "Radar"
        | "Light Structure"
        | "Medium Structure"
        | "Hard Structure";
      displayName: string;
      weight?: number | undefined;
      highDrag?: boolean | undefined;
      year?: number | undefined;
    },
    {
      name: string;
      type:
        | "Bomb"
        | "Cluster"
        | "Rocket"
        | "Laser Guided Bomb"
        | "GPS Guided Bomb"
        | "TV Guided Bomb"
        | "Laser Guided Rocket";
      target:
        | "Anti-Armor"
        | "Hard Target"
        | "Medium Target"
        | "Soft Target"
        | "Ship"
        | "Radar"
        | "Light Structure"
        | "Medium Structure"
        | "Hard Structure";
      displayName: string;
      weight?: number | undefined;
      highDrag?: boolean | undefined;
      year?: number | undefined;
    }
  >;
  const a2GRangeWeapon: z.ZodObject<
    {
      type: z.ZodEnum<
        ["Missile", "Glide Bomb", "Laser Guided Missile", "Cruise Missile"]
      >;
      range: z.ZodNumber;
      targets: z.ZodArray<
        z.ZodEnum<
          [
            "Anti-Armor",
            "Hard Target",
            "Medium Target",
            "Soft Target",
            "Ship",
            "Radar",
            "Light Structure",
            "Medium Structure",
            "Hard Structure"
          ]
        >,
        "many"
      >;
      name: z.ZodString;
      displayName: z.ZodString;
      year: z.ZodOptional<z.ZodNumber>;
    },
    "strip",
    z.ZodTypeAny,
    {
      name: string;
      type:
        | "Missile"
        | "Glide Bomb"
        | "Laser Guided Missile"
        | "Cruise Missile";
      displayName: string;
      range: number;
      targets: (
        | "Anti-Armor"
        | "Hard Target"
        | "Medium Target"
        | "Soft Target"
        | "Ship"
        | "Radar"
        | "Light Structure"
        | "Medium Structure"
        | "Hard Structure"
      )[];
      year?: number | undefined;
    },
    {
      name: string;
      type:
        | "Missile"
        | "Glide Bomb"
        | "Laser Guided Missile"
        | "Cruise Missile";
      displayName: string;
      range: number;
      targets: (
        | "Anti-Armor"
        | "Hard Target"
        | "Medium Target"
        | "Soft Target"
        | "Ship"
        | "Radar"
        | "Light Structure"
        | "Medium Structure"
        | "Hard Structure"
      )[];
      year?: number | undefined;
    }
  >;
  const weapon: z.ZodUnion<
    [
      z.ZodObject<
        {
          type: z.ZodEnum<["infrared", "active radar", "semi-active radar"]>;
          range: z.ZodNumber;
          rangeType: z.ZodEnum<["short", "medium", "long"]>;
          name: z.ZodString;
          displayName: z.ZodString;
          year: z.ZodOptional<z.ZodNumber>;
        },
        "strip",
        z.ZodTypeAny,
        {
          name: string;
          type: "infrared" | "active radar" | "semi-active radar";
          displayName: string;
          range: number;
          rangeType: "short" | "medium" | "long";
          year?: number | undefined;
        },
        {
          name: string;
          type: "infrared" | "active radar" | "semi-active radar";
          displayName: string;
          range: number;
          rangeType: "short" | "medium" | "long";
          year?: number | undefined;
        }
      >,
      z.ZodObject<
        {
          type: z.ZodEnum<
            [
              "Bomb",
              "Cluster",
              "Rocket",
              "Laser Guided Bomb",
              "GPS Guided Bomb",
              "TV Guided Bomb",
              "Laser Guided Rocket"
            ]
          >;
          target: z.ZodEnum<
            [
              "Anti-Armor",
              "Hard Target",
              "Medium Target",
              "Soft Target",
              "Ship",
              "Radar",
              "Light Structure",
              "Medium Structure",
              "Hard Structure"
            ]
          >;
          weight: z.ZodOptional<z.ZodNumber>;
          highDrag: z.ZodOptional<z.ZodBoolean>;
          name: z.ZodString;
          displayName: z.ZodString;
          year: z.ZodOptional<z.ZodNumber>;
        },
        "strip",
        z.ZodTypeAny,
        {
          name: string;
          type:
            | "Bomb"
            | "Cluster"
            | "Rocket"
            | "Laser Guided Bomb"
            | "GPS Guided Bomb"
            | "TV Guided Bomb"
            | "Laser Guided Rocket";
          target:
            | "Anti-Armor"
            | "Hard Target"
            | "Medium Target"
            | "Soft Target"
            | "Ship"
            | "Radar"
            | "Light Structure"
            | "Medium Structure"
            | "Hard Structure";
          displayName: string;
          weight?: number | undefined;
          highDrag?: boolean | undefined;
          year?: number | undefined;
        },
        {
          name: string;
          type:
            | "Bomb"
            | "Cluster"
            | "Rocket"
            | "Laser Guided Bomb"
            | "GPS Guided Bomb"
            | "TV Guided Bomb"
            | "Laser Guided Rocket";
          target:
            | "Anti-Armor"
            | "Hard Target"
            | "Medium Target"
            | "Soft Target"
            | "Ship"
            | "Radar"
            | "Light Structure"
            | "Medium Structure"
            | "Hard Structure";
          displayName: string;
          weight?: number | undefined;
          highDrag?: boolean | undefined;
          year?: number | undefined;
        }
      >,
      z.ZodObject<
        {
          type: z.ZodEnum<
            ["Missile", "Glide Bomb", "Laser Guided Missile", "Cruise Missile"]
          >;
          range: z.ZodNumber;
          targets: z.ZodArray<
            z.ZodEnum<
              [
                "Anti-Armor",
                "Hard Target",
                "Medium Target",
                "Soft Target",
                "Ship",
                "Radar",
                "Light Structure",
                "Medium Structure",
                "Hard Structure"
              ]
            >,
            "many"
          >;
          name: z.ZodString;
          displayName: z.ZodString;
          year: z.ZodOptional<z.ZodNumber>;
        },
        "strip",
        z.ZodTypeAny,
        {
          name: string;
          type:
            | "Missile"
            | "Glide Bomb"
            | "Laser Guided Missile"
            | "Cruise Missile";
          displayName: string;
          range: number;
          targets: (
            | "Anti-Armor"
            | "Hard Target"
            | "Medium Target"
            | "Soft Target"
            | "Ship"
            | "Radar"
            | "Light Structure"
            | "Medium Structure"
            | "Hard Structure"
          )[];
          year?: number | undefined;
        },
        {
          name: string;
          type:
            | "Missile"
            | "Glide Bomb"
            | "Laser Guided Missile"
            | "Cruise Missile";
          displayName: string;
          range: number;
          targets: (
            | "Anti-Armor"
            | "Hard Target"
            | "Medium Target"
            | "Soft Target"
            | "Ship"
            | "Radar"
            | "Light Structure"
            | "Medium Structure"
            | "Hard Structure"
          )[];
          year?: number | undefined;
        }
      >
    ]
  >;
  const pylon: z.ZodObject<
    {
      CLSID: z.ZodString;
      num: z.ZodNumber;
      total: z.ZodNumber;
      count: z.ZodNumber;
      type: z.ZodEnum<
        ["Fuel Tank", "Targeting Pod", "Gun Pod", "ECM Pod", "Other", "Weapon"]
      >;
      weapon: z.ZodOptional<
        z.ZodUnion<
          [
            z.ZodObject<
              {
                type: z.ZodEnum<
                  ["infrared", "active radar", "semi-active radar"]
                >;
                range: z.ZodNumber;
                rangeType: z.ZodEnum<["short", "medium", "long"]>;
                name: z.ZodString;
                displayName: z.ZodString;
                year: z.ZodOptional<z.ZodNumber>;
              },
              "strip",
              z.ZodTypeAny,
              {
                name: string;
                type: "infrared" | "active radar" | "semi-active radar";
                displayName: string;
                range: number;
                rangeType: "short" | "medium" | "long";
                year?: number | undefined;
              },
              {
                name: string;
                type: "infrared" | "active radar" | "semi-active radar";
                displayName: string;
                range: number;
                rangeType: "short" | "medium" | "long";
                year?: number | undefined;
              }
            >,
            z.ZodObject<
              {
                type: z.ZodEnum<
                  [
                    "Bomb",
                    "Cluster",
                    "Rocket",
                    "Laser Guided Bomb",
                    "GPS Guided Bomb",
                    "TV Guided Bomb",
                    "Laser Guided Rocket"
                  ]
                >;
                target: z.ZodEnum<
                  [
                    "Anti-Armor",
                    "Hard Target",
                    "Medium Target",
                    "Soft Target",
                    "Ship",
                    "Radar",
                    "Light Structure",
                    "Medium Structure",
                    "Hard Structure"
                  ]
                >;
                weight: z.ZodOptional<z.ZodNumber>;
                highDrag: z.ZodOptional<z.ZodBoolean>;
                name: z.ZodString;
                displayName: z.ZodString;
                year: z.ZodOptional<z.ZodNumber>;
              },
              "strip",
              z.ZodTypeAny,
              {
                name: string;
                type:
                  | "Bomb"
                  | "Cluster"
                  | "Rocket"
                  | "Laser Guided Bomb"
                  | "GPS Guided Bomb"
                  | "TV Guided Bomb"
                  | "Laser Guided Rocket";
                target:
                  | "Anti-Armor"
                  | "Hard Target"
                  | "Medium Target"
                  | "Soft Target"
                  | "Ship"
                  | "Radar"
                  | "Light Structure"
                  | "Medium Structure"
                  | "Hard Structure";
                displayName: string;
                weight?: number | undefined;
                highDrag?: boolean | undefined;
                year?: number | undefined;
              },
              {
                name: string;
                type:
                  | "Bomb"
                  | "Cluster"
                  | "Rocket"
                  | "Laser Guided Bomb"
                  | "GPS Guided Bomb"
                  | "TV Guided Bomb"
                  | "Laser Guided Rocket";
                target:
                  | "Anti-Armor"
                  | "Hard Target"
                  | "Medium Target"
                  | "Soft Target"
                  | "Ship"
                  | "Radar"
                  | "Light Structure"
                  | "Medium Structure"
                  | "Hard Structure";
                displayName: string;
                weight?: number | undefined;
                highDrag?: boolean | undefined;
                year?: number | undefined;
              }
            >,
            z.ZodObject<
              {
                type: z.ZodEnum<
                  [
                    "Missile",
                    "Glide Bomb",
                    "Laser Guided Missile",
                    "Cruise Missile"
                  ]
                >;
                range: z.ZodNumber;
                targets: z.ZodArray<
                  z.ZodEnum<
                    [
                      "Anti-Armor",
                      "Hard Target",
                      "Medium Target",
                      "Soft Target",
                      "Ship",
                      "Radar",
                      "Light Structure",
                      "Medium Structure",
                      "Hard Structure"
                    ]
                  >,
                  "many"
                >;
                name: z.ZodString;
                displayName: z.ZodString;
                year: z.ZodOptional<z.ZodNumber>;
              },
              "strip",
              z.ZodTypeAny,
              {
                name: string;
                type:
                  | "Missile"
                  | "Glide Bomb"
                  | "Laser Guided Missile"
                  | "Cruise Missile";
                displayName: string;
                range: number;
                targets: (
                  | "Anti-Armor"
                  | "Hard Target"
                  | "Medium Target"
                  | "Soft Target"
                  | "Ship"
                  | "Radar"
                  | "Light Structure"
                  | "Medium Structure"
                  | "Hard Structure"
                )[];
                year?: number | undefined;
              },
              {
                name: string;
                type:
                  | "Missile"
                  | "Glide Bomb"
                  | "Laser Guided Missile"
                  | "Cruise Missile";
                displayName: string;
                range: number;
                targets: (
                  | "Anti-Armor"
                  | "Hard Target"
                  | "Medium Target"
                  | "Soft Target"
                  | "Ship"
                  | "Radar"
                  | "Light Structure"
                  | "Medium Structure"
                  | "Hard Structure"
                )[];
                year?: number | undefined;
              }
            >
          ]
        >
      >;
    },
    "strip",
    z.ZodTypeAny,
    {
      type:
        | "Fuel Tank"
        | "Targeting Pod"
        | "Gun Pod"
        | "ECM Pod"
        | "Other"
        | "Weapon";
      CLSID: string;
      num: number;
      total: number;
      count: number;
      weapon?:
        | {
            name: string;
            type: "infrared" | "active radar" | "semi-active radar";
            displayName: string;
            range: number;
            rangeType: "short" | "medium" | "long";
            year?: number | undefined;
          }
        | {
            name: string;
            type:
              | "Bomb"
              | "Cluster"
              | "Rocket"
              | "Laser Guided Bomb"
              | "GPS Guided Bomb"
              | "TV Guided Bomb"
              | "Laser Guided Rocket";
            target:
              | "Anti-Armor"
              | "Hard Target"
              | "Medium Target"
              | "Soft Target"
              | "Ship"
              | "Radar"
              | "Light Structure"
              | "Medium Structure"
              | "Hard Structure";
            displayName: string;
            weight?: number | undefined;
            highDrag?: boolean | undefined;
            year?: number | undefined;
          }
        | {
            name: string;
            type:
              | "Missile"
              | "Glide Bomb"
              | "Laser Guided Missile"
              | "Cruise Missile";
            displayName: string;
            range: number;
            targets: (
              | "Anti-Armor"
              | "Hard Target"
              | "Medium Target"
              | "Soft Target"
              | "Ship"
              | "Radar"
              | "Light Structure"
              | "Medium Structure"
              | "Hard Structure"
            )[];
            year?: number | undefined;
          }
        | undefined;
    },
    {
      type:
        | "Fuel Tank"
        | "Targeting Pod"
        | "Gun Pod"
        | "ECM Pod"
        | "Other"
        | "Weapon";
      CLSID: string;
      num: number;
      total: number;
      count: number;
      weapon?:
        | {
            name: string;
            type: "infrared" | "active radar" | "semi-active radar";
            displayName: string;
            range: number;
            rangeType: "short" | "medium" | "long";
            year?: number | undefined;
          }
        | {
            name: string;
            type:
              | "Bomb"
              | "Cluster"
              | "Rocket"
              | "Laser Guided Bomb"
              | "GPS Guided Bomb"
              | "TV Guided Bomb"
              | "Laser Guided Rocket";
            target:
              | "Anti-Armor"
              | "Hard Target"
              | "Medium Target"
              | "Soft Target"
              | "Ship"
              | "Radar"
              | "Light Structure"
              | "Medium Structure"
              | "Hard Structure";
            displayName: string;
            weight?: number | undefined;
            highDrag?: boolean | undefined;
            year?: number | undefined;
          }
        | {
            name: string;
            type:
              | "Missile"
              | "Glide Bomb"
              | "Laser Guided Missile"
              | "Cruise Missile";
            displayName: string;
            range: number;
            targets: (
              | "Anti-Armor"
              | "Hard Target"
              | "Medium Target"
              | "Soft Target"
              | "Ship"
              | "Radar"
              | "Light Structure"
              | "Medium Structure"
              | "Hard Structure"
            )[];
            year?: number | undefined;
          }
        | undefined;
    }
  >;
  const loadout: z.ZodObject<
    {
      task: z.ZodUnion<
        [
          z.ZodEnum<
            ["DEAD", "AWACS", "CAP", "Escort", "Pinpoint Strike", "CAS", "CSAR"]
          >,
          z.ZodLiteral<"default">
        ]
      >;
      name: z.ZodString;
      displayName: z.ZodString;
      pylons: z.ZodArray<
        z.ZodObject<
          {
            CLSID: z.ZodString;
            num: z.ZodNumber;
            total: z.ZodNumber;
            count: z.ZodNumber;
            type: z.ZodEnum<
              [
                "Fuel Tank",
                "Targeting Pod",
                "Gun Pod",
                "ECM Pod",
                "Other",
                "Weapon"
              ]
            >;
            weapon: z.ZodOptional<
              z.ZodUnion<
                [
                  z.ZodObject<
                    {
                      type: z.ZodEnum<
                        ["infrared", "active radar", "semi-active radar"]
                      >;
                      range: z.ZodNumber;
                      rangeType: z.ZodEnum<["short", "medium", "long"]>;
                      name: z.ZodString;
                      displayName: z.ZodString;
                      year: z.ZodOptional<z.ZodNumber>;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      name: string;
                      type: "infrared" | "active radar" | "semi-active radar";
                      displayName: string;
                      range: number;
                      rangeType: "short" | "medium" | "long";
                      year?: number | undefined;
                    },
                    {
                      name: string;
                      type: "infrared" | "active radar" | "semi-active radar";
                      displayName: string;
                      range: number;
                      rangeType: "short" | "medium" | "long";
                      year?: number | undefined;
                    }
                  >,
                  z.ZodObject<
                    {
                      type: z.ZodEnum<
                        [
                          "Bomb",
                          "Cluster",
                          "Rocket",
                          "Laser Guided Bomb",
                          "GPS Guided Bomb",
                          "TV Guided Bomb",
                          "Laser Guided Rocket"
                        ]
                      >;
                      target: z.ZodEnum<
                        [
                          "Anti-Armor",
                          "Hard Target",
                          "Medium Target",
                          "Soft Target",
                          "Ship",
                          "Radar",
                          "Light Structure",
                          "Medium Structure",
                          "Hard Structure"
                        ]
                      >;
                      weight: z.ZodOptional<z.ZodNumber>;
                      highDrag: z.ZodOptional<z.ZodBoolean>;
                      name: z.ZodString;
                      displayName: z.ZodString;
                      year: z.ZodOptional<z.ZodNumber>;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      name: string;
                      type:
                        | "Bomb"
                        | "Cluster"
                        | "Rocket"
                        | "Laser Guided Bomb"
                        | "GPS Guided Bomb"
                        | "TV Guided Bomb"
                        | "Laser Guided Rocket";
                      target:
                        | "Anti-Armor"
                        | "Hard Target"
                        | "Medium Target"
                        | "Soft Target"
                        | "Ship"
                        | "Radar"
                        | "Light Structure"
                        | "Medium Structure"
                        | "Hard Structure";
                      displayName: string;
                      weight?: number | undefined;
                      highDrag?: boolean | undefined;
                      year?: number | undefined;
                    },
                    {
                      name: string;
                      type:
                        | "Bomb"
                        | "Cluster"
                        | "Rocket"
                        | "Laser Guided Bomb"
                        | "GPS Guided Bomb"
                        | "TV Guided Bomb"
                        | "Laser Guided Rocket";
                      target:
                        | "Anti-Armor"
                        | "Hard Target"
                        | "Medium Target"
                        | "Soft Target"
                        | "Ship"
                        | "Radar"
                        | "Light Structure"
                        | "Medium Structure"
                        | "Hard Structure";
                      displayName: string;
                      weight?: number | undefined;
                      highDrag?: boolean | undefined;
                      year?: number | undefined;
                    }
                  >,
                  z.ZodObject<
                    {
                      type: z.ZodEnum<
                        [
                          "Missile",
                          "Glide Bomb",
                          "Laser Guided Missile",
                          "Cruise Missile"
                        ]
                      >;
                      range: z.ZodNumber;
                      targets: z.ZodArray<
                        z.ZodEnum<
                          [
                            "Anti-Armor",
                            "Hard Target",
                            "Medium Target",
                            "Soft Target",
                            "Ship",
                            "Radar",
                            "Light Structure",
                            "Medium Structure",
                            "Hard Structure"
                          ]
                        >,
                        "many"
                      >;
                      name: z.ZodString;
                      displayName: z.ZodString;
                      year: z.ZodOptional<z.ZodNumber>;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      name: string;
                      type:
                        | "Missile"
                        | "Glide Bomb"
                        | "Laser Guided Missile"
                        | "Cruise Missile";
                      displayName: string;
                      range: number;
                      targets: (
                        | "Anti-Armor"
                        | "Hard Target"
                        | "Medium Target"
                        | "Soft Target"
                        | "Ship"
                        | "Radar"
                        | "Light Structure"
                        | "Medium Structure"
                        | "Hard Structure"
                      )[];
                      year?: number | undefined;
                    },
                    {
                      name: string;
                      type:
                        | "Missile"
                        | "Glide Bomb"
                        | "Laser Guided Missile"
                        | "Cruise Missile";
                      displayName: string;
                      range: number;
                      targets: (
                        | "Anti-Armor"
                        | "Hard Target"
                        | "Medium Target"
                        | "Soft Target"
                        | "Ship"
                        | "Radar"
                        | "Light Structure"
                        | "Medium Structure"
                        | "Hard Structure"
                      )[];
                      year?: number | undefined;
                    }
                  >
                ]
              >
            >;
          },
          "strip",
          z.ZodTypeAny,
          {
            type:
              | "Fuel Tank"
              | "Targeting Pod"
              | "Gun Pod"
              | "ECM Pod"
              | "Other"
              | "Weapon";
            CLSID: string;
            num: number;
            total: number;
            count: number;
            weapon?:
              | {
                  name: string;
                  type: "infrared" | "active radar" | "semi-active radar";
                  displayName: string;
                  range: number;
                  rangeType: "short" | "medium" | "long";
                  year?: number | undefined;
                }
              | {
                  name: string;
                  type:
                    | "Bomb"
                    | "Cluster"
                    | "Rocket"
                    | "Laser Guided Bomb"
                    | "GPS Guided Bomb"
                    | "TV Guided Bomb"
                    | "Laser Guided Rocket";
                  target:
                    | "Anti-Armor"
                    | "Hard Target"
                    | "Medium Target"
                    | "Soft Target"
                    | "Ship"
                    | "Radar"
                    | "Light Structure"
                    | "Medium Structure"
                    | "Hard Structure";
                  displayName: string;
                  weight?: number | undefined;
                  highDrag?: boolean | undefined;
                  year?: number | undefined;
                }
              | {
                  name: string;
                  type:
                    | "Missile"
                    | "Glide Bomb"
                    | "Laser Guided Missile"
                    | "Cruise Missile";
                  displayName: string;
                  range: number;
                  targets: (
                    | "Anti-Armor"
                    | "Hard Target"
                    | "Medium Target"
                    | "Soft Target"
                    | "Ship"
                    | "Radar"
                    | "Light Structure"
                    | "Medium Structure"
                    | "Hard Structure"
                  )[];
                  year?: number | undefined;
                }
              | undefined;
          },
          {
            type:
              | "Fuel Tank"
              | "Targeting Pod"
              | "Gun Pod"
              | "ECM Pod"
              | "Other"
              | "Weapon";
            CLSID: string;
            num: number;
            total: number;
            count: number;
            weapon?:
              | {
                  name: string;
                  type: "infrared" | "active radar" | "semi-active radar";
                  displayName: string;
                  range: number;
                  rangeType: "short" | "medium" | "long";
                  year?: number | undefined;
                }
              | {
                  name: string;
                  type:
                    | "Bomb"
                    | "Cluster"
                    | "Rocket"
                    | "Laser Guided Bomb"
                    | "GPS Guided Bomb"
                    | "TV Guided Bomb"
                    | "Laser Guided Rocket";
                  target:
                    | "Anti-Armor"
                    | "Hard Target"
                    | "Medium Target"
                    | "Soft Target"
                    | "Ship"
                    | "Radar"
                    | "Light Structure"
                    | "Medium Structure"
                    | "Hard Structure";
                  displayName: string;
                  weight?: number | undefined;
                  highDrag?: boolean | undefined;
                  year?: number | undefined;
                }
              | {
                  name: string;
                  type:
                    | "Missile"
                    | "Glide Bomb"
                    | "Laser Guided Missile"
                    | "Cruise Missile";
                  displayName: string;
                  range: number;
                  targets: (
                    | "Anti-Armor"
                    | "Hard Target"
                    | "Medium Target"
                    | "Soft Target"
                    | "Ship"
                    | "Radar"
                    | "Light Structure"
                    | "Medium Structure"
                    | "Hard Structure"
                  )[];
                  year?: number | undefined;
                }
              | undefined;
          }
        >,
        "many"
      >;
    },
    "strip",
    z.ZodTypeAny,
    {
      name: string;
      task:
        | "DEAD"
        | "AWACS"
        | "CAP"
        | "Escort"
        | "Pinpoint Strike"
        | "CAS"
        | "CSAR"
        | "default";
      displayName: string;
      pylons: {
        type:
          | "Fuel Tank"
          | "Targeting Pod"
          | "Gun Pod"
          | "ECM Pod"
          | "Other"
          | "Weapon";
        CLSID: string;
        num: number;
        total: number;
        count: number;
        weapon?:
          | {
              name: string;
              type: "infrared" | "active radar" | "semi-active radar";
              displayName: string;
              range: number;
              rangeType: "short" | "medium" | "long";
              year?: number | undefined;
            }
          | {
              name: string;
              type:
                | "Bomb"
                | "Cluster"
                | "Rocket"
                | "Laser Guided Bomb"
                | "GPS Guided Bomb"
                | "TV Guided Bomb"
                | "Laser Guided Rocket";
              target:
                | "Anti-Armor"
                | "Hard Target"
                | "Medium Target"
                | "Soft Target"
                | "Ship"
                | "Radar"
                | "Light Structure"
                | "Medium Structure"
                | "Hard Structure";
              displayName: string;
              weight?: number | undefined;
              highDrag?: boolean | undefined;
              year?: number | undefined;
            }
          | {
              name: string;
              type:
                | "Missile"
                | "Glide Bomb"
                | "Laser Guided Missile"
                | "Cruise Missile";
              displayName: string;
              range: number;
              targets: (
                | "Anti-Armor"
                | "Hard Target"
                | "Medium Target"
                | "Soft Target"
                | "Ship"
                | "Radar"
                | "Light Structure"
                | "Medium Structure"
                | "Hard Structure"
              )[];
              year?: number | undefined;
            }
          | undefined;
      }[];
    },
    {
      name: string;
      task:
        | "DEAD"
        | "AWACS"
        | "CAP"
        | "Escort"
        | "Pinpoint Strike"
        | "CAS"
        | "CSAR"
        | "default";
      displayName: string;
      pylons: {
        type:
          | "Fuel Tank"
          | "Targeting Pod"
          | "Gun Pod"
          | "ECM Pod"
          | "Other"
          | "Weapon";
        CLSID: string;
        num: number;
        total: number;
        count: number;
        weapon?:
          | {
              name: string;
              type: "infrared" | "active radar" | "semi-active radar";
              displayName: string;
              range: number;
              rangeType: "short" | "medium" | "long";
              year?: number | undefined;
            }
          | {
              name: string;
              type:
                | "Bomb"
                | "Cluster"
                | "Rocket"
                | "Laser Guided Bomb"
                | "GPS Guided Bomb"
                | "TV Guided Bomb"
                | "Laser Guided Rocket";
              target:
                | "Anti-Armor"
                | "Hard Target"
                | "Medium Target"
                | "Soft Target"
                | "Ship"
                | "Radar"
                | "Light Structure"
                | "Medium Structure"
                | "Hard Structure";
              displayName: string;
              weight?: number | undefined;
              highDrag?: boolean | undefined;
              year?: number | undefined;
            }
          | {
              name: string;
              type:
                | "Missile"
                | "Glide Bomb"
                | "Laser Guided Missile"
                | "Cruise Missile";
              displayName: string;
              range: number;
              targets: (
                | "Anti-Armor"
                | "Hard Target"
                | "Medium Target"
                | "Soft Target"
                | "Ship"
                | "Radar"
                | "Light Structure"
                | "Medium Structure"
                | "Hard Structure"
              )[];
              year?: number | undefined;
            }
          | undefined;
      }[];
    }
  >;
  const aircraft: z.ZodObject<
    {
      id: z.ZodString;
      aircraftType: z.ZodString;
      state: z.ZodEnum<
        [
          "idle",
          "en route",
          "on station",
          "combat",
          "rtb",
          "waiting",
          "maintenance"
        ]
      >;
      maintenanceEndTime: z.ZodOptional<z.ZodNumber>;
      a2GWeaponReadyTimer: z.ZodOptional<z.ZodNumber>;
      a2AWeaponReadyTimer: z.ZodOptional<z.ZodNumber>;
      availableTasks: z.ZodArray<z.ZodString, "many">;
      alive: z.ZodBoolean;
      destroyedTime: z.ZodOptional<z.ZodNumber>;
      onboardNumber: z.ZodString;
      homeBase: z.ZodObject<
        {
          type: z.ZodEnum<["airdrome", "farp", "carrier"]>;
          name: z.ZodString;
        },
        "strip",
        z.ZodTypeAny,
        {
          name: string;
          type: "airdrome" | "farp" | "carrier";
        },
        {
          name: string;
          type: "airdrome" | "farp" | "carrier";
        }
      >;
      loadout: z.ZodObject<
        {
          task: z.ZodUnion<
            [
              z.ZodEnum<
                [
                  "DEAD",
                  "AWACS",
                  "CAP",
                  "Escort",
                  "Pinpoint Strike",
                  "CAS",
                  "CSAR"
                ]
              >,
              z.ZodLiteral<"default">
            ]
          >;
          name: z.ZodString;
          displayName: z.ZodString;
          pylons: z.ZodArray<
            z.ZodObject<
              {
                CLSID: z.ZodString;
                num: z.ZodNumber;
                total: z.ZodNumber;
                count: z.ZodNumber;
                type: z.ZodEnum<
                  [
                    "Fuel Tank",
                    "Targeting Pod",
                    "Gun Pod",
                    "ECM Pod",
                    "Other",
                    "Weapon"
                  ]
                >;
                weapon: z.ZodOptional<
                  z.ZodUnion<
                    [
                      z.ZodObject<
                        {
                          type: z.ZodEnum<
                            ["infrared", "active radar", "semi-active radar"]
                          >;
                          range: z.ZodNumber;
                          rangeType: z.ZodEnum<["short", "medium", "long"]>;
                          name: z.ZodString;
                          displayName: z.ZodString;
                          year: z.ZodOptional<z.ZodNumber>;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          name: string;
                          type:
                            | "infrared"
                            | "active radar"
                            | "semi-active radar";
                          displayName: string;
                          range: number;
                          rangeType: "short" | "medium" | "long";
                          year?: number | undefined;
                        },
                        {
                          name: string;
                          type:
                            | "infrared"
                            | "active radar"
                            | "semi-active radar";
                          displayName: string;
                          range: number;
                          rangeType: "short" | "medium" | "long";
                          year?: number | undefined;
                        }
                      >,
                      z.ZodObject<
                        {
                          type: z.ZodEnum<
                            [
                              "Bomb",
                              "Cluster",
                              "Rocket",
                              "Laser Guided Bomb",
                              "GPS Guided Bomb",
                              "TV Guided Bomb",
                              "Laser Guided Rocket"
                            ]
                          >;
                          target: z.ZodEnum<
                            [
                              "Anti-Armor",
                              "Hard Target",
                              "Medium Target",
                              "Soft Target",
                              "Ship",
                              "Radar",
                              "Light Structure",
                              "Medium Structure",
                              "Hard Structure"
                            ]
                          >;
                          weight: z.ZodOptional<z.ZodNumber>;
                          highDrag: z.ZodOptional<z.ZodBoolean>;
                          name: z.ZodString;
                          displayName: z.ZodString;
                          year: z.ZodOptional<z.ZodNumber>;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          name: string;
                          type:
                            | "Bomb"
                            | "Cluster"
                            | "Rocket"
                            | "Laser Guided Bomb"
                            | "GPS Guided Bomb"
                            | "TV Guided Bomb"
                            | "Laser Guided Rocket";
                          target:
                            | "Anti-Armor"
                            | "Hard Target"
                            | "Medium Target"
                            | "Soft Target"
                            | "Ship"
                            | "Radar"
                            | "Light Structure"
                            | "Medium Structure"
                            | "Hard Structure";
                          displayName: string;
                          weight?: number | undefined;
                          highDrag?: boolean | undefined;
                          year?: number | undefined;
                        },
                        {
                          name: string;
                          type:
                            | "Bomb"
                            | "Cluster"
                            | "Rocket"
                            | "Laser Guided Bomb"
                            | "GPS Guided Bomb"
                            | "TV Guided Bomb"
                            | "Laser Guided Rocket";
                          target:
                            | "Anti-Armor"
                            | "Hard Target"
                            | "Medium Target"
                            | "Soft Target"
                            | "Ship"
                            | "Radar"
                            | "Light Structure"
                            | "Medium Structure"
                            | "Hard Structure";
                          displayName: string;
                          weight?: number | undefined;
                          highDrag?: boolean | undefined;
                          year?: number | undefined;
                        }
                      >,
                      z.ZodObject<
                        {
                          type: z.ZodEnum<
                            [
                              "Missile",
                              "Glide Bomb",
                              "Laser Guided Missile",
                              "Cruise Missile"
                            ]
                          >;
                          range: z.ZodNumber;
                          targets: z.ZodArray<
                            z.ZodEnum<
                              [
                                "Anti-Armor",
                                "Hard Target",
                                "Medium Target",
                                "Soft Target",
                                "Ship",
                                "Radar",
                                "Light Structure",
                                "Medium Structure",
                                "Hard Structure"
                              ]
                            >,
                            "many"
                          >;
                          name: z.ZodString;
                          displayName: z.ZodString;
                          year: z.ZodOptional<z.ZodNumber>;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          name: string;
                          type:
                            | "Missile"
                            | "Glide Bomb"
                            | "Laser Guided Missile"
                            | "Cruise Missile";
                          displayName: string;
                          range: number;
                          targets: (
                            | "Anti-Armor"
                            | "Hard Target"
                            | "Medium Target"
                            | "Soft Target"
                            | "Ship"
                            | "Radar"
                            | "Light Structure"
                            | "Medium Structure"
                            | "Hard Structure"
                          )[];
                          year?: number | undefined;
                        },
                        {
                          name: string;
                          type:
                            | "Missile"
                            | "Glide Bomb"
                            | "Laser Guided Missile"
                            | "Cruise Missile";
                          displayName: string;
                          range: number;
                          targets: (
                            | "Anti-Armor"
                            | "Hard Target"
                            | "Medium Target"
                            | "Soft Target"
                            | "Ship"
                            | "Radar"
                            | "Light Structure"
                            | "Medium Structure"
                            | "Hard Structure"
                          )[];
                          year?: number | undefined;
                        }
                      >
                    ]
                  >
                >;
              },
              "strip",
              z.ZodTypeAny,
              {
                type:
                  | "Fuel Tank"
                  | "Targeting Pod"
                  | "Gun Pod"
                  | "ECM Pod"
                  | "Other"
                  | "Weapon";
                CLSID: string;
                num: number;
                total: number;
                count: number;
                weapon?:
                  | {
                      name: string;
                      type: "infrared" | "active radar" | "semi-active radar";
                      displayName: string;
                      range: number;
                      rangeType: "short" | "medium" | "long";
                      year?: number | undefined;
                    }
                  | {
                      name: string;
                      type:
                        | "Bomb"
                        | "Cluster"
                        | "Rocket"
                        | "Laser Guided Bomb"
                        | "GPS Guided Bomb"
                        | "TV Guided Bomb"
                        | "Laser Guided Rocket";
                      target:
                        | "Anti-Armor"
                        | "Hard Target"
                        | "Medium Target"
                        | "Soft Target"
                        | "Ship"
                        | "Radar"
                        | "Light Structure"
                        | "Medium Structure"
                        | "Hard Structure";
                      displayName: string;
                      weight?: number | undefined;
                      highDrag?: boolean | undefined;
                      year?: number | undefined;
                    }
                  | {
                      name: string;
                      type:
                        | "Missile"
                        | "Glide Bomb"
                        | "Laser Guided Missile"
                        | "Cruise Missile";
                      displayName: string;
                      range: number;
                      targets: (
                        | "Anti-Armor"
                        | "Hard Target"
                        | "Medium Target"
                        | "Soft Target"
                        | "Ship"
                        | "Radar"
                        | "Light Structure"
                        | "Medium Structure"
                        | "Hard Structure"
                      )[];
                      year?: number | undefined;
                    }
                  | undefined;
              },
              {
                type:
                  | "Fuel Tank"
                  | "Targeting Pod"
                  | "Gun Pod"
                  | "ECM Pod"
                  | "Other"
                  | "Weapon";
                CLSID: string;
                num: number;
                total: number;
                count: number;
                weapon?:
                  | {
                      name: string;
                      type: "infrared" | "active radar" | "semi-active radar";
                      displayName: string;
                      range: number;
                      rangeType: "short" | "medium" | "long";
                      year?: number | undefined;
                    }
                  | {
                      name: string;
                      type:
                        | "Bomb"
                        | "Cluster"
                        | "Rocket"
                        | "Laser Guided Bomb"
                        | "GPS Guided Bomb"
                        | "TV Guided Bomb"
                        | "Laser Guided Rocket";
                      target:
                        | "Anti-Armor"
                        | "Hard Target"
                        | "Medium Target"
                        | "Soft Target"
                        | "Ship"
                        | "Radar"
                        | "Light Structure"
                        | "Medium Structure"
                        | "Hard Structure";
                      displayName: string;
                      weight?: number | undefined;
                      highDrag?: boolean | undefined;
                      year?: number | undefined;
                    }
                  | {
                      name: string;
                      type:
                        | "Missile"
                        | "Glide Bomb"
                        | "Laser Guided Missile"
                        | "Cruise Missile";
                      displayName: string;
                      range: number;
                      targets: (
                        | "Anti-Armor"
                        | "Hard Target"
                        | "Medium Target"
                        | "Soft Target"
                        | "Ship"
                        | "Radar"
                        | "Light Structure"
                        | "Medium Structure"
                        | "Hard Structure"
                      )[];
                      year?: number | undefined;
                    }
                  | undefined;
              }
            >,
            "many"
          >;
        },
        "strip",
        z.ZodTypeAny,
        {
          name: string;
          task:
            | "DEAD"
            | "AWACS"
            | "CAP"
            | "Escort"
            | "Pinpoint Strike"
            | "CAS"
            | "CSAR"
            | "default";
          displayName: string;
          pylons: {
            type:
              | "Fuel Tank"
              | "Targeting Pod"
              | "Gun Pod"
              | "ECM Pod"
              | "Other"
              | "Weapon";
            CLSID: string;
            num: number;
            total: number;
            count: number;
            weapon?:
              | {
                  name: string;
                  type: "infrared" | "active radar" | "semi-active radar";
                  displayName: string;
                  range: number;
                  rangeType: "short" | "medium" | "long";
                  year?: number | undefined;
                }
              | {
                  name: string;
                  type:
                    | "Bomb"
                    | "Cluster"
                    | "Rocket"
                    | "Laser Guided Bomb"
                    | "GPS Guided Bomb"
                    | "TV Guided Bomb"
                    | "Laser Guided Rocket";
                  target:
                    | "Anti-Armor"
                    | "Hard Target"
                    | "Medium Target"
                    | "Soft Target"
                    | "Ship"
                    | "Radar"
                    | "Light Structure"
                    | "Medium Structure"
                    | "Hard Structure";
                  displayName: string;
                  weight?: number | undefined;
                  highDrag?: boolean | undefined;
                  year?: number | undefined;
                }
              | {
                  name: string;
                  type:
                    | "Missile"
                    | "Glide Bomb"
                    | "Laser Guided Missile"
                    | "Cruise Missile";
                  displayName: string;
                  range: number;
                  targets: (
                    | "Anti-Armor"
                    | "Hard Target"
                    | "Medium Target"
                    | "Soft Target"
                    | "Ship"
                    | "Radar"
                    | "Light Structure"
                    | "Medium Structure"
                    | "Hard Structure"
                  )[];
                  year?: number | undefined;
                }
              | undefined;
          }[];
        },
        {
          name: string;
          task:
            | "DEAD"
            | "AWACS"
            | "CAP"
            | "Escort"
            | "Pinpoint Strike"
            | "CAS"
            | "CSAR"
            | "default";
          displayName: string;
          pylons: {
            type:
              | "Fuel Tank"
              | "Targeting Pod"
              | "Gun Pod"
              | "ECM Pod"
              | "Other"
              | "Weapon";
            CLSID: string;
            num: number;
            total: number;
            count: number;
            weapon?:
              | {
                  name: string;
                  type: "infrared" | "active radar" | "semi-active radar";
                  displayName: string;
                  range: number;
                  rangeType: "short" | "medium" | "long";
                  year?: number | undefined;
                }
              | {
                  name: string;
                  type:
                    | "Bomb"
                    | "Cluster"
                    | "Rocket"
                    | "Laser Guided Bomb"
                    | "GPS Guided Bomb"
                    | "TV Guided Bomb"
                    | "Laser Guided Rocket";
                  target:
                    | "Anti-Armor"
                    | "Hard Target"
                    | "Medium Target"
                    | "Soft Target"
                    | "Ship"
                    | "Radar"
                    | "Light Structure"
                    | "Medium Structure"
                    | "Hard Structure";
                  displayName: string;
                  weight?: number | undefined;
                  highDrag?: boolean | undefined;
                  year?: number | undefined;
                }
              | {
                  name: string;
                  type:
                    | "Missile"
                    | "Glide Bomb"
                    | "Laser Guided Missile"
                    | "Cruise Missile";
                  displayName: string;
                  range: number;
                  targets: (
                    | "Anti-Armor"
                    | "Hard Target"
                    | "Medium Target"
                    | "Soft Target"
                    | "Ship"
                    | "Radar"
                    | "Light Structure"
                    | "Medium Structure"
                    | "Hard Structure"
                  )[];
                  year?: number | undefined;
                }
              | undefined;
          }[];
        }
      >;
      disabled: z.ZodOptional<z.ZodBoolean>;
    },
    "strip",
    z.ZodTypeAny,
    {
      id: string;
      aircraftType: string;
      state:
        | "idle"
        | "en route"
        | "on station"
        | "combat"
        | "rtb"
        | "waiting"
        | "maintenance";
      availableTasks: string[];
      alive: boolean;
      onboardNumber: string;
      homeBase: {
        name: string;
        type: "airdrome" | "farp" | "carrier";
      };
      loadout: {
        name: string;
        task:
          | "DEAD"
          | "AWACS"
          | "CAP"
          | "Escort"
          | "Pinpoint Strike"
          | "CAS"
          | "CSAR"
          | "default";
        displayName: string;
        pylons: {
          type:
            | "Fuel Tank"
            | "Targeting Pod"
            | "Gun Pod"
            | "ECM Pod"
            | "Other"
            | "Weapon";
          CLSID: string;
          num: number;
          total: number;
          count: number;
          weapon?:
            | {
                name: string;
                type: "infrared" | "active radar" | "semi-active radar";
                displayName: string;
                range: number;
                rangeType: "short" | "medium" | "long";
                year?: number | undefined;
              }
            | {
                name: string;
                type:
                  | "Bomb"
                  | "Cluster"
                  | "Rocket"
                  | "Laser Guided Bomb"
                  | "GPS Guided Bomb"
                  | "TV Guided Bomb"
                  | "Laser Guided Rocket";
                target:
                  | "Anti-Armor"
                  | "Hard Target"
                  | "Medium Target"
                  | "Soft Target"
                  | "Ship"
                  | "Radar"
                  | "Light Structure"
                  | "Medium Structure"
                  | "Hard Structure";
                displayName: string;
                weight?: number | undefined;
                highDrag?: boolean | undefined;
                year?: number | undefined;
              }
            | {
                name: string;
                type:
                  | "Missile"
                  | "Glide Bomb"
                  | "Laser Guided Missile"
                  | "Cruise Missile";
                displayName: string;
                range: number;
                targets: (
                  | "Anti-Armor"
                  | "Hard Target"
                  | "Medium Target"
                  | "Soft Target"
                  | "Ship"
                  | "Radar"
                  | "Light Structure"
                  | "Medium Structure"
                  | "Hard Structure"
                )[];
                year?: number | undefined;
              }
            | undefined;
        }[];
      };
      maintenanceEndTime?: number | undefined;
      a2GWeaponReadyTimer?: number | undefined;
      a2AWeaponReadyTimer?: number | undefined;
      destroyedTime?: number | undefined;
      disabled?: boolean | undefined;
    },
    {
      id: string;
      aircraftType: string;
      state:
        | "idle"
        | "en route"
        | "on station"
        | "combat"
        | "rtb"
        | "waiting"
        | "maintenance";
      availableTasks: string[];
      alive: boolean;
      onboardNumber: string;
      homeBase: {
        name: string;
        type: "airdrome" | "farp" | "carrier";
      };
      loadout: {
        name: string;
        task:
          | "DEAD"
          | "AWACS"
          | "CAP"
          | "Escort"
          | "Pinpoint Strike"
          | "CAS"
          | "CSAR"
          | "default";
        displayName: string;
        pylons: {
          type:
            | "Fuel Tank"
            | "Targeting Pod"
            | "Gun Pod"
            | "ECM Pod"
            | "Other"
            | "Weapon";
          CLSID: string;
          num: number;
          total: number;
          count: number;
          weapon?:
            | {
                name: string;
                type: "infrared" | "active radar" | "semi-active radar";
                displayName: string;
                range: number;
                rangeType: "short" | "medium" | "long";
                year?: number | undefined;
              }
            | {
                name: string;
                type:
                  | "Bomb"
                  | "Cluster"
                  | "Rocket"
                  | "Laser Guided Bomb"
                  | "GPS Guided Bomb"
                  | "TV Guided Bomb"
                  | "Laser Guided Rocket";
                target:
                  | "Anti-Armor"
                  | "Hard Target"
                  | "Medium Target"
                  | "Soft Target"
                  | "Ship"
                  | "Radar"
                  | "Light Structure"
                  | "Medium Structure"
                  | "Hard Structure";
                displayName: string;
                weight?: number | undefined;
                highDrag?: boolean | undefined;
                year?: number | undefined;
              }
            | {
                name: string;
                type:
                  | "Missile"
                  | "Glide Bomb"
                  | "Laser Guided Missile"
                  | "Cruise Missile";
                displayName: string;
                range: number;
                targets: (
                  | "Anti-Armor"
                  | "Hard Target"
                  | "Medium Target"
                  | "Soft Target"
                  | "Ship"
                  | "Radar"
                  | "Light Structure"
                  | "Medium Structure"
                  | "Hard Structure"
                )[];
                year?: number | undefined;
              }
            | undefined;
        }[];
      };
      maintenanceEndTime?: number | undefined;
      a2GWeaponReadyTimer?: number | undefined;
      a2AWeaponReadyTimer?: number | undefined;
      destroyedTime?: number | undefined;
      disabled?: boolean | undefined;
    }
  >;
  const groundUnit: z.ZodObject<
    {
      id: z.ZodString;
      name: z.ZodString;
      displayName: z.ZodString;
      category: z.ZodString;
      alive: z.ZodBoolean;
      vehicleTypes: z.ZodArray<
        z.ZodEnum<
          [
            "MBT",
            "Track Radar",
            "Search Radar",
            "SAM Launcher",
            "Unarmored",
            "Armored",
            "IFV",
            "SHORAD",
            "Transport",
            "Power Generator",
            "Refuel",
            "Control Unit",
            "EW",
            "Infantry"
          ]
        >,
        "many"
      >;
      destroyedTime: z.ZodOptional<z.ZodNumber>;
      state: z.ZodEnum<["idle", "en route", "on objective"]>;
    },
    "strip",
    z.ZodTypeAny,
    {
      id: string;
      name: string;
      state: "idle" | "en route" | "on objective";
      alive: boolean;
      displayName: string;
      category: string;
      vehicleTypes: (
        | "MBT"
        | "Track Radar"
        | "Search Radar"
        | "SAM Launcher"
        | "Unarmored"
        | "Armored"
        | "IFV"
        | "SHORAD"
        | "Transport"
        | "Power Generator"
        | "Refuel"
        | "Control Unit"
        | "EW"
        | "Infantry"
      )[];
      destroyedTime?: number | undefined;
    },
    {
      id: string;
      name: string;
      state: "idle" | "en route" | "on objective";
      alive: boolean;
      displayName: string;
      category: string;
      vehicleTypes: (
        | "MBT"
        | "Track Radar"
        | "Search Radar"
        | "SAM Launcher"
        | "Unarmored"
        | "Armored"
        | "IFV"
        | "SHORAD"
        | "Transport"
        | "Power Generator"
        | "Refuel"
        | "Control Unit"
        | "EW"
        | "Infantry"
      )[];
      destroyedTime?: number | undefined;
    }
  >;
  const flightGroupUnit: z.ZodObject<
    {
      id: z.ZodString;
      name: z.ZodString;
      callSign: z.ZodUnion<
        [
          z.ZodNumber,
          z.ZodObject<
            {
              1: z.ZodNumber;
              2: z.ZodNumber;
              3: z.ZodNumber;
              name: z.ZodString;
            },
            "strip",
            z.ZodTypeAny,
            {
              name: string;
              2: number;
              1: number;
              3: number;
            },
            {
              name: string;
              2: number;
              1: number;
              3: number;
            }
          >
        ]
      >;
      client: z.ZodBoolean;
    },
    "strip",
    z.ZodTypeAny,
    {
      id: string;
      name: string;
      callSign: (
        | number
        | {
            name: string;
            2: number;
            1: number;
            3: number;
          }
      ) &
        (
          | number
          | {
              name: string;
              2: number;
              1: number;
              3: number;
            }
          | undefined
        );
      client: boolean;
    },
    {
      id: string;
      name: string;
      callSign: (
        | number
        | {
            name: string;
            2: number;
            1: number;
            3: number;
          }
      ) &
        (
          | number
          | {
              name: string;
              2: number;
              1: number;
              3: number;
            }
          | undefined
        );
      client: boolean;
    }
  >;
  const position: z.ZodObject<
    {
      x: z.ZodNumber;
      y: z.ZodNumber;
    },
    "strip",
    z.ZodTypeAny,
    {
      x: number;
      y: number;
    },
    {
      x: number;
      y: number;
    }
  >;
  const waypoint: z.ZodObject<
    {
      name: z.ZodString;
      time: z.ZodNumber;
      duration: z.ZodOptional<z.ZodNumber>;
      speed: z.ZodNumber;
      position: z.ZodObject<
        {
          x: z.ZodNumber;
          y: z.ZodNumber;
        },
        "strip",
        z.ZodTypeAny,
        {
          x: number;
          y: number;
        },
        {
          x: number;
          y: number;
        }
      >;
      taskStart: z.ZodOptional<z.ZodBoolean>;
      onGround: z.ZodOptional<z.ZodBoolean>;
      hold: z.ZodOptional<z.ZodBoolean>;
      racetrack: z.ZodOptional<
        z.ZodObject<
          {
            position: z.ZodObject<
              {
                x: z.ZodNumber;
                y: z.ZodNumber;
              },
              "strip",
              z.ZodTypeAny,
              {
                x: number;
                y: number;
              },
              {
                x: number;
                y: number;
              }
            >;
            name: z.ZodString;
            distance: z.ZodNumber;
            duration: z.ZodNumber;
          },
          "strip",
          z.ZodTypeAny,
          {
            name: string;
            duration: number;
            position: {
              x: number;
              y: number;
            };
            distance: number;
          },
          {
            name: string;
            duration: number;
            position: {
              x: number;
              y: number;
            };
            distance: number;
          }
        >
      >;
    },
    "strip",
    z.ZodTypeAny,
    {
      name: string;
      time: number;
      speed: number;
      position: {
        x: number;
        y: number;
      };
      duration?: number | undefined;
      taskStart?: boolean | undefined;
      onGround?: boolean | undefined;
      hold?: boolean | undefined;
      racetrack?:
        | {
            name: string;
            duration: number;
            position: {
              x: number;
              y: number;
            };
            distance: number;
          }
        | undefined;
    },
    {
      name: string;
      time: number;
      speed: number;
      position: {
        x: number;
        y: number;
      };
      duration?: number | undefined;
      taskStart?: boolean | undefined;
      onGround?: boolean | undefined;
      hold?: boolean | undefined;
      racetrack?:
        | {
            name: string;
            duration: number;
            position: {
              x: number;
              y: number;
            };
            distance: number;
          }
        | undefined;
    }
  >;
  const objective: z.ZodObject<
    {
      name: z.ZodString;
      position: z.ZodObject<
        {
          x: z.ZodNumber;
          y: z.ZodNumber;
        },
        "strip",
        z.ZodTypeAny,
        {
          x: number;
          y: number;
        },
        {
          x: number;
          y: number;
        }
      >;
      coalition: z.ZodEnum<["blue", "red", "neutrals"]>;
      incomingGroundGroups: z.ZodRecord<
        z.ZodEnum<["blue", "red", "neutrals"]>,
        z.ZodString
      >;
    },
    "strip",
    z.ZodTypeAny,
    {
      name: string;
      position: {
        x: number;
        y: number;
      };
      coalition: "blue" | "red" | "neutrals";
      incomingGroundGroups: Partial<
        Record<"blue" | "red" | "neutrals", string>
      >;
    },
    {
      name: string;
      position: {
        x: number;
        y: number;
      };
      coalition: "blue" | "red" | "neutrals";
      incomingGroundGroups: Partial<
        Record<"blue" | "red" | "neutrals", string>
      >;
    }
  >;
  const flightGroup: z.ZodObject<
    {
      id: z.ZodString;
      name: z.ZodString;
      units: z.ZodArray<
        z.ZodObject<
          {
            id: z.ZodString;
            name: z.ZodString;
            callSign: z.ZodUnion<
              [
                z.ZodNumber,
                z.ZodObject<
                  {
                    1: z.ZodNumber;
                    2: z.ZodNumber;
                    3: z.ZodNumber;
                    name: z.ZodString;
                  },
                  "strip",
                  z.ZodTypeAny,
                  {
                    name: string;
                    2: number;
                    1: number;
                    3: number;
                  },
                  {
                    name: string;
                    2: number;
                    1: number;
                    3: number;
                  }
                >
              ]
            >;
            client: z.ZodBoolean;
          },
          "strip",
          z.ZodTypeAny,
          {
            id: string;
            name: string;
            callSign: (
              | number
              | {
                  name: string;
                  2: number;
                  1: number;
                  3: number;
                }
            ) &
              (
                | number
                | {
                    name: string;
                    2: number;
                    1: number;
                    3: number;
                  }
                | undefined
              );
            client: boolean;
          },
          {
            id: string;
            name: string;
            callSign: (
              | number
              | {
                  name: string;
                  2: number;
                  1: number;
                  3: number;
                }
            ) &
              (
                | number
                | {
                    name: string;
                    2: number;
                    1: number;
                    3: number;
                  }
                | undefined
              );
            client: boolean;
          }
        >,
        "many"
      >;
      task: z.ZodEnum<
        ["DEAD", "AWACS", "CAP", "Escort", "Pinpoint Strike", "CAS", "CSAR"]
      >;
      waypoints: z.ZodArray<
        z.ZodObject<
          {
            name: z.ZodString;
            time: z.ZodNumber;
            duration: z.ZodOptional<z.ZodNumber>;
            speed: z.ZodNumber;
            position: z.ZodObject<
              {
                x: z.ZodNumber;
                y: z.ZodNumber;
              },
              "strip",
              z.ZodTypeAny,
              {
                x: number;
                y: number;
              },
              {
                x: number;
                y: number;
              }
            >;
            taskStart: z.ZodOptional<z.ZodBoolean>;
            onGround: z.ZodOptional<z.ZodBoolean>;
            hold: z.ZodOptional<z.ZodBoolean>;
            racetrack: z.ZodOptional<
              z.ZodObject<
                {
                  position: z.ZodObject<
                    {
                      x: z.ZodNumber;
                      y: z.ZodNumber;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      x: number;
                      y: number;
                    },
                    {
                      x: number;
                      y: number;
                    }
                  >;
                  name: z.ZodString;
                  distance: z.ZodNumber;
                  duration: z.ZodNumber;
                },
                "strip",
                z.ZodTypeAny,
                {
                  name: string;
                  duration: number;
                  position: {
                    x: number;
                    y: number;
                  };
                  distance: number;
                },
                {
                  name: string;
                  duration: number;
                  position: {
                    x: number;
                    y: number;
                  };
                  distance: number;
                }
              >
            >;
          },
          "strip",
          z.ZodTypeAny,
          {
            name: string;
            time: number;
            speed: number;
            position: {
              x: number;
              y: number;
            };
            duration?: number | undefined;
            taskStart?: boolean | undefined;
            onGround?: boolean | undefined;
            hold?: boolean | undefined;
            racetrack?:
              | {
                  name: string;
                  duration: number;
                  position: {
                    x: number;
                    y: number;
                  };
                  distance: number;
                }
              | undefined;
          },
          {
            name: string;
            time: number;
            speed: number;
            position: {
              x: number;
              y: number;
            };
            duration?: number | undefined;
            taskStart?: boolean | undefined;
            onGround?: boolean | undefined;
            hold?: boolean | undefined;
            racetrack?:
              | {
                  name: string;
                  duration: number;
                  position: {
                    x: number;
                    y: number;
                  };
                  distance: number;
                }
              | undefined;
          }
        >,
        "many"
      >;
      startTime: z.ZodNumber;
      designatedStartTime: z.ZodNumber;
      tot: z.ZodNumber;
      landingTime: z.ZodNumber;
      target: z.ZodOptional<z.ZodString>;
      position: z.ZodObject<
        {
          x: z.ZodNumber;
          y: z.ZodNumber;
        },
        "strip",
        z.ZodTypeAny,
        {
          x: number;
          y: number;
        },
        {
          x: number;
          y: number;
        }
      >;
      airdromeName: z.ZodString;
      frequency: z.ZodOptional<z.ZodNumber>;
      jtacFrequency: z.ZodOptional<z.ZodNumber>;
    },
    "strip",
    z.ZodTypeAny,
    {
      id: string;
      name: string;
      units: {
        id: string;
        name: string;
        callSign: (
          | number
          | {
              name: string;
              2: number;
              1: number;
              3: number;
            }
        ) &
          (
            | number
            | {
                name: string;
                2: number;
                1: number;
                3: number;
              }
            | undefined
          );
        client: boolean;
      }[];
      task:
        | "DEAD"
        | "AWACS"
        | "CAP"
        | "Escort"
        | "Pinpoint Strike"
        | "CAS"
        | "CSAR";
      waypoints: {
        name: string;
        time: number;
        speed: number;
        position: {
          x: number;
          y: number;
        };
        duration?: number | undefined;
        taskStart?: boolean | undefined;
        onGround?: boolean | undefined;
        hold?: boolean | undefined;
        racetrack?:
          | {
              name: string;
              duration: number;
              position: {
                x: number;
                y: number;
              };
              distance: number;
            }
          | undefined;
      }[];
      position: {
        x: number;
        y: number;
      };
      startTime: number;
      designatedStartTime: number;
      tot: number;
      landingTime: number;
      airdromeName: string;
      target?: string | undefined;
      frequency?: number | undefined;
      jtacFrequency?: number | undefined;
    },
    {
      id: string;
      name: string;
      units: {
        id: string;
        name: string;
        callSign: (
          | number
          | {
              name: string;
              2: number;
              1: number;
              3: number;
            }
        ) &
          (
            | number
            | {
                name: string;
                2: number;
                1: number;
                3: number;
              }
            | undefined
          );
        client: boolean;
      }[];
      task:
        | "DEAD"
        | "AWACS"
        | "CAP"
        | "Escort"
        | "Pinpoint Strike"
        | "CAS"
        | "CSAR";
      waypoints: {
        name: string;
        time: number;
        speed: number;
        position: {
          x: number;
          y: number;
        };
        duration?: number | undefined;
        taskStart?: boolean | undefined;
        onGround?: boolean | undefined;
        hold?: boolean | undefined;
        racetrack?:
          | {
              name: string;
              duration: number;
              position: {
                x: number;
                y: number;
              };
              distance: number;
            }
          | undefined;
      }[];
      position: {
        x: number;
        y: number;
      };
      startTime: number;
      designatedStartTime: number;
      tot: number;
      landingTime: number;
      airdromeName: string;
      target?: string | undefined;
      frequency?: number | undefined;
      jtacFrequency?: number | undefined;
    }
  >;
  const flightPackage: z.ZodObject<
    {
      id: z.ZodString;
      startTime: z.ZodNumber;
      taskEndTime: z.ZodNumber;
      endTime: z.ZodNumber;
      task: z.ZodEnum<
        ["DEAD", "AWACS", "CAP", "Escort", "Pinpoint Strike", "CAS", "CSAR"]
      >;
      flightGroups: z.ZodArray<
        z.ZodObject<
          {
            id: z.ZodString;
            name: z.ZodString;
            units: z.ZodArray<
              z.ZodObject<
                {
                  id: z.ZodString;
                  name: z.ZodString;
                  callSign: z.ZodUnion<
                    [
                      z.ZodNumber,
                      z.ZodObject<
                        {
                          1: z.ZodNumber;
                          2: z.ZodNumber;
                          3: z.ZodNumber;
                          name: z.ZodString;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          name: string;
                          2: number;
                          1: number;
                          3: number;
                        },
                        {
                          name: string;
                          2: number;
                          1: number;
                          3: number;
                        }
                      >
                    ]
                  >;
                  client: z.ZodBoolean;
                },
                "strip",
                z.ZodTypeAny,
                {
                  id: string;
                  name: string;
                  callSign: (
                    | number
                    | {
                        name: string;
                        2: number;
                        1: number;
                        3: number;
                      }
                  ) &
                    (
                      | number
                      | {
                          name: string;
                          2: number;
                          1: number;
                          3: number;
                        }
                      | undefined
                    );
                  client: boolean;
                },
                {
                  id: string;
                  name: string;
                  callSign: (
                    | number
                    | {
                        name: string;
                        2: number;
                        1: number;
                        3: number;
                      }
                  ) &
                    (
                      | number
                      | {
                          name: string;
                          2: number;
                          1: number;
                          3: number;
                        }
                      | undefined
                    );
                  client: boolean;
                }
              >,
              "many"
            >;
            task: z.ZodEnum<
              [
                "DEAD",
                "AWACS",
                "CAP",
                "Escort",
                "Pinpoint Strike",
                "CAS",
                "CSAR"
              ]
            >;
            waypoints: z.ZodArray<
              z.ZodObject<
                {
                  name: z.ZodString;
                  time: z.ZodNumber;
                  duration: z.ZodOptional<z.ZodNumber>;
                  speed: z.ZodNumber;
                  position: z.ZodObject<
                    {
                      x: z.ZodNumber;
                      y: z.ZodNumber;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      x: number;
                      y: number;
                    },
                    {
                      x: number;
                      y: number;
                    }
                  >;
                  taskStart: z.ZodOptional<z.ZodBoolean>;
                  onGround: z.ZodOptional<z.ZodBoolean>;
                  hold: z.ZodOptional<z.ZodBoolean>;
                  racetrack: z.ZodOptional<
                    z.ZodObject<
                      {
                        position: z.ZodObject<
                          {
                            x: z.ZodNumber;
                            y: z.ZodNumber;
                          },
                          "strip",
                          z.ZodTypeAny,
                          {
                            x: number;
                            y: number;
                          },
                          {
                            x: number;
                            y: number;
                          }
                        >;
                        name: z.ZodString;
                        distance: z.ZodNumber;
                        duration: z.ZodNumber;
                      },
                      "strip",
                      z.ZodTypeAny,
                      {
                        name: string;
                        duration: number;
                        position: {
                          x: number;
                          y: number;
                        };
                        distance: number;
                      },
                      {
                        name: string;
                        duration: number;
                        position: {
                          x: number;
                          y: number;
                        };
                        distance: number;
                      }
                    >
                  >;
                },
                "strip",
                z.ZodTypeAny,
                {
                  name: string;
                  time: number;
                  speed: number;
                  position: {
                    x: number;
                    y: number;
                  };
                  duration?: number | undefined;
                  taskStart?: boolean | undefined;
                  onGround?: boolean | undefined;
                  hold?: boolean | undefined;
                  racetrack?:
                    | {
                        name: string;
                        duration: number;
                        position: {
                          x: number;
                          y: number;
                        };
                        distance: number;
                      }
                    | undefined;
                },
                {
                  name: string;
                  time: number;
                  speed: number;
                  position: {
                    x: number;
                    y: number;
                  };
                  duration?: number | undefined;
                  taskStart?: boolean | undefined;
                  onGround?: boolean | undefined;
                  hold?: boolean | undefined;
                  racetrack?:
                    | {
                        name: string;
                        duration: number;
                        position: {
                          x: number;
                          y: number;
                        };
                        distance: number;
                      }
                    | undefined;
                }
              >,
              "many"
            >;
            startTime: z.ZodNumber;
            designatedStartTime: z.ZodNumber;
            tot: z.ZodNumber;
            landingTime: z.ZodNumber;
            target: z.ZodOptional<z.ZodString>;
            position: z.ZodObject<
              {
                x: z.ZodNumber;
                y: z.ZodNumber;
              },
              "strip",
              z.ZodTypeAny,
              {
                x: number;
                y: number;
              },
              {
                x: number;
                y: number;
              }
            >;
            airdromeName: z.ZodString;
            frequency: z.ZodOptional<z.ZodNumber>;
            jtacFrequency: z.ZodOptional<z.ZodNumber>;
          },
          "strip",
          z.ZodTypeAny,
          {
            id: string;
            name: string;
            units: {
              id: string;
              name: string;
              callSign: (
                | number
                | {
                    name: string;
                    2: number;
                    1: number;
                    3: number;
                  }
              ) &
                (
                  | number
                  | {
                      name: string;
                      2: number;
                      1: number;
                      3: number;
                    }
                  | undefined
                );
              client: boolean;
            }[];
            task:
              | "DEAD"
              | "AWACS"
              | "CAP"
              | "Escort"
              | "Pinpoint Strike"
              | "CAS"
              | "CSAR";
            waypoints: {
              name: string;
              time: number;
              speed: number;
              position: {
                x: number;
                y: number;
              };
              duration?: number | undefined;
              taskStart?: boolean | undefined;
              onGround?: boolean | undefined;
              hold?: boolean | undefined;
              racetrack?:
                | {
                    name: string;
                    duration: number;
                    position: {
                      x: number;
                      y: number;
                    };
                    distance: number;
                  }
                | undefined;
            }[];
            position: {
              x: number;
              y: number;
            };
            startTime: number;
            designatedStartTime: number;
            tot: number;
            landingTime: number;
            airdromeName: string;
            target?: string | undefined;
            frequency?: number | undefined;
            jtacFrequency?: number | undefined;
          },
          {
            id: string;
            name: string;
            units: {
              id: string;
              name: string;
              callSign: (
                | number
                | {
                    name: string;
                    2: number;
                    1: number;
                    3: number;
                  }
              ) &
                (
                  | number
                  | {
                      name: string;
                      2: number;
                      1: number;
                      3: number;
                    }
                  | undefined
                );
              client: boolean;
            }[];
            task:
              | "DEAD"
              | "AWACS"
              | "CAP"
              | "Escort"
              | "Pinpoint Strike"
              | "CAS"
              | "CSAR";
            waypoints: {
              name: string;
              time: number;
              speed: number;
              position: {
                x: number;
                y: number;
              };
              duration?: number | undefined;
              taskStart?: boolean | undefined;
              onGround?: boolean | undefined;
              hold?: boolean | undefined;
              racetrack?:
                | {
                    name: string;
                    duration: number;
                    position: {
                      x: number;
                      y: number;
                    };
                    distance: number;
                  }
                | undefined;
            }[];
            position: {
              x: number;
              y: number;
            };
            startTime: number;
            designatedStartTime: number;
            tot: number;
            landingTime: number;
            airdromeName: string;
            target?: string | undefined;
            frequency?: number | undefined;
            jtacFrequency?: number | undefined;
          }
        >,
        "many"
      >;
      frequency: z.ZodNumber;
    },
    "strip",
    z.ZodTypeAny,
    {
      id: string;
      task:
        | "DEAD"
        | "AWACS"
        | "CAP"
        | "Escort"
        | "Pinpoint Strike"
        | "CAS"
        | "CSAR";
      startTime: number;
      frequency: number;
      taskEndTime: number;
      endTime: number;
      flightGroups: {
        id: string;
        name: string;
        units: {
          id: string;
          name: string;
          callSign: (
            | number
            | {
                name: string;
                2: number;
                1: number;
                3: number;
              }
          ) &
            (
              | number
              | {
                  name: string;
                  2: number;
                  1: number;
                  3: number;
                }
              | undefined
            );
          client: boolean;
        }[];
        task:
          | "DEAD"
          | "AWACS"
          | "CAP"
          | "Escort"
          | "Pinpoint Strike"
          | "CAS"
          | "CSAR";
        waypoints: {
          name: string;
          time: number;
          speed: number;
          position: {
            x: number;
            y: number;
          };
          duration?: number | undefined;
          taskStart?: boolean | undefined;
          onGround?: boolean | undefined;
          hold?: boolean | undefined;
          racetrack?:
            | {
                name: string;
                duration: number;
                position: {
                  x: number;
                  y: number;
                };
                distance: number;
              }
            | undefined;
        }[];
        position: {
          x: number;
          y: number;
        };
        startTime: number;
        designatedStartTime: number;
        tot: number;
        landingTime: number;
        airdromeName: string;
        target?: string | undefined;
        frequency?: number | undefined;
        jtacFrequency?: number | undefined;
      }[];
    },
    {
      id: string;
      task:
        | "DEAD"
        | "AWACS"
        | "CAP"
        | "Escort"
        | "Pinpoint Strike"
        | "CAS"
        | "CSAR";
      startTime: number;
      frequency: number;
      taskEndTime: number;
      endTime: number;
      flightGroups: {
        id: string;
        name: string;
        units: {
          id: string;
          name: string;
          callSign: (
            | number
            | {
                name: string;
                2: number;
                1: number;
                3: number;
              }
          ) &
            (
              | number
              | {
                  name: string;
                  2: number;
                  1: number;
                  3: number;
                }
              | undefined
            );
          client: boolean;
        }[];
        task:
          | "DEAD"
          | "AWACS"
          | "CAP"
          | "Escort"
          | "Pinpoint Strike"
          | "CAS"
          | "CSAR";
        waypoints: {
          name: string;
          time: number;
          speed: number;
          position: {
            x: number;
            y: number;
          };
          duration?: number | undefined;
          taskStart?: boolean | undefined;
          onGround?: boolean | undefined;
          hold?: boolean | undefined;
          racetrack?:
            | {
                name: string;
                duration: number;
                position: {
                  x: number;
                  y: number;
                };
                distance: number;
              }
            | undefined;
        }[];
        position: {
          x: number;
          y: number;
        };
        startTime: number;
        designatedStartTime: number;
        tot: number;
        landingTime: number;
        airdromeName: string;
        target?: string | undefined;
        frequency?: number | undefined;
        jtacFrequency?: number | undefined;
      }[];
    }
  >;
  const groundGroup: z.ZodObject<
    {
      id: z.ZodString;
      name: z.ZodString;
      unitIds: z.ZodArray<z.ZodString, "many">;
      shoradUnitIds: z.ZodArray<z.ZodString, "many">;
      position: z.ZodObject<
        {
          x: z.ZodNumber;
          y: z.ZodNumber;
        },
        "strip",
        z.ZodTypeAny,
        {
          x: number;
          y: number;
        },
        {
          x: number;
          y: number;
        }
      >;
      objectiveName: z.ZodString;
      state: z.ZodEnum<["en route", "on objective", "combat"]>;
      startTime: z.ZodNumber;
      startObjectiveName: z.ZodString;
      type: z.ZodEnum<["armor", "mbt", "infantry", "ew"]>;
      combatTimer: z.ZodOptional<z.ZodNumber>;
    },
    "strip",
    z.ZodTypeAny,
    {
      id: string;
      name: string;
      type: "armor" | "mbt" | "infantry" | "ew";
      position: {
        x: number;
        y: number;
      };
      startTime: number;
      state: "en route" | "combat" | "on objective";
      unitIds: string[];
      shoradUnitIds: string[];
      objectiveName: string;
      startObjectiveName: string;
      combatTimer?: number | undefined;
    },
    {
      id: string;
      name: string;
      type: "armor" | "mbt" | "infantry" | "ew";
      position: {
        x: number;
        y: number;
      };
      startTime: number;
      state: "en route" | "combat" | "on objective";
      unitIds: string[];
      shoradUnitIds: string[];
      objectiveName: string;
      startObjectiveName: string;
      combatTimer?: number | undefined;
    }
  >;
  const samGroup: z.ZodObject<
    {
      id: z.ZodString;
      name: z.ZodString;
      position: z.ZodObject<
        {
          x: z.ZodNumber;
          y: z.ZodNumber;
        },
        "strip",
        z.ZodTypeAny,
        {
          x: number;
          y: number;
        },
        {
          x: number;
          y: number;
        }
      >;
      startTime: z.ZodNumber;
      state: z.ZodEnum<["en route", "on objective", "combat"]>;
      unitIds: z.ZodArray<z.ZodString, "many">;
      shoradUnitIds: z.ZodArray<z.ZodString, "many">;
      objectiveName: z.ZodString;
      startObjectiveName: z.ZodString;
      combatTimer: z.ZodOptional<z.ZodNumber>;
      type: z.ZodEnum<["sam"]>;
      range: z.ZodNumber;
      operational: z.ZodBoolean;
      fireInterval: z.ZodNumber;
      samType: z.ZodEnum<["SA-10-300", "SA-6", "SA-5", "SA-3", "SA-2", "Hawk"]>;
    },
    "strip",
    z.ZodTypeAny,
    {
      id: string;
      name: string;
      type: "sam";
      position: {
        x: number;
        y: number;
      };
      startTime: number;
      state: "en route" | "combat" | "on objective";
      range: number;
      unitIds: string[];
      shoradUnitIds: string[];
      objectiveName: string;
      startObjectiveName: string;
      operational: boolean;
      fireInterval: number;
      samType: "SA-10-300" | "SA-6" | "SA-5" | "SA-3" | "SA-2" | "Hawk";
      combatTimer?: number | undefined;
    },
    {
      id: string;
      name: string;
      type: "sam";
      position: {
        x: number;
        y: number;
      };
      startTime: number;
      state: "en route" | "combat" | "on objective";
      range: number;
      unitIds: string[];
      shoradUnitIds: string[];
      objectiveName: string;
      startObjectiveName: string;
      operational: boolean;
      fireInterval: number;
      samType: "SA-10-300" | "SA-6" | "SA-5" | "SA-3" | "SA-2" | "Hawk";
      combatTimer?: number | undefined;
    }
  >;
  const building: z.ZodObject<
    {
      name: z.ZodString;
      alive: z.ZodBoolean;
      destroyedTime: z.ZodOptional<z.ZodNumber>;
      repairScore: z.ZodOptional<z.ZodNumber>;
      offset: z.ZodObject<
        {
          x: z.ZodNumber;
          y: z.ZodNumber;
        },
        "strip",
        z.ZodTypeAny,
        {
          x: number;
          y: number;
        },
        {
          x: number;
          y: number;
        }
      >;
      heading: z.ZodNumber;
      category: z.ZodEnum<["Fortifications", "Heliports"]>;
      shapeName: z.ZodString;
      type: z.ZodString;
    },
    "strip",
    z.ZodTypeAny,
    {
      name: string;
      type: string;
      alive: boolean;
      category: "Fortifications" | "Heliports";
      offset: {
        x: number;
        y: number;
      };
      heading: number;
      shapeName: string;
      destroyedTime?: number | undefined;
      repairScore?: number | undefined;
    },
    {
      name: string;
      type: string;
      alive: boolean;
      category: "Fortifications" | "Heliports";
      offset: {
        x: number;
        y: number;
      };
      heading: number;
      shapeName: string;
      destroyedTime?: number | undefined;
      repairScore?: number | undefined;
    }
  >;
  const structureBase: z.ZodObject<
    {
      id: z.ZodString;
      name: z.ZodString;
      position: z.ZodObject<
        {
          x: z.ZodNumber;
          y: z.ZodNumber;
        },
        "strip",
        z.ZodTypeAny,
        {
          x: number;
          y: number;
        },
        {
          x: number;
          y: number;
        }
      >;
      objectiveName: z.ZodString;
      groupId: z.ZodNumber;
      buildings: z.ZodArray<
        z.ZodObject<
          {
            name: z.ZodString;
            alive: z.ZodBoolean;
            destroyedTime: z.ZodOptional<z.ZodNumber>;
            repairScore: z.ZodOptional<z.ZodNumber>;
            offset: z.ZodObject<
              {
                x: z.ZodNumber;
                y: z.ZodNumber;
              },
              "strip",
              z.ZodTypeAny,
              {
                x: number;
                y: number;
              },
              {
                x: number;
                y: number;
              }
            >;
            heading: z.ZodNumber;
            category: z.ZodEnum<["Fortifications", "Heliports"]>;
            shapeName: z.ZodString;
            type: z.ZodString;
          },
          "strip",
          z.ZodTypeAny,
          {
            name: string;
            type: string;
            alive: boolean;
            category: "Fortifications" | "Heliports";
            offset: {
              x: number;
              y: number;
            };
            heading: number;
            shapeName: string;
            destroyedTime?: number | undefined;
            repairScore?: number | undefined;
          },
          {
            name: string;
            type: string;
            alive: boolean;
            category: "Fortifications" | "Heliports";
            offset: {
              x: number;
              y: number;
            };
            heading: number;
            shapeName: string;
            destroyedTime?: number | undefined;
            repairScore?: number | undefined;
          }
        >,
        "many"
      >;
      state: z.ZodEnum<["active", "destroyed", "deactivated"]>;
    },
    "strip",
    z.ZodTypeAny,
    {
      id: string;
      name: string;
      position: {
        x: number;
        y: number;
      };
      state: "active" | "destroyed" | "deactivated";
      objectiveName: string;
      groupId: number;
      buildings: {
        name: string;
        type: string;
        alive: boolean;
        category: "Fortifications" | "Heliports";
        offset: {
          x: number;
          y: number;
        };
        heading: number;
        shapeName: string;
        destroyedTime?: number | undefined;
        repairScore?: number | undefined;
      }[];
    },
    {
      id: string;
      name: string;
      position: {
        x: number;
        y: number;
      };
      state: "active" | "destroyed" | "deactivated";
      objectiveName: string;
      groupId: number;
      buildings: {
        name: string;
        type: string;
        alive: boolean;
        category: "Fortifications" | "Heliports";
        offset: {
          x: number;
          y: number;
        };
        heading: number;
        shapeName: string;
        destroyedTime?: number | undefined;
        repairScore?: number | undefined;
      }[];
    }
  >;
  const structureDefault: z.ZodObject<
    {
      id: z.ZodString;
      name: z.ZodString;
      position: z.ZodObject<
        {
          x: z.ZodNumber;
          y: z.ZodNumber;
        },
        "strip",
        z.ZodTypeAny,
        {
          x: number;
          y: number;
        },
        {
          x: number;
          y: number;
        }
      >;
      state: z.ZodEnum<["active", "destroyed", "deactivated"]>;
      objectiveName: z.ZodString;
      groupId: z.ZodNumber;
      buildings: z.ZodArray<
        z.ZodObject<
          {
            name: z.ZodString;
            alive: z.ZodBoolean;
            destroyedTime: z.ZodOptional<z.ZodNumber>;
            repairScore: z.ZodOptional<z.ZodNumber>;
            offset: z.ZodObject<
              {
                x: z.ZodNumber;
                y: z.ZodNumber;
              },
              "strip",
              z.ZodTypeAny,
              {
                x: number;
                y: number;
              },
              {
                x: number;
                y: number;
              }
            >;
            heading: z.ZodNumber;
            category: z.ZodEnum<["Fortifications", "Heliports"]>;
            shapeName: z.ZodString;
            type: z.ZodString;
          },
          "strip",
          z.ZodTypeAny,
          {
            name: string;
            type: string;
            alive: boolean;
            category: "Fortifications" | "Heliports";
            offset: {
              x: number;
              y: number;
            };
            heading: number;
            shapeName: string;
            destroyedTime?: number | undefined;
            repairScore?: number | undefined;
          },
          {
            name: string;
            type: string;
            alive: boolean;
            category: "Fortifications" | "Heliports";
            offset: {
              x: number;
              y: number;
            };
            heading: number;
            shapeName: string;
            destroyedTime?: number | undefined;
            repairScore?: number | undefined;
          }
        >,
        "many"
      >;
      type: z.ZodEnum<
        [
          "Ammo Depot",
          "Farp",
          "Command Center",
          "Power Plant",
          "Fuel Storage",
          "Hospital",
          "Prison"
        ]
      >;
    },
    "strip",
    z.ZodTypeAny,
    {
      id: string;
      name: string;
      type:
        | "Ammo Depot"
        | "Farp"
        | "Command Center"
        | "Power Plant"
        | "Fuel Storage"
        | "Hospital"
        | "Prison";
      position: {
        x: number;
        y: number;
      };
      state: "active" | "destroyed" | "deactivated";
      objectiveName: string;
      groupId: number;
      buildings: {
        name: string;
        type: string;
        alive: boolean;
        category: "Fortifications" | "Heliports";
        offset: {
          x: number;
          y: number;
        };
        heading: number;
        shapeName: string;
        destroyedTime?: number | undefined;
        repairScore?: number | undefined;
      }[];
    },
    {
      id: string;
      name: string;
      type:
        | "Ammo Depot"
        | "Farp"
        | "Command Center"
        | "Power Plant"
        | "Fuel Storage"
        | "Hospital"
        | "Prison";
      position: {
        x: number;
        y: number;
      };
      state: "active" | "destroyed" | "deactivated";
      objectiveName: string;
      groupId: number;
      buildings: {
        name: string;
        type: string;
        alive: boolean;
        category: "Fortifications" | "Heliports";
        offset: {
          x: number;
          y: number;
        };
        heading: number;
        shapeName: string;
        destroyedTime?: number | undefined;
        repairScore?: number | undefined;
      }[];
    }
  >;
  const structureUnitCamp: z.ZodObject<
    {
      id: z.ZodString;
      name: z.ZodString;
      position: z.ZodObject<
        {
          x: z.ZodNumber;
          y: z.ZodNumber;
        },
        "strip",
        z.ZodTypeAny,
        {
          x: number;
          y: number;
        },
        {
          x: number;
          y: number;
        }
      >;
      state: z.ZodEnum<["active", "destroyed", "deactivated"]>;
      objectiveName: z.ZodString;
      groupId: z.ZodNumber;
      buildings: z.ZodArray<
        z.ZodObject<
          {
            name: z.ZodString;
            alive: z.ZodBoolean;
            destroyedTime: z.ZodOptional<z.ZodNumber>;
            repairScore: z.ZodOptional<z.ZodNumber>;
            offset: z.ZodObject<
              {
                x: z.ZodNumber;
                y: z.ZodNumber;
              },
              "strip",
              z.ZodTypeAny,
              {
                x: number;
                y: number;
              },
              {
                x: number;
                y: number;
              }
            >;
            heading: z.ZodNumber;
            category: z.ZodEnum<["Fortifications", "Heliports"]>;
            shapeName: z.ZodString;
            type: z.ZodString;
          },
          "strip",
          z.ZodTypeAny,
          {
            name: string;
            type: string;
            alive: boolean;
            category: "Fortifications" | "Heliports";
            offset: {
              x: number;
              y: number;
            };
            heading: number;
            shapeName: string;
            destroyedTime?: number | undefined;
            repairScore?: number | undefined;
          },
          {
            name: string;
            type: string;
            alive: boolean;
            category: "Fortifications" | "Heliports";
            offset: {
              x: number;
              y: number;
            };
            heading: number;
            shapeName: string;
            destroyedTime?: number | undefined;
            repairScore?: number | undefined;
          }
        >,
        "many"
      >;
      type: z.ZodEnum<["Barrack", "Depot"]>;
      deploymentScore: z.ZodNumber;
    },
    "strip",
    z.ZodTypeAny,
    {
      id: string;
      name: string;
      type: "Barrack" | "Depot";
      position: {
        x: number;
        y: number;
      };
      state: "active" | "destroyed" | "deactivated";
      objectiveName: string;
      groupId: number;
      buildings: {
        name: string;
        type: string;
        alive: boolean;
        category: "Fortifications" | "Heliports";
        offset: {
          x: number;
          y: number;
        };
        heading: number;
        shapeName: string;
        destroyedTime?: number | undefined;
        repairScore?: number | undefined;
      }[];
      deploymentScore: number;
    },
    {
      id: string;
      name: string;
      type: "Barrack" | "Depot";
      position: {
        x: number;
        y: number;
      };
      state: "active" | "destroyed" | "deactivated";
      objectiveName: string;
      groupId: number;
      buildings: {
        name: string;
        type: string;
        alive: boolean;
        category: "Fortifications" | "Heliports";
        offset: {
          x: number;
          y: number;
        };
        heading: number;
        shapeName: string;
        destroyedTime?: number | undefined;
        repairScore?: number | undefined;
      }[];
      deploymentScore: number;
    }
  >;
  const structure: z.ZodUnion<
    [
      z.ZodObject<
        {
          id: z.ZodString;
          name: z.ZodString;
          position: z.ZodObject<
            {
              x: z.ZodNumber;
              y: z.ZodNumber;
            },
            "strip",
            z.ZodTypeAny,
            {
              x: number;
              y: number;
            },
            {
              x: number;
              y: number;
            }
          >;
          state: z.ZodEnum<["active", "destroyed", "deactivated"]>;
          objectiveName: z.ZodString;
          groupId: z.ZodNumber;
          buildings: z.ZodArray<
            z.ZodObject<
              {
                name: z.ZodString;
                alive: z.ZodBoolean;
                destroyedTime: z.ZodOptional<z.ZodNumber>;
                repairScore: z.ZodOptional<z.ZodNumber>;
                offset: z.ZodObject<
                  {
                    x: z.ZodNumber;
                    y: z.ZodNumber;
                  },
                  "strip",
                  z.ZodTypeAny,
                  {
                    x: number;
                    y: number;
                  },
                  {
                    x: number;
                    y: number;
                  }
                >;
                heading: z.ZodNumber;
                category: z.ZodEnum<["Fortifications", "Heliports"]>;
                shapeName: z.ZodString;
                type: z.ZodString;
              },
              "strip",
              z.ZodTypeAny,
              {
                name: string;
                type: string;
                alive: boolean;
                category: "Fortifications" | "Heliports";
                offset: {
                  x: number;
                  y: number;
                };
                heading: number;
                shapeName: string;
                destroyedTime?: number | undefined;
                repairScore?: number | undefined;
              },
              {
                name: string;
                type: string;
                alive: boolean;
                category: "Fortifications" | "Heliports";
                offset: {
                  x: number;
                  y: number;
                };
                heading: number;
                shapeName: string;
                destroyedTime?: number | undefined;
                repairScore?: number | undefined;
              }
            >,
            "many"
          >;
          type: z.ZodEnum<
            [
              "Ammo Depot",
              "Farp",
              "Command Center",
              "Power Plant",
              "Fuel Storage",
              "Hospital",
              "Prison"
            ]
          >;
        },
        "strip",
        z.ZodTypeAny,
        {
          id: string;
          name: string;
          type:
            | "Ammo Depot"
            | "Farp"
            | "Command Center"
            | "Power Plant"
            | "Fuel Storage"
            | "Hospital"
            | "Prison";
          position: {
            x: number;
            y: number;
          };
          state: "active" | "destroyed" | "deactivated";
          objectiveName: string;
          groupId: number;
          buildings: {
            name: string;
            type: string;
            alive: boolean;
            category: "Fortifications" | "Heliports";
            offset: {
              x: number;
              y: number;
            };
            heading: number;
            shapeName: string;
            destroyedTime?: number | undefined;
            repairScore?: number | undefined;
          }[];
        },
        {
          id: string;
          name: string;
          type:
            | "Ammo Depot"
            | "Farp"
            | "Command Center"
            | "Power Plant"
            | "Fuel Storage"
            | "Hospital"
            | "Prison";
          position: {
            x: number;
            y: number;
          };
          state: "active" | "destroyed" | "deactivated";
          objectiveName: string;
          groupId: number;
          buildings: {
            name: string;
            type: string;
            alive: boolean;
            category: "Fortifications" | "Heliports";
            offset: {
              x: number;
              y: number;
            };
            heading: number;
            shapeName: string;
            destroyedTime?: number | undefined;
            repairScore?: number | undefined;
          }[];
        }
      >,
      z.ZodObject<
        {
          id: z.ZodString;
          name: z.ZodString;
          position: z.ZodObject<
            {
              x: z.ZodNumber;
              y: z.ZodNumber;
            },
            "strip",
            z.ZodTypeAny,
            {
              x: number;
              y: number;
            },
            {
              x: number;
              y: number;
            }
          >;
          state: z.ZodEnum<["active", "destroyed", "deactivated"]>;
          objectiveName: z.ZodString;
          groupId: z.ZodNumber;
          buildings: z.ZodArray<
            z.ZodObject<
              {
                name: z.ZodString;
                alive: z.ZodBoolean;
                destroyedTime: z.ZodOptional<z.ZodNumber>;
                repairScore: z.ZodOptional<z.ZodNumber>;
                offset: z.ZodObject<
                  {
                    x: z.ZodNumber;
                    y: z.ZodNumber;
                  },
                  "strip",
                  z.ZodTypeAny,
                  {
                    x: number;
                    y: number;
                  },
                  {
                    x: number;
                    y: number;
                  }
                >;
                heading: z.ZodNumber;
                category: z.ZodEnum<["Fortifications", "Heliports"]>;
                shapeName: z.ZodString;
                type: z.ZodString;
              },
              "strip",
              z.ZodTypeAny,
              {
                name: string;
                type: string;
                alive: boolean;
                category: "Fortifications" | "Heliports";
                offset: {
                  x: number;
                  y: number;
                };
                heading: number;
                shapeName: string;
                destroyedTime?: number | undefined;
                repairScore?: number | undefined;
              },
              {
                name: string;
                type: string;
                alive: boolean;
                category: "Fortifications" | "Heliports";
                offset: {
                  x: number;
                  y: number;
                };
                heading: number;
                shapeName: string;
                destroyedTime?: number | undefined;
                repairScore?: number | undefined;
              }
            >,
            "many"
          >;
          type: z.ZodEnum<["Barrack", "Depot"]>;
          deploymentScore: z.ZodNumber;
        },
        "strip",
        z.ZodTypeAny,
        {
          id: string;
          name: string;
          type: "Barrack" | "Depot";
          position: {
            x: number;
            y: number;
          };
          state: "active" | "destroyed" | "deactivated";
          objectiveName: string;
          groupId: number;
          buildings: {
            name: string;
            type: string;
            alive: boolean;
            category: "Fortifications" | "Heliports";
            offset: {
              x: number;
              y: number;
            };
            heading: number;
            shapeName: string;
            destroyedTime?: number | undefined;
            repairScore?: number | undefined;
          }[];
          deploymentScore: number;
        },
        {
          id: string;
          name: string;
          type: "Barrack" | "Depot";
          position: {
            x: number;
            y: number;
          };
          state: "active" | "destroyed" | "deactivated";
          objectiveName: string;
          groupId: number;
          buildings: {
            name: string;
            type: string;
            alive: boolean;
            category: "Fortifications" | "Heliports";
            offset: {
              x: number;
              y: number;
            };
            heading: number;
            shapeName: string;
            destroyedTime?: number | undefined;
            repairScore?: number | undefined;
          }[];
          deploymentScore: number;
        }
      >
    ]
  >;
  const shipGroup: z.ZodObject<
    {
      name: z.ZodString;
      position: z.ZodObject<
        {
          x: z.ZodNumber;
          y: z.ZodNumber;
        },
        "strip",
        z.ZodTypeAny,
        {
          x: number;
          y: number;
        },
        {
          x: number;
          y: number;
        }
      >;
    },
    "strip",
    z.ZodTypeAny,
    {
      name: string;
      position: {
        x: number;
        y: number;
      };
    },
    {
      name: string;
      position: {
        x: number;
        y: number;
      };
    }
  >;
  const downedPilot: z.ZodObject<
    {
      id: z.ZodString;
      name: z.ZodString;
      position: z.ZodObject<
        {
          x: z.ZodNumber;
          y: z.ZodNumber;
        },
        "strip",
        z.ZodTypeAny,
        {
          x: number;
          y: number;
        },
        {
          x: number;
          y: number;
        }
      >;
      time: z.ZodNumber;
    },
    "strip",
    z.ZodTypeAny,
    {
      id: string;
      name: string;
      time: number;
      position: {
        x: number;
        y: number;
      };
    },
    {
      id: string;
      name: string;
      time: number;
      position: {
        x: number;
        y: number;
      };
    }
  >;
  const campaignFaction: z.ZodObject<
    {
      name: z.ZodString;
      aircraftTypes: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
      countryName: z.ZodString;
      year: z.ZodOptional<z.ZodNumber>;
      playable: z.ZodBoolean;
      templateName: z.ZodString;
      carrierName: z.ZodOptional<z.ZodString>;
      created: z.ZodOptional<z.ZodDate>;
      airdromeNames: z.ZodArray<z.ZodString, "many">;
      inventory: z.ZodObject<
        {
          aircrafts: z.ZodRecord<
            z.ZodString,
            z.ZodObject<
              {
                id: z.ZodString;
                aircraftType: z.ZodString;
                state: z.ZodEnum<
                  [
                    "idle",
                    "en route",
                    "on station",
                    "combat",
                    "rtb",
                    "waiting",
                    "maintenance"
                  ]
                >;
                maintenanceEndTime: z.ZodOptional<z.ZodNumber>;
                a2GWeaponReadyTimer: z.ZodOptional<z.ZodNumber>;
                a2AWeaponReadyTimer: z.ZodOptional<z.ZodNumber>;
                availableTasks: z.ZodArray<z.ZodString, "many">;
                alive: z.ZodBoolean;
                destroyedTime: z.ZodOptional<z.ZodNumber>;
                onboardNumber: z.ZodString;
                homeBase: z.ZodObject<
                  {
                    type: z.ZodEnum<["airdrome", "farp", "carrier"]>;
                    name: z.ZodString;
                  },
                  "strip",
                  z.ZodTypeAny,
                  {
                    name: string;
                    type: "airdrome" | "farp" | "carrier";
                  },
                  {
                    name: string;
                    type: "airdrome" | "farp" | "carrier";
                  }
                >;
                loadout: z.ZodObject<
                  {
                    task: z.ZodUnion<
                      [
                        z.ZodEnum<
                          [
                            "DEAD",
                            "AWACS",
                            "CAP",
                            "Escort",
                            "Pinpoint Strike",
                            "CAS",
                            "CSAR"
                          ]
                        >,
                        z.ZodLiteral<"default">
                      ]
                    >;
                    name: z.ZodString;
                    displayName: z.ZodString;
                    pylons: z.ZodArray<
                      z.ZodObject<
                        {
                          CLSID: z.ZodString;
                          num: z.ZodNumber;
                          total: z.ZodNumber;
                          count: z.ZodNumber;
                          type: z.ZodEnum<
                            [
                              "Fuel Tank",
                              "Targeting Pod",
                              "Gun Pod",
                              "ECM Pod",
                              "Other",
                              "Weapon"
                            ]
                          >;
                          weapon: z.ZodOptional<
                            z.ZodUnion<
                              [
                                z.ZodObject<
                                  {
                                    type: z.ZodEnum<
                                      [
                                        "infrared",
                                        "active radar",
                                        "semi-active radar"
                                      ]
                                    >;
                                    range: z.ZodNumber;
                                    rangeType: z.ZodEnum<
                                      ["short", "medium", "long"]
                                    >;
                                    name: z.ZodString;
                                    displayName: z.ZodString;
                                    year: z.ZodOptional<z.ZodNumber>;
                                  },
                                  "strip",
                                  z.ZodTypeAny,
                                  {
                                    name: string;
                                    type:
                                      | "infrared"
                                      | "active radar"
                                      | "semi-active radar";
                                    displayName: string;
                                    range: number;
                                    rangeType: "short" | "medium" | "long";
                                    year?: number | undefined;
                                  },
                                  {
                                    name: string;
                                    type:
                                      | "infrared"
                                      | "active radar"
                                      | "semi-active radar";
                                    displayName: string;
                                    range: number;
                                    rangeType: "short" | "medium" | "long";
                                    year?: number | undefined;
                                  }
                                >,
                                z.ZodObject<
                                  {
                                    type: z.ZodEnum<
                                      [
                                        "Bomb",
                                        "Cluster",
                                        "Rocket",
                                        "Laser Guided Bomb",
                                        "GPS Guided Bomb",
                                        "TV Guided Bomb",
                                        "Laser Guided Rocket"
                                      ]
                                    >;
                                    target: z.ZodEnum<
                                      [
                                        "Anti-Armor",
                                        "Hard Target",
                                        "Medium Target",
                                        "Soft Target",
                                        "Ship",
                                        "Radar",
                                        "Light Structure",
                                        "Medium Structure",
                                        "Hard Structure"
                                      ]
                                    >;
                                    weight: z.ZodOptional<z.ZodNumber>;
                                    highDrag: z.ZodOptional<z.ZodBoolean>;
                                    name: z.ZodString;
                                    displayName: z.ZodString;
                                    year: z.ZodOptional<z.ZodNumber>;
                                  },
                                  "strip",
                                  z.ZodTypeAny,
                                  {
                                    name: string;
                                    type:
                                      | "Bomb"
                                      | "Cluster"
                                      | "Rocket"
                                      | "Laser Guided Bomb"
                                      | "GPS Guided Bomb"
                                      | "TV Guided Bomb"
                                      | "Laser Guided Rocket";
                                    target:
                                      | "Anti-Armor"
                                      | "Hard Target"
                                      | "Medium Target"
                                      | "Soft Target"
                                      | "Ship"
                                      | "Radar"
                                      | "Light Structure"
                                      | "Medium Structure"
                                      | "Hard Structure";
                                    displayName: string;
                                    weight?: number | undefined;
                                    highDrag?: boolean | undefined;
                                    year?: number | undefined;
                                  },
                                  {
                                    name: string;
                                    type:
                                      | "Bomb"
                                      | "Cluster"
                                      | "Rocket"
                                      | "Laser Guided Bomb"
                                      | "GPS Guided Bomb"
                                      | "TV Guided Bomb"
                                      | "Laser Guided Rocket";
                                    target:
                                      | "Anti-Armor"
                                      | "Hard Target"
                                      | "Medium Target"
                                      | "Soft Target"
                                      | "Ship"
                                      | "Radar"
                                      | "Light Structure"
                                      | "Medium Structure"
                                      | "Hard Structure";
                                    displayName: string;
                                    weight?: number | undefined;
                                    highDrag?: boolean | undefined;
                                    year?: number | undefined;
                                  }
                                >,
                                z.ZodObject<
                                  {
                                    type: z.ZodEnum<
                                      [
                                        "Missile",
                                        "Glide Bomb",
                                        "Laser Guided Missile",
                                        "Cruise Missile"
                                      ]
                                    >;
                                    range: z.ZodNumber;
                                    targets: z.ZodArray<
                                      z.ZodEnum<
                                        [
                                          "Anti-Armor",
                                          "Hard Target",
                                          "Medium Target",
                                          "Soft Target",
                                          "Ship",
                                          "Radar",
                                          "Light Structure",
                                          "Medium Structure",
                                          "Hard Structure"
                                        ]
                                      >,
                                      "many"
                                    >;
                                    name: z.ZodString;
                                    displayName: z.ZodString;
                                    year: z.ZodOptional<z.ZodNumber>;
                                  },
                                  "strip",
                                  z.ZodTypeAny,
                                  {
                                    name: string;
                                    type:
                                      | "Missile"
                                      | "Glide Bomb"
                                      | "Laser Guided Missile"
                                      | "Cruise Missile";
                                    displayName: string;
                                    range: number;
                                    targets: (
                                      | "Anti-Armor"
                                      | "Hard Target"
                                      | "Medium Target"
                                      | "Soft Target"
                                      | "Ship"
                                      | "Radar"
                                      | "Light Structure"
                                      | "Medium Structure"
                                      | "Hard Structure"
                                    )[];
                                    year?: number | undefined;
                                  },
                                  {
                                    name: string;
                                    type:
                                      | "Missile"
                                      | "Glide Bomb"
                                      | "Laser Guided Missile"
                                      | "Cruise Missile";
                                    displayName: string;
                                    range: number;
                                    targets: (
                                      | "Anti-Armor"
                                      | "Hard Target"
                                      | "Medium Target"
                                      | "Soft Target"
                                      | "Ship"
                                      | "Radar"
                                      | "Light Structure"
                                      | "Medium Structure"
                                      | "Hard Structure"
                                    )[];
                                    year?: number | undefined;
                                  }
                                >
                              ]
                            >
                          >;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          type:
                            | "Fuel Tank"
                            | "Targeting Pod"
                            | "Gun Pod"
                            | "ECM Pod"
                            | "Other"
                            | "Weapon";
                          CLSID: string;
                          num: number;
                          total: number;
                          count: number;
                          weapon?:
                            | {
                                name: string;
                                type:
                                  | "infrared"
                                  | "active radar"
                                  | "semi-active radar";
                                displayName: string;
                                range: number;
                                rangeType: "short" | "medium" | "long";
                                year?: number | undefined;
                              }
                            | {
                                name: string;
                                type:
                                  | "Bomb"
                                  | "Cluster"
                                  | "Rocket"
                                  | "Laser Guided Bomb"
                                  | "GPS Guided Bomb"
                                  | "TV Guided Bomb"
                                  | "Laser Guided Rocket";
                                target:
                                  | "Anti-Armor"
                                  | "Hard Target"
                                  | "Medium Target"
                                  | "Soft Target"
                                  | "Ship"
                                  | "Radar"
                                  | "Light Structure"
                                  | "Medium Structure"
                                  | "Hard Structure";
                                displayName: string;
                                weight?: number | undefined;
                                highDrag?: boolean | undefined;
                                year?: number | undefined;
                              }
                            | {
                                name: string;
                                type:
                                  | "Missile"
                                  | "Glide Bomb"
                                  | "Laser Guided Missile"
                                  | "Cruise Missile";
                                displayName: string;
                                range: number;
                                targets: (
                                  | "Anti-Armor"
                                  | "Hard Target"
                                  | "Medium Target"
                                  | "Soft Target"
                                  | "Ship"
                                  | "Radar"
                                  | "Light Structure"
                                  | "Medium Structure"
                                  | "Hard Structure"
                                )[];
                                year?: number | undefined;
                              }
                            | undefined;
                        },
                        {
                          type:
                            | "Fuel Tank"
                            | "Targeting Pod"
                            | "Gun Pod"
                            | "ECM Pod"
                            | "Other"
                            | "Weapon";
                          CLSID: string;
                          num: number;
                          total: number;
                          count: number;
                          weapon?:
                            | {
                                name: string;
                                type:
                                  | "infrared"
                                  | "active radar"
                                  | "semi-active radar";
                                displayName: string;
                                range: number;
                                rangeType: "short" | "medium" | "long";
                                year?: number | undefined;
                              }
                            | {
                                name: string;
                                type:
                                  | "Bomb"
                                  | "Cluster"
                                  | "Rocket"
                                  | "Laser Guided Bomb"
                                  | "GPS Guided Bomb"
                                  | "TV Guided Bomb"
                                  | "Laser Guided Rocket";
                                target:
                                  | "Anti-Armor"
                                  | "Hard Target"
                                  | "Medium Target"
                                  | "Soft Target"
                                  | "Ship"
                                  | "Radar"
                                  | "Light Structure"
                                  | "Medium Structure"
                                  | "Hard Structure";
                                displayName: string;
                                weight?: number | undefined;
                                highDrag?: boolean | undefined;
                                year?: number | undefined;
                              }
                            | {
                                name: string;
                                type:
                                  | "Missile"
                                  | "Glide Bomb"
                                  | "Laser Guided Missile"
                                  | "Cruise Missile";
                                displayName: string;
                                range: number;
                                targets: (
                                  | "Anti-Armor"
                                  | "Hard Target"
                                  | "Medium Target"
                                  | "Soft Target"
                                  | "Ship"
                                  | "Radar"
                                  | "Light Structure"
                                  | "Medium Structure"
                                  | "Hard Structure"
                                )[];
                                year?: number | undefined;
                              }
                            | undefined;
                        }
                      >,
                      "many"
                    >;
                  },
                  "strip",
                  z.ZodTypeAny,
                  {
                    name: string;
                    task:
                      | "DEAD"
                      | "AWACS"
                      | "CAP"
                      | "Escort"
                      | "Pinpoint Strike"
                      | "CAS"
                      | "CSAR"
                      | "default";
                    displayName: string;
                    pylons: {
                      type:
                        | "Fuel Tank"
                        | "Targeting Pod"
                        | "Gun Pod"
                        | "ECM Pod"
                        | "Other"
                        | "Weapon";
                      CLSID: string;
                      num: number;
                      total: number;
                      count: number;
                      weapon?:
                        | {
                            name: string;
                            type:
                              | "infrared"
                              | "active radar"
                              | "semi-active radar";
                            displayName: string;
                            range: number;
                            rangeType: "short" | "medium" | "long";
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Bomb"
                              | "Cluster"
                              | "Rocket"
                              | "Laser Guided Bomb"
                              | "GPS Guided Bomb"
                              | "TV Guided Bomb"
                              | "Laser Guided Rocket";
                            target:
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure";
                            displayName: string;
                            weight?: number | undefined;
                            highDrag?: boolean | undefined;
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Missile"
                              | "Glide Bomb"
                              | "Laser Guided Missile"
                              | "Cruise Missile";
                            displayName: string;
                            range: number;
                            targets: (
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure"
                            )[];
                            year?: number | undefined;
                          }
                        | undefined;
                    }[];
                  },
                  {
                    name: string;
                    task:
                      | "DEAD"
                      | "AWACS"
                      | "CAP"
                      | "Escort"
                      | "Pinpoint Strike"
                      | "CAS"
                      | "CSAR"
                      | "default";
                    displayName: string;
                    pylons: {
                      type:
                        | "Fuel Tank"
                        | "Targeting Pod"
                        | "Gun Pod"
                        | "ECM Pod"
                        | "Other"
                        | "Weapon";
                      CLSID: string;
                      num: number;
                      total: number;
                      count: number;
                      weapon?:
                        | {
                            name: string;
                            type:
                              | "infrared"
                              | "active radar"
                              | "semi-active radar";
                            displayName: string;
                            range: number;
                            rangeType: "short" | "medium" | "long";
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Bomb"
                              | "Cluster"
                              | "Rocket"
                              | "Laser Guided Bomb"
                              | "GPS Guided Bomb"
                              | "TV Guided Bomb"
                              | "Laser Guided Rocket";
                            target:
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure";
                            displayName: string;
                            weight?: number | undefined;
                            highDrag?: boolean | undefined;
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Missile"
                              | "Glide Bomb"
                              | "Laser Guided Missile"
                              | "Cruise Missile";
                            displayName: string;
                            range: number;
                            targets: (
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure"
                            )[];
                            year?: number | undefined;
                          }
                        | undefined;
                    }[];
                  }
                >;
                disabled: z.ZodOptional<z.ZodBoolean>;
              },
              "strip",
              z.ZodTypeAny,
              {
                id: string;
                aircraftType: string;
                state:
                  | "idle"
                  | "en route"
                  | "on station"
                  | "combat"
                  | "rtb"
                  | "waiting"
                  | "maintenance";
                availableTasks: string[];
                alive: boolean;
                onboardNumber: string;
                homeBase: {
                  name: string;
                  type: "airdrome" | "farp" | "carrier";
                };
                loadout: {
                  name: string;
                  task:
                    | "DEAD"
                    | "AWACS"
                    | "CAP"
                    | "Escort"
                    | "Pinpoint Strike"
                    | "CAS"
                    | "CSAR"
                    | "default";
                  displayName: string;
                  pylons: {
                    type:
                      | "Fuel Tank"
                      | "Targeting Pod"
                      | "Gun Pod"
                      | "ECM Pod"
                      | "Other"
                      | "Weapon";
                    CLSID: string;
                    num: number;
                    total: number;
                    count: number;
                    weapon?:
                      | {
                          name: string;
                          type:
                            | "infrared"
                            | "active radar"
                            | "semi-active radar";
                          displayName: string;
                          range: number;
                          rangeType: "short" | "medium" | "long";
                          year?: number | undefined;
                        }
                      | {
                          name: string;
                          type:
                            | "Bomb"
                            | "Cluster"
                            | "Rocket"
                            | "Laser Guided Bomb"
                            | "GPS Guided Bomb"
                            | "TV Guided Bomb"
                            | "Laser Guided Rocket";
                          target:
                            | "Anti-Armor"
                            | "Hard Target"
                            | "Medium Target"
                            | "Soft Target"
                            | "Ship"
                            | "Radar"
                            | "Light Structure"
                            | "Medium Structure"
                            | "Hard Structure";
                          displayName: string;
                          weight?: number | undefined;
                          highDrag?: boolean | undefined;
                          year?: number | undefined;
                        }
                      | {
                          name: string;
                          type:
                            | "Missile"
                            | "Glide Bomb"
                            | "Laser Guided Missile"
                            | "Cruise Missile";
                          displayName: string;
                          range: number;
                          targets: (
                            | "Anti-Armor"
                            | "Hard Target"
                            | "Medium Target"
                            | "Soft Target"
                            | "Ship"
                            | "Radar"
                            | "Light Structure"
                            | "Medium Structure"
                            | "Hard Structure"
                          )[];
                          year?: number | undefined;
                        }
                      | undefined;
                  }[];
                };
                maintenanceEndTime?: number | undefined;
                a2GWeaponReadyTimer?: number | undefined;
                a2AWeaponReadyTimer?: number | undefined;
                destroyedTime?: number | undefined;
                disabled?: boolean | undefined;
              },
              {
                id: string;
                aircraftType: string;
                state:
                  | "idle"
                  | "en route"
                  | "on station"
                  | "combat"
                  | "rtb"
                  | "waiting"
                  | "maintenance";
                availableTasks: string[];
                alive: boolean;
                onboardNumber: string;
                homeBase: {
                  name: string;
                  type: "airdrome" | "farp" | "carrier";
                };
                loadout: {
                  name: string;
                  task:
                    | "DEAD"
                    | "AWACS"
                    | "CAP"
                    | "Escort"
                    | "Pinpoint Strike"
                    | "CAS"
                    | "CSAR"
                    | "default";
                  displayName: string;
                  pylons: {
                    type:
                      | "Fuel Tank"
                      | "Targeting Pod"
                      | "Gun Pod"
                      | "ECM Pod"
                      | "Other"
                      | "Weapon";
                    CLSID: string;
                    num: number;
                    total: number;
                    count: number;
                    weapon?:
                      | {
                          name: string;
                          type:
                            | "infrared"
                            | "active radar"
                            | "semi-active radar";
                          displayName: string;
                          range: number;
                          rangeType: "short" | "medium" | "long";
                          year?: number | undefined;
                        }
                      | {
                          name: string;
                          type:
                            | "Bomb"
                            | "Cluster"
                            | "Rocket"
                            | "Laser Guided Bomb"
                            | "GPS Guided Bomb"
                            | "TV Guided Bomb"
                            | "Laser Guided Rocket";
                          target:
                            | "Anti-Armor"
                            | "Hard Target"
                            | "Medium Target"
                            | "Soft Target"
                            | "Ship"
                            | "Radar"
                            | "Light Structure"
                            | "Medium Structure"
                            | "Hard Structure";
                          displayName: string;
                          weight?: number | undefined;
                          highDrag?: boolean | undefined;
                          year?: number | undefined;
                        }
                      | {
                          name: string;
                          type:
                            | "Missile"
                            | "Glide Bomb"
                            | "Laser Guided Missile"
                            | "Cruise Missile";
                          displayName: string;
                          range: number;
                          targets: (
                            | "Anti-Armor"
                            | "Hard Target"
                            | "Medium Target"
                            | "Soft Target"
                            | "Ship"
                            | "Radar"
                            | "Light Structure"
                            | "Medium Structure"
                            | "Hard Structure"
                          )[];
                          year?: number | undefined;
                        }
                      | undefined;
                  }[];
                };
                maintenanceEndTime?: number | undefined;
                a2GWeaponReadyTimer?: number | undefined;
                a2AWeaponReadyTimer?: number | undefined;
                destroyedTime?: number | undefined;
                disabled?: boolean | undefined;
              }
            >
          >;
          groundUnits: z.ZodRecord<
            z.ZodString,
            z.ZodObject<
              {
                id: z.ZodString;
                name: z.ZodString;
                displayName: z.ZodString;
                category: z.ZodString;
                alive: z.ZodBoolean;
                vehicleTypes: z.ZodArray<
                  z.ZodEnum<
                    [
                      "MBT",
                      "Track Radar",
                      "Search Radar",
                      "SAM Launcher",
                      "Unarmored",
                      "Armored",
                      "IFV",
                      "SHORAD",
                      "Transport",
                      "Power Generator",
                      "Refuel",
                      "Control Unit",
                      "EW",
                      "Infantry"
                    ]
                  >,
                  "many"
                >;
                destroyedTime: z.ZodOptional<z.ZodNumber>;
                state: z.ZodEnum<["idle", "en route", "on objective"]>;
              },
              "strip",
              z.ZodTypeAny,
              {
                id: string;
                name: string;
                state: "idle" | "en route" | "on objective";
                alive: boolean;
                displayName: string;
                category: string;
                vehicleTypes: (
                  | "MBT"
                  | "Track Radar"
                  | "Search Radar"
                  | "SAM Launcher"
                  | "Unarmored"
                  | "Armored"
                  | "IFV"
                  | "SHORAD"
                  | "Transport"
                  | "Power Generator"
                  | "Refuel"
                  | "Control Unit"
                  | "EW"
                  | "Infantry"
                )[];
                destroyedTime?: number | undefined;
              },
              {
                id: string;
                name: string;
                state: "idle" | "en route" | "on objective";
                alive: boolean;
                displayName: string;
                category: string;
                vehicleTypes: (
                  | "MBT"
                  | "Track Radar"
                  | "Search Radar"
                  | "SAM Launcher"
                  | "Unarmored"
                  | "Armored"
                  | "IFV"
                  | "SHORAD"
                  | "Transport"
                  | "Power Generator"
                  | "Refuel"
                  | "Control Unit"
                  | "EW"
                  | "Infantry"
                )[];
                destroyedTime?: number | undefined;
              }
            >
          >;
        },
        "strip",
        z.ZodTypeAny,
        {
          aircrafts: Record<
            string,
            {
              id: string;
              aircraftType: string;
              state:
                | "idle"
                | "en route"
                | "on station"
                | "combat"
                | "rtb"
                | "waiting"
                | "maintenance";
              availableTasks: string[];
              alive: boolean;
              onboardNumber: string;
              homeBase: {
                name: string;
                type: "airdrome" | "farp" | "carrier";
              };
              loadout: {
                name: string;
                task:
                  | "DEAD"
                  | "AWACS"
                  | "CAP"
                  | "Escort"
                  | "Pinpoint Strike"
                  | "CAS"
                  | "CSAR"
                  | "default";
                displayName: string;
                pylons: {
                  type:
                    | "Fuel Tank"
                    | "Targeting Pod"
                    | "Gun Pod"
                    | "ECM Pod"
                    | "Other"
                    | "Weapon";
                  CLSID: string;
                  num: number;
                  total: number;
                  count: number;
                  weapon?:
                    | {
                        name: string;
                        type: "infrared" | "active radar" | "semi-active radar";
                        displayName: string;
                        range: number;
                        rangeType: "short" | "medium" | "long";
                        year?: number | undefined;
                      }
                    | {
                        name: string;
                        type:
                          | "Bomb"
                          | "Cluster"
                          | "Rocket"
                          | "Laser Guided Bomb"
                          | "GPS Guided Bomb"
                          | "TV Guided Bomb"
                          | "Laser Guided Rocket";
                        target:
                          | "Anti-Armor"
                          | "Hard Target"
                          | "Medium Target"
                          | "Soft Target"
                          | "Ship"
                          | "Radar"
                          | "Light Structure"
                          | "Medium Structure"
                          | "Hard Structure";
                        displayName: string;
                        weight?: number | undefined;
                        highDrag?: boolean | undefined;
                        year?: number | undefined;
                      }
                    | {
                        name: string;
                        type:
                          | "Missile"
                          | "Glide Bomb"
                          | "Laser Guided Missile"
                          | "Cruise Missile";
                        displayName: string;
                        range: number;
                        targets: (
                          | "Anti-Armor"
                          | "Hard Target"
                          | "Medium Target"
                          | "Soft Target"
                          | "Ship"
                          | "Radar"
                          | "Light Structure"
                          | "Medium Structure"
                          | "Hard Structure"
                        )[];
                        year?: number | undefined;
                      }
                    | undefined;
                }[];
              };
              maintenanceEndTime?: number | undefined;
              a2GWeaponReadyTimer?: number | undefined;
              a2AWeaponReadyTimer?: number | undefined;
              destroyedTime?: number | undefined;
              disabled?: boolean | undefined;
            }
          >;
          groundUnits: Record<
            string,
            {
              id: string;
              name: string;
              state: "idle" | "en route" | "on objective";
              alive: boolean;
              displayName: string;
              category: string;
              vehicleTypes: (
                | "MBT"
                | "Track Radar"
                | "Search Radar"
                | "SAM Launcher"
                | "Unarmored"
                | "Armored"
                | "IFV"
                | "SHORAD"
                | "Transport"
                | "Power Generator"
                | "Refuel"
                | "Control Unit"
                | "EW"
                | "Infantry"
              )[];
              destroyedTime?: number | undefined;
            }
          >;
        },
        {
          aircrafts: Record<
            string,
            {
              id: string;
              aircraftType: string;
              state:
                | "idle"
                | "en route"
                | "on station"
                | "combat"
                | "rtb"
                | "waiting"
                | "maintenance";
              availableTasks: string[];
              alive: boolean;
              onboardNumber: string;
              homeBase: {
                name: string;
                type: "airdrome" | "farp" | "carrier";
              };
              loadout: {
                name: string;
                task:
                  | "DEAD"
                  | "AWACS"
                  | "CAP"
                  | "Escort"
                  | "Pinpoint Strike"
                  | "CAS"
                  | "CSAR"
                  | "default";
                displayName: string;
                pylons: {
                  type:
                    | "Fuel Tank"
                    | "Targeting Pod"
                    | "Gun Pod"
                    | "ECM Pod"
                    | "Other"
                    | "Weapon";
                  CLSID: string;
                  num: number;
                  total: number;
                  count: number;
                  weapon?:
                    | {
                        name: string;
                        type: "infrared" | "active radar" | "semi-active radar";
                        displayName: string;
                        range: number;
                        rangeType: "short" | "medium" | "long";
                        year?: number | undefined;
                      }
                    | {
                        name: string;
                        type:
                          | "Bomb"
                          | "Cluster"
                          | "Rocket"
                          | "Laser Guided Bomb"
                          | "GPS Guided Bomb"
                          | "TV Guided Bomb"
                          | "Laser Guided Rocket";
                        target:
                          | "Anti-Armor"
                          | "Hard Target"
                          | "Medium Target"
                          | "Soft Target"
                          | "Ship"
                          | "Radar"
                          | "Light Structure"
                          | "Medium Structure"
                          | "Hard Structure";
                        displayName: string;
                        weight?: number | undefined;
                        highDrag?: boolean | undefined;
                        year?: number | undefined;
                      }
                    | {
                        name: string;
                        type:
                          | "Missile"
                          | "Glide Bomb"
                          | "Laser Guided Missile"
                          | "Cruise Missile";
                        displayName: string;
                        range: number;
                        targets: (
                          | "Anti-Armor"
                          | "Hard Target"
                          | "Medium Target"
                          | "Soft Target"
                          | "Ship"
                          | "Radar"
                          | "Light Structure"
                          | "Medium Structure"
                          | "Hard Structure"
                        )[];
                        year?: number | undefined;
                      }
                    | undefined;
                }[];
              };
              maintenanceEndTime?: number | undefined;
              a2GWeaponReadyTimer?: number | undefined;
              a2AWeaponReadyTimer?: number | undefined;
              destroyedTime?: number | undefined;
              disabled?: boolean | undefined;
            }
          >;
          groundUnits: Record<
            string,
            {
              id: string;
              name: string;
              state: "idle" | "en route" | "on objective";
              alive: boolean;
              displayName: string;
              category: string;
              vehicleTypes: (
                | "MBT"
                | "Track Radar"
                | "Search Radar"
                | "SAM Launcher"
                | "Unarmored"
                | "Armored"
                | "IFV"
                | "SHORAD"
                | "Transport"
                | "Power Generator"
                | "Refuel"
                | "Control Unit"
                | "EW"
                | "Infantry"
              )[];
              destroyedTime?: number | undefined;
            }
          >;
        }
      >;
      packages: z.ZodArray<
        z.ZodObject<
          {
            id: z.ZodString;
            startTime: z.ZodNumber;
            taskEndTime: z.ZodNumber;
            endTime: z.ZodNumber;
            task: z.ZodEnum<
              [
                "DEAD",
                "AWACS",
                "CAP",
                "Escort",
                "Pinpoint Strike",
                "CAS",
                "CSAR"
              ]
            >;
            flightGroups: z.ZodArray<
              z.ZodObject<
                {
                  id: z.ZodString;
                  name: z.ZodString;
                  units: z.ZodArray<
                    z.ZodObject<
                      {
                        id: z.ZodString;
                        name: z.ZodString;
                        callSign: z.ZodUnion<
                          [
                            z.ZodNumber,
                            z.ZodObject<
                              {
                                1: z.ZodNumber;
                                2: z.ZodNumber;
                                3: z.ZodNumber;
                                name: z.ZodString;
                              },
                              "strip",
                              z.ZodTypeAny,
                              {
                                name: string;
                                2: number;
                                1: number;
                                3: number;
                              },
                              {
                                name: string;
                                2: number;
                                1: number;
                                3: number;
                              }
                            >
                          ]
                        >;
                        client: z.ZodBoolean;
                      },
                      "strip",
                      z.ZodTypeAny,
                      {
                        id: string;
                        name: string;
                        callSign: (
                          | number
                          | {
                              name: string;
                              2: number;
                              1: number;
                              3: number;
                            }
                        ) &
                          (
                            | number
                            | {
                                name: string;
                                2: number;
                                1: number;
                                3: number;
                              }
                            | undefined
                          );
                        client: boolean;
                      },
                      {
                        id: string;
                        name: string;
                        callSign: (
                          | number
                          | {
                              name: string;
                              2: number;
                              1: number;
                              3: number;
                            }
                        ) &
                          (
                            | number
                            | {
                                name: string;
                                2: number;
                                1: number;
                                3: number;
                              }
                            | undefined
                          );
                        client: boolean;
                      }
                    >,
                    "many"
                  >;
                  task: z.ZodEnum<
                    [
                      "DEAD",
                      "AWACS",
                      "CAP",
                      "Escort",
                      "Pinpoint Strike",
                      "CAS",
                      "CSAR"
                    ]
                  >;
                  waypoints: z.ZodArray<
                    z.ZodObject<
                      {
                        name: z.ZodString;
                        time: z.ZodNumber;
                        duration: z.ZodOptional<z.ZodNumber>;
                        speed: z.ZodNumber;
                        position: z.ZodObject<
                          {
                            x: z.ZodNumber;
                            y: z.ZodNumber;
                          },
                          "strip",
                          z.ZodTypeAny,
                          {
                            x: number;
                            y: number;
                          },
                          {
                            x: number;
                            y: number;
                          }
                        >;
                        taskStart: z.ZodOptional<z.ZodBoolean>;
                        onGround: z.ZodOptional<z.ZodBoolean>;
                        hold: z.ZodOptional<z.ZodBoolean>;
                        racetrack: z.ZodOptional<
                          z.ZodObject<
                            {
                              position: z.ZodObject<
                                {
                                  x: z.ZodNumber;
                                  y: z.ZodNumber;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                  x: number;
                                  y: number;
                                },
                                {
                                  x: number;
                                  y: number;
                                }
                              >;
                              name: z.ZodString;
                              distance: z.ZodNumber;
                              duration: z.ZodNumber;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                              name: string;
                              duration: number;
                              position: {
                                x: number;
                                y: number;
                              };
                              distance: number;
                            },
                            {
                              name: string;
                              duration: number;
                              position: {
                                x: number;
                                y: number;
                              };
                              distance: number;
                            }
                          >
                        >;
                      },
                      "strip",
                      z.ZodTypeAny,
                      {
                        name: string;
                        time: number;
                        speed: number;
                        position: {
                          x: number;
                          y: number;
                        };
                        duration?: number | undefined;
                        taskStart?: boolean | undefined;
                        onGround?: boolean | undefined;
                        hold?: boolean | undefined;
                        racetrack?:
                          | {
                              name: string;
                              duration: number;
                              position: {
                                x: number;
                                y: number;
                              };
                              distance: number;
                            }
                          | undefined;
                      },
                      {
                        name: string;
                        time: number;
                        speed: number;
                        position: {
                          x: number;
                          y: number;
                        };
                        duration?: number | undefined;
                        taskStart?: boolean | undefined;
                        onGround?: boolean | undefined;
                        hold?: boolean | undefined;
                        racetrack?:
                          | {
                              name: string;
                              duration: number;
                              position: {
                                x: number;
                                y: number;
                              };
                              distance: number;
                            }
                          | undefined;
                      }
                    >,
                    "many"
                  >;
                  startTime: z.ZodNumber;
                  designatedStartTime: z.ZodNumber;
                  tot: z.ZodNumber;
                  landingTime: z.ZodNumber;
                  target: z.ZodOptional<z.ZodString>;
                  position: z.ZodObject<
                    {
                      x: z.ZodNumber;
                      y: z.ZodNumber;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      x: number;
                      y: number;
                    },
                    {
                      x: number;
                      y: number;
                    }
                  >;
                  airdromeName: z.ZodString;
                  frequency: z.ZodOptional<z.ZodNumber>;
                  jtacFrequency: z.ZodOptional<z.ZodNumber>;
                },
                "strip",
                z.ZodTypeAny,
                {
                  id: string;
                  name: string;
                  units: {
                    id: string;
                    name: string;
                    callSign: (
                      | number
                      | {
                          name: string;
                          2: number;
                          1: number;
                          3: number;
                        }
                    ) &
                      (
                        | number
                        | {
                            name: string;
                            2: number;
                            1: number;
                            3: number;
                          }
                        | undefined
                      );
                    client: boolean;
                  }[];
                  task:
                    | "DEAD"
                    | "AWACS"
                    | "CAP"
                    | "Escort"
                    | "Pinpoint Strike"
                    | "CAS"
                    | "CSAR";
                  waypoints: {
                    name: string;
                    time: number;
                    speed: number;
                    position: {
                      x: number;
                      y: number;
                    };
                    duration?: number | undefined;
                    taskStart?: boolean | undefined;
                    onGround?: boolean | undefined;
                    hold?: boolean | undefined;
                    racetrack?:
                      | {
                          name: string;
                          duration: number;
                          position: {
                            x: number;
                            y: number;
                          };
                          distance: number;
                        }
                      | undefined;
                  }[];
                  position: {
                    x: number;
                    y: number;
                  };
                  startTime: number;
                  designatedStartTime: number;
                  tot: number;
                  landingTime: number;
                  airdromeName: string;
                  target?: string | undefined;
                  frequency?: number | undefined;
                  jtacFrequency?: number | undefined;
                },
                {
                  id: string;
                  name: string;
                  units: {
                    id: string;
                    name: string;
                    callSign: (
                      | number
                      | {
                          name: string;
                          2: number;
                          1: number;
                          3: number;
                        }
                    ) &
                      (
                        | number
                        | {
                            name: string;
                            2: number;
                            1: number;
                            3: number;
                          }
                        | undefined
                      );
                    client: boolean;
                  }[];
                  task:
                    | "DEAD"
                    | "AWACS"
                    | "CAP"
                    | "Escort"
                    | "Pinpoint Strike"
                    | "CAS"
                    | "CSAR";
                  waypoints: {
                    name: string;
                    time: number;
                    speed: number;
                    position: {
                      x: number;
                      y: number;
                    };
                    duration?: number | undefined;
                    taskStart?: boolean | undefined;
                    onGround?: boolean | undefined;
                    hold?: boolean | undefined;
                    racetrack?:
                      | {
                          name: string;
                          duration: number;
                          position: {
                            x: number;
                            y: number;
                          };
                          distance: number;
                        }
                      | undefined;
                  }[];
                  position: {
                    x: number;
                    y: number;
                  };
                  startTime: number;
                  designatedStartTime: number;
                  tot: number;
                  landingTime: number;
                  airdromeName: string;
                  target?: string | undefined;
                  frequency?: number | undefined;
                  jtacFrequency?: number | undefined;
                }
              >,
              "many"
            >;
            frequency: z.ZodNumber;
          },
          "strip",
          z.ZodTypeAny,
          {
            id: string;
            task:
              | "DEAD"
              | "AWACS"
              | "CAP"
              | "Escort"
              | "Pinpoint Strike"
              | "CAS"
              | "CSAR";
            startTime: number;
            frequency: number;
            taskEndTime: number;
            endTime: number;
            flightGroups: {
              id: string;
              name: string;
              units: {
                id: string;
                name: string;
                callSign: (
                  | number
                  | {
                      name: string;
                      2: number;
                      1: number;
                      3: number;
                    }
                ) &
                  (
                    | number
                    | {
                        name: string;
                        2: number;
                        1: number;
                        3: number;
                      }
                    | undefined
                  );
                client: boolean;
              }[];
              task:
                | "DEAD"
                | "AWACS"
                | "CAP"
                | "Escort"
                | "Pinpoint Strike"
                | "CAS"
                | "CSAR";
              waypoints: {
                name: string;
                time: number;
                speed: number;
                position: {
                  x: number;
                  y: number;
                };
                duration?: number | undefined;
                taskStart?: boolean | undefined;
                onGround?: boolean | undefined;
                hold?: boolean | undefined;
                racetrack?:
                  | {
                      name: string;
                      duration: number;
                      position: {
                        x: number;
                        y: number;
                      };
                      distance: number;
                    }
                  | undefined;
              }[];
              position: {
                x: number;
                y: number;
              };
              startTime: number;
              designatedStartTime: number;
              tot: number;
              landingTime: number;
              airdromeName: string;
              target?: string | undefined;
              frequency?: number | undefined;
              jtacFrequency?: number | undefined;
            }[];
          },
          {
            id: string;
            task:
              | "DEAD"
              | "AWACS"
              | "CAP"
              | "Escort"
              | "Pinpoint Strike"
              | "CAS"
              | "CSAR";
            startTime: number;
            frequency: number;
            taskEndTime: number;
            endTime: number;
            flightGroups: {
              id: string;
              name: string;
              units: {
                id: string;
                name: string;
                callSign: (
                  | number
                  | {
                      name: string;
                      2: number;
                      1: number;
                      3: number;
                    }
                ) &
                  (
                    | number
                    | {
                        name: string;
                        2: number;
                        1: number;
                        3: number;
                      }
                    | undefined
                  );
                client: boolean;
              }[];
              task:
                | "DEAD"
                | "AWACS"
                | "CAP"
                | "Escort"
                | "Pinpoint Strike"
                | "CAS"
                | "CSAR";
              waypoints: {
                name: string;
                time: number;
                speed: number;
                position: {
                  x: number;
                  y: number;
                };
                duration?: number | undefined;
                taskStart?: boolean | undefined;
                onGround?: boolean | undefined;
                hold?: boolean | undefined;
                racetrack?:
                  | {
                      name: string;
                      duration: number;
                      position: {
                        x: number;
                        y: number;
                      };
                      distance: number;
                    }
                  | undefined;
              }[];
              position: {
                x: number;
                y: number;
              };
              startTime: number;
              designatedStartTime: number;
              tot: number;
              landingTime: number;
              airdromeName: string;
              target?: string | undefined;
              frequency?: number | undefined;
              jtacFrequency?: number | undefined;
            }[];
          }
        >,
        "many"
      >;
      groundGroups: z.ZodArray<
        z.ZodUnion<
          [
            z.ZodObject<
              {
                id: z.ZodString;
                name: z.ZodString;
                unitIds: z.ZodArray<z.ZodString, "many">;
                shoradUnitIds: z.ZodArray<z.ZodString, "many">;
                position: z.ZodObject<
                  {
                    x: z.ZodNumber;
                    y: z.ZodNumber;
                  },
                  "strip",
                  z.ZodTypeAny,
                  {
                    x: number;
                    y: number;
                  },
                  {
                    x: number;
                    y: number;
                  }
                >;
                objectiveName: z.ZodString;
                state: z.ZodEnum<["en route", "on objective", "combat"]>;
                startTime: z.ZodNumber;
                startObjectiveName: z.ZodString;
                type: z.ZodEnum<["armor", "mbt", "infantry", "ew"]>;
                combatTimer: z.ZodOptional<z.ZodNumber>;
              },
              "strip",
              z.ZodTypeAny,
              {
                id: string;
                name: string;
                type: "armor" | "mbt" | "infantry" | "ew";
                position: {
                  x: number;
                  y: number;
                };
                startTime: number;
                state: "en route" | "combat" | "on objective";
                unitIds: string[];
                shoradUnitIds: string[];
                objectiveName: string;
                startObjectiveName: string;
                combatTimer?: number | undefined;
              },
              {
                id: string;
                name: string;
                type: "armor" | "mbt" | "infantry" | "ew";
                position: {
                  x: number;
                  y: number;
                };
                startTime: number;
                state: "en route" | "combat" | "on objective";
                unitIds: string[];
                shoradUnitIds: string[];
                objectiveName: string;
                startObjectiveName: string;
                combatTimer?: number | undefined;
              }
            >,
            z.ZodObject<
              {
                id: z.ZodString;
                name: z.ZodString;
                position: z.ZodObject<
                  {
                    x: z.ZodNumber;
                    y: z.ZodNumber;
                  },
                  "strip",
                  z.ZodTypeAny,
                  {
                    x: number;
                    y: number;
                  },
                  {
                    x: number;
                    y: number;
                  }
                >;
                startTime: z.ZodNumber;
                state: z.ZodEnum<["en route", "on objective", "combat"]>;
                unitIds: z.ZodArray<z.ZodString, "many">;
                shoradUnitIds: z.ZodArray<z.ZodString, "many">;
                objectiveName: z.ZodString;
                startObjectiveName: z.ZodString;
                combatTimer: z.ZodOptional<z.ZodNumber>;
                type: z.ZodEnum<["sam"]>;
                range: z.ZodNumber;
                operational: z.ZodBoolean;
                fireInterval: z.ZodNumber;
                samType: z.ZodEnum<
                  ["SA-10-300", "SA-6", "SA-5", "SA-3", "SA-2", "Hawk"]
                >;
              },
              "strip",
              z.ZodTypeAny,
              {
                id: string;
                name: string;
                type: "sam";
                position: {
                  x: number;
                  y: number;
                };
                startTime: number;
                state: "en route" | "combat" | "on objective";
                range: number;
                unitIds: string[];
                shoradUnitIds: string[];
                objectiveName: string;
                startObjectiveName: string;
                operational: boolean;
                fireInterval: number;
                samType:
                  | "SA-10-300"
                  | "SA-6"
                  | "SA-5"
                  | "SA-3"
                  | "SA-2"
                  | "Hawk";
                combatTimer?: number | undefined;
              },
              {
                id: string;
                name: string;
                type: "sam";
                position: {
                  x: number;
                  y: number;
                };
                startTime: number;
                state: "en route" | "combat" | "on objective";
                range: number;
                unitIds: string[];
                shoradUnitIds: string[];
                objectiveName: string;
                startObjectiveName: string;
                operational: boolean;
                fireInterval: number;
                samType:
                  | "SA-10-300"
                  | "SA-6"
                  | "SA-5"
                  | "SA-3"
                  | "SA-2"
                  | "Hawk";
                combatTimer?: number | undefined;
              }
            >
          ]
        >,
        "many"
      >;
      shipGroups: z.ZodOptional<
        z.ZodArray<
          z.ZodObject<
            {
              name: z.ZodString;
              position: z.ZodObject<
                {
                  x: z.ZodNumber;
                  y: z.ZodNumber;
                },
                "strip",
                z.ZodTypeAny,
                {
                  x: number;
                  y: number;
                },
                {
                  x: number;
                  y: number;
                }
              >;
            },
            "strip",
            z.ZodTypeAny,
            {
              name: string;
              position: {
                x: number;
                y: number;
              };
            },
            {
              name: string;
              position: {
                x: number;
                y: number;
              };
            }
          >,
          "many"
        >
      >;
      awacsFrequency: z.ZodNumber;
      structures: z.ZodRecord<
        z.ZodString,
        z.ZodUnion<
          [
            z.ZodObject<
              {
                id: z.ZodString;
                name: z.ZodString;
                position: z.ZodObject<
                  {
                    x: z.ZodNumber;
                    y: z.ZodNumber;
                  },
                  "strip",
                  z.ZodTypeAny,
                  {
                    x: number;
                    y: number;
                  },
                  {
                    x: number;
                    y: number;
                  }
                >;
                state: z.ZodEnum<["active", "destroyed", "deactivated"]>;
                objectiveName: z.ZodString;
                groupId: z.ZodNumber;
                buildings: z.ZodArray<
                  z.ZodObject<
                    {
                      name: z.ZodString;
                      alive: z.ZodBoolean;
                      destroyedTime: z.ZodOptional<z.ZodNumber>;
                      repairScore: z.ZodOptional<z.ZodNumber>;
                      offset: z.ZodObject<
                        {
                          x: z.ZodNumber;
                          y: z.ZodNumber;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          x: number;
                          y: number;
                        },
                        {
                          x: number;
                          y: number;
                        }
                      >;
                      heading: z.ZodNumber;
                      category: z.ZodEnum<["Fortifications", "Heliports"]>;
                      shapeName: z.ZodString;
                      type: z.ZodString;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      name: string;
                      type: string;
                      alive: boolean;
                      category: "Fortifications" | "Heliports";
                      offset: {
                        x: number;
                        y: number;
                      };
                      heading: number;
                      shapeName: string;
                      destroyedTime?: number | undefined;
                      repairScore?: number | undefined;
                    },
                    {
                      name: string;
                      type: string;
                      alive: boolean;
                      category: "Fortifications" | "Heliports";
                      offset: {
                        x: number;
                        y: number;
                      };
                      heading: number;
                      shapeName: string;
                      destroyedTime?: number | undefined;
                      repairScore?: number | undefined;
                    }
                  >,
                  "many"
                >;
                type: z.ZodEnum<
                  [
                    "Ammo Depot",
                    "Farp",
                    "Command Center",
                    "Power Plant",
                    "Fuel Storage",
                    "Hospital",
                    "Prison"
                  ]
                >;
              },
              "strip",
              z.ZodTypeAny,
              {
                id: string;
                name: string;
                type:
                  | "Ammo Depot"
                  | "Farp"
                  | "Command Center"
                  | "Power Plant"
                  | "Fuel Storage"
                  | "Hospital"
                  | "Prison";
                position: {
                  x: number;
                  y: number;
                };
                state: "active" | "destroyed" | "deactivated";
                objectiveName: string;
                groupId: number;
                buildings: {
                  name: string;
                  type: string;
                  alive: boolean;
                  category: "Fortifications" | "Heliports";
                  offset: {
                    x: number;
                    y: number;
                  };
                  heading: number;
                  shapeName: string;
                  destroyedTime?: number | undefined;
                  repairScore?: number | undefined;
                }[];
              },
              {
                id: string;
                name: string;
                type:
                  | "Ammo Depot"
                  | "Farp"
                  | "Command Center"
                  | "Power Plant"
                  | "Fuel Storage"
                  | "Hospital"
                  | "Prison";
                position: {
                  x: number;
                  y: number;
                };
                state: "active" | "destroyed" | "deactivated";
                objectiveName: string;
                groupId: number;
                buildings: {
                  name: string;
                  type: string;
                  alive: boolean;
                  category: "Fortifications" | "Heliports";
                  offset: {
                    x: number;
                    y: number;
                  };
                  heading: number;
                  shapeName: string;
                  destroyedTime?: number | undefined;
                  repairScore?: number | undefined;
                }[];
              }
            >,
            z.ZodObject<
              {
                id: z.ZodString;
                name: z.ZodString;
                position: z.ZodObject<
                  {
                    x: z.ZodNumber;
                    y: z.ZodNumber;
                  },
                  "strip",
                  z.ZodTypeAny,
                  {
                    x: number;
                    y: number;
                  },
                  {
                    x: number;
                    y: number;
                  }
                >;
                state: z.ZodEnum<["active", "destroyed", "deactivated"]>;
                objectiveName: z.ZodString;
                groupId: z.ZodNumber;
                buildings: z.ZodArray<
                  z.ZodObject<
                    {
                      name: z.ZodString;
                      alive: z.ZodBoolean;
                      destroyedTime: z.ZodOptional<z.ZodNumber>;
                      repairScore: z.ZodOptional<z.ZodNumber>;
                      offset: z.ZodObject<
                        {
                          x: z.ZodNumber;
                          y: z.ZodNumber;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          x: number;
                          y: number;
                        },
                        {
                          x: number;
                          y: number;
                        }
                      >;
                      heading: z.ZodNumber;
                      category: z.ZodEnum<["Fortifications", "Heliports"]>;
                      shapeName: z.ZodString;
                      type: z.ZodString;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      name: string;
                      type: string;
                      alive: boolean;
                      category: "Fortifications" | "Heliports";
                      offset: {
                        x: number;
                        y: number;
                      };
                      heading: number;
                      shapeName: string;
                      destroyedTime?: number | undefined;
                      repairScore?: number | undefined;
                    },
                    {
                      name: string;
                      type: string;
                      alive: boolean;
                      category: "Fortifications" | "Heliports";
                      offset: {
                        x: number;
                        y: number;
                      };
                      heading: number;
                      shapeName: string;
                      destroyedTime?: number | undefined;
                      repairScore?: number | undefined;
                    }
                  >,
                  "many"
                >;
                type: z.ZodEnum<["Barrack", "Depot"]>;
                deploymentScore: z.ZodNumber;
              },
              "strip",
              z.ZodTypeAny,
              {
                id: string;
                name: string;
                type: "Barrack" | "Depot";
                position: {
                  x: number;
                  y: number;
                };
                state: "active" | "destroyed" | "deactivated";
                objectiveName: string;
                groupId: number;
                buildings: {
                  name: string;
                  type: string;
                  alive: boolean;
                  category: "Fortifications" | "Heliports";
                  offset: {
                    x: number;
                    y: number;
                  };
                  heading: number;
                  shapeName: string;
                  destroyedTime?: number | undefined;
                  repairScore?: number | undefined;
                }[];
                deploymentScore: number;
              },
              {
                id: string;
                name: string;
                type: "Barrack" | "Depot";
                position: {
                  x: number;
                  y: number;
                };
                state: "active" | "destroyed" | "deactivated";
                objectiveName: string;
                groupId: number;
                buildings: {
                  name: string;
                  type: string;
                  alive: boolean;
                  category: "Fortifications" | "Heliports";
                  offset: {
                    x: number;
                    y: number;
                  };
                  heading: number;
                  shapeName: string;
                  destroyedTime?: number | undefined;
                  repairScore?: number | undefined;
                }[];
                deploymentScore: number;
              }
            >
          ]
        >
      >;
      reinforcementTimer: z.ZodNumber;
      reinforcementDelay: z.ZodNumber;
      downedPilots: z.ZodArray<
        z.ZodObject<
          {
            id: z.ZodString;
            name: z.ZodString;
            position: z.ZodObject<
              {
                x: z.ZodNumber;
                y: z.ZodNumber;
              },
              "strip",
              z.ZodTypeAny,
              {
                x: number;
                y: number;
              },
              {
                x: number;
                y: number;
              }
            >;
            time: z.ZodNumber;
          },
          "strip",
          z.ZodTypeAny,
          {
            id: string;
            name: string;
            time: number;
            position: {
              x: number;
              y: number;
            };
          },
          {
            id: string;
            name: string;
            time: number;
            position: {
              x: number;
              y: number;
            };
          }
        >,
        "many"
      >;
    },
    "strip",
    z.ZodTypeAny,
    {
      name: string;
      aircraftTypes: Record<string, string[]>;
      countryName: string;
      playable: boolean;
      templateName: string;
      airdromeNames: string[];
      inventory: {
        aircrafts: Record<
          string,
          {
            id: string;
            aircraftType: string;
            state:
              | "idle"
              | "en route"
              | "on station"
              | "combat"
              | "rtb"
              | "waiting"
              | "maintenance";
            availableTasks: string[];
            alive: boolean;
            onboardNumber: string;
            homeBase: {
              name: string;
              type: "airdrome" | "farp" | "carrier";
            };
            loadout: {
              name: string;
              task:
                | "DEAD"
                | "AWACS"
                | "CAP"
                | "Escort"
                | "Pinpoint Strike"
                | "CAS"
                | "CSAR"
                | "default";
              displayName: string;
              pylons: {
                type:
                  | "Fuel Tank"
                  | "Targeting Pod"
                  | "Gun Pod"
                  | "ECM Pod"
                  | "Other"
                  | "Weapon";
                CLSID: string;
                num: number;
                total: number;
                count: number;
                weapon?:
                  | {
                      name: string;
                      type: "infrared" | "active radar" | "semi-active radar";
                      displayName: string;
                      range: number;
                      rangeType: "short" | "medium" | "long";
                      year?: number | undefined;
                    }
                  | {
                      name: string;
                      type:
                        | "Bomb"
                        | "Cluster"
                        | "Rocket"
                        | "Laser Guided Bomb"
                        | "GPS Guided Bomb"
                        | "TV Guided Bomb"
                        | "Laser Guided Rocket";
                      target:
                        | "Anti-Armor"
                        | "Hard Target"
                        | "Medium Target"
                        | "Soft Target"
                        | "Ship"
                        | "Radar"
                        | "Light Structure"
                        | "Medium Structure"
                        | "Hard Structure";
                      displayName: string;
                      weight?: number | undefined;
                      highDrag?: boolean | undefined;
                      year?: number | undefined;
                    }
                  | {
                      name: string;
                      type:
                        | "Missile"
                        | "Glide Bomb"
                        | "Laser Guided Missile"
                        | "Cruise Missile";
                      displayName: string;
                      range: number;
                      targets: (
                        | "Anti-Armor"
                        | "Hard Target"
                        | "Medium Target"
                        | "Soft Target"
                        | "Ship"
                        | "Radar"
                        | "Light Structure"
                        | "Medium Structure"
                        | "Hard Structure"
                      )[];
                      year?: number | undefined;
                    }
                  | undefined;
              }[];
            };
            maintenanceEndTime?: number | undefined;
            a2GWeaponReadyTimer?: number | undefined;
            a2AWeaponReadyTimer?: number | undefined;
            destroyedTime?: number | undefined;
            disabled?: boolean | undefined;
          }
        >;
        groundUnits: Record<
          string,
          {
            id: string;
            name: string;
            state: "idle" | "en route" | "on objective";
            alive: boolean;
            displayName: string;
            category: string;
            vehicleTypes: (
              | "MBT"
              | "Track Radar"
              | "Search Radar"
              | "SAM Launcher"
              | "Unarmored"
              | "Armored"
              | "IFV"
              | "SHORAD"
              | "Transport"
              | "Power Generator"
              | "Refuel"
              | "Control Unit"
              | "EW"
              | "Infantry"
            )[];
            destroyedTime?: number | undefined;
          }
        >;
      };
      packages: {
        id: string;
        task:
          | "DEAD"
          | "AWACS"
          | "CAP"
          | "Escort"
          | "Pinpoint Strike"
          | "CAS"
          | "CSAR";
        startTime: number;
        frequency: number;
        taskEndTime: number;
        endTime: number;
        flightGroups: {
          id: string;
          name: string;
          units: {
            id: string;
            name: string;
            callSign: (
              | number
              | {
                  name: string;
                  2: number;
                  1: number;
                  3: number;
                }
            ) &
              (
                | number
                | {
                    name: string;
                    2: number;
                    1: number;
                    3: number;
                  }
                | undefined
              );
            client: boolean;
          }[];
          task:
            | "DEAD"
            | "AWACS"
            | "CAP"
            | "Escort"
            | "Pinpoint Strike"
            | "CAS"
            | "CSAR";
          waypoints: {
            name: string;
            time: number;
            speed: number;
            position: {
              x: number;
              y: number;
            };
            duration?: number | undefined;
            taskStart?: boolean | undefined;
            onGround?: boolean | undefined;
            hold?: boolean | undefined;
            racetrack?:
              | {
                  name: string;
                  duration: number;
                  position: {
                    x: number;
                    y: number;
                  };
                  distance: number;
                }
              | undefined;
          }[];
          position: {
            x: number;
            y: number;
          };
          startTime: number;
          designatedStartTime: number;
          tot: number;
          landingTime: number;
          airdromeName: string;
          target?: string | undefined;
          frequency?: number | undefined;
          jtacFrequency?: number | undefined;
        }[];
      }[];
      groundGroups: (
        | {
            id: string;
            name: string;
            type: "armor" | "mbt" | "infantry" | "ew";
            position: {
              x: number;
              y: number;
            };
            startTime: number;
            state: "en route" | "combat" | "on objective";
            unitIds: string[];
            shoradUnitIds: string[];
            objectiveName: string;
            startObjectiveName: string;
            combatTimer?: number | undefined;
          }
        | {
            id: string;
            name: string;
            type: "sam";
            position: {
              x: number;
              y: number;
            };
            startTime: number;
            state: "en route" | "combat" | "on objective";
            range: number;
            unitIds: string[];
            shoradUnitIds: string[];
            objectiveName: string;
            startObjectiveName: string;
            operational: boolean;
            fireInterval: number;
            samType: "SA-10-300" | "SA-6" | "SA-5" | "SA-3" | "SA-2" | "Hawk";
            combatTimer?: number | undefined;
          }
      )[];
      awacsFrequency: number;
      structures: Record<
        string,
        | {
            id: string;
            name: string;
            type:
              | "Ammo Depot"
              | "Farp"
              | "Command Center"
              | "Power Plant"
              | "Fuel Storage"
              | "Hospital"
              | "Prison";
            position: {
              x: number;
              y: number;
            };
            state: "active" | "destroyed" | "deactivated";
            objectiveName: string;
            groupId: number;
            buildings: {
              name: string;
              type: string;
              alive: boolean;
              category: "Fortifications" | "Heliports";
              offset: {
                x: number;
                y: number;
              };
              heading: number;
              shapeName: string;
              destroyedTime?: number | undefined;
              repairScore?: number | undefined;
            }[];
          }
        | {
            id: string;
            name: string;
            type: "Barrack" | "Depot";
            position: {
              x: number;
              y: number;
            };
            state: "active" | "destroyed" | "deactivated";
            objectiveName: string;
            groupId: number;
            buildings: {
              name: string;
              type: string;
              alive: boolean;
              category: "Fortifications" | "Heliports";
              offset: {
                x: number;
                y: number;
              };
              heading: number;
              shapeName: string;
              destroyedTime?: number | undefined;
              repairScore?: number | undefined;
            }[];
            deploymentScore: number;
          }
      >;
      reinforcementTimer: number;
      reinforcementDelay: number;
      downedPilots: {
        id: string;
        name: string;
        time: number;
        position: {
          x: number;
          y: number;
        };
      }[];
      year?: number | undefined;
      carrierName?: string | undefined;
      created?: Date | undefined;
      shipGroups?:
        | {
            name: string;
            position: {
              x: number;
              y: number;
            };
          }[]
        | undefined;
    },
    {
      name: string;
      aircraftTypes: Record<string, string[]>;
      countryName: string;
      playable: boolean;
      templateName: string;
      airdromeNames: string[];
      inventory: {
        aircrafts: Record<
          string,
          {
            id: string;
            aircraftType: string;
            state:
              | "idle"
              | "en route"
              | "on station"
              | "combat"
              | "rtb"
              | "waiting"
              | "maintenance";
            availableTasks: string[];
            alive: boolean;
            onboardNumber: string;
            homeBase: {
              name: string;
              type: "airdrome" | "farp" | "carrier";
            };
            loadout: {
              name: string;
              task:
                | "DEAD"
                | "AWACS"
                | "CAP"
                | "Escort"
                | "Pinpoint Strike"
                | "CAS"
                | "CSAR"
                | "default";
              displayName: string;
              pylons: {
                type:
                  | "Fuel Tank"
                  | "Targeting Pod"
                  | "Gun Pod"
                  | "ECM Pod"
                  | "Other"
                  | "Weapon";
                CLSID: string;
                num: number;
                total: number;
                count: number;
                weapon?:
                  | {
                      name: string;
                      type: "infrared" | "active radar" | "semi-active radar";
                      displayName: string;
                      range: number;
                      rangeType: "short" | "medium" | "long";
                      year?: number | undefined;
                    }
                  | {
                      name: string;
                      type:
                        | "Bomb"
                        | "Cluster"
                        | "Rocket"
                        | "Laser Guided Bomb"
                        | "GPS Guided Bomb"
                        | "TV Guided Bomb"
                        | "Laser Guided Rocket";
                      target:
                        | "Anti-Armor"
                        | "Hard Target"
                        | "Medium Target"
                        | "Soft Target"
                        | "Ship"
                        | "Radar"
                        | "Light Structure"
                        | "Medium Structure"
                        | "Hard Structure";
                      displayName: string;
                      weight?: number | undefined;
                      highDrag?: boolean | undefined;
                      year?: number | undefined;
                    }
                  | {
                      name: string;
                      type:
                        | "Missile"
                        | "Glide Bomb"
                        | "Laser Guided Missile"
                        | "Cruise Missile";
                      displayName: string;
                      range: number;
                      targets: (
                        | "Anti-Armor"
                        | "Hard Target"
                        | "Medium Target"
                        | "Soft Target"
                        | "Ship"
                        | "Radar"
                        | "Light Structure"
                        | "Medium Structure"
                        | "Hard Structure"
                      )[];
                      year?: number | undefined;
                    }
                  | undefined;
              }[];
            };
            maintenanceEndTime?: number | undefined;
            a2GWeaponReadyTimer?: number | undefined;
            a2AWeaponReadyTimer?: number | undefined;
            destroyedTime?: number | undefined;
            disabled?: boolean | undefined;
          }
        >;
        groundUnits: Record<
          string,
          {
            id: string;
            name: string;
            state: "idle" | "en route" | "on objective";
            alive: boolean;
            displayName: string;
            category: string;
            vehicleTypes: (
              | "MBT"
              | "Track Radar"
              | "Search Radar"
              | "SAM Launcher"
              | "Unarmored"
              | "Armored"
              | "IFV"
              | "SHORAD"
              | "Transport"
              | "Power Generator"
              | "Refuel"
              | "Control Unit"
              | "EW"
              | "Infantry"
            )[];
            destroyedTime?: number | undefined;
          }
        >;
      };
      packages: {
        id: string;
        task:
          | "DEAD"
          | "AWACS"
          | "CAP"
          | "Escort"
          | "Pinpoint Strike"
          | "CAS"
          | "CSAR";
        startTime: number;
        frequency: number;
        taskEndTime: number;
        endTime: number;
        flightGroups: {
          id: string;
          name: string;
          units: {
            id: string;
            name: string;
            callSign: (
              | number
              | {
                  name: string;
                  2: number;
                  1: number;
                  3: number;
                }
            ) &
              (
                | number
                | {
                    name: string;
                    2: number;
                    1: number;
                    3: number;
                  }
                | undefined
              );
            client: boolean;
          }[];
          task:
            | "DEAD"
            | "AWACS"
            | "CAP"
            | "Escort"
            | "Pinpoint Strike"
            | "CAS"
            | "CSAR";
          waypoints: {
            name: string;
            time: number;
            speed: number;
            position: {
              x: number;
              y: number;
            };
            duration?: number | undefined;
            taskStart?: boolean | undefined;
            onGround?: boolean | undefined;
            hold?: boolean | undefined;
            racetrack?:
              | {
                  name: string;
                  duration: number;
                  position: {
                    x: number;
                    y: number;
                  };
                  distance: number;
                }
              | undefined;
          }[];
          position: {
            x: number;
            y: number;
          };
          startTime: number;
          designatedStartTime: number;
          tot: number;
          landingTime: number;
          airdromeName: string;
          target?: string | undefined;
          frequency?: number | undefined;
          jtacFrequency?: number | undefined;
        }[];
      }[];
      groundGroups: (
        | {
            id: string;
            name: string;
            type: "armor" | "mbt" | "infantry" | "ew";
            position: {
              x: number;
              y: number;
            };
            startTime: number;
            state: "en route" | "combat" | "on objective";
            unitIds: string[];
            shoradUnitIds: string[];
            objectiveName: string;
            startObjectiveName: string;
            combatTimer?: number | undefined;
          }
        | {
            id: string;
            name: string;
            type: "sam";
            position: {
              x: number;
              y: number;
            };
            startTime: number;
            state: "en route" | "combat" | "on objective";
            range: number;
            unitIds: string[];
            shoradUnitIds: string[];
            objectiveName: string;
            startObjectiveName: string;
            operational: boolean;
            fireInterval: number;
            samType: "SA-10-300" | "SA-6" | "SA-5" | "SA-3" | "SA-2" | "Hawk";
            combatTimer?: number | undefined;
          }
      )[];
      awacsFrequency: number;
      structures: Record<
        string,
        | {
            id: string;
            name: string;
            type:
              | "Ammo Depot"
              | "Farp"
              | "Command Center"
              | "Power Plant"
              | "Fuel Storage"
              | "Hospital"
              | "Prison";
            position: {
              x: number;
              y: number;
            };
            state: "active" | "destroyed" | "deactivated";
            objectiveName: string;
            groupId: number;
            buildings: {
              name: string;
              type: string;
              alive: boolean;
              category: "Fortifications" | "Heliports";
              offset: {
                x: number;
                y: number;
              };
              heading: number;
              shapeName: string;
              destroyedTime?: number | undefined;
              repairScore?: number | undefined;
            }[];
          }
        | {
            id: string;
            name: string;
            type: "Barrack" | "Depot";
            position: {
              x: number;
              y: number;
            };
            state: "active" | "destroyed" | "deactivated";
            objectiveName: string;
            groupId: number;
            buildings: {
              name: string;
              type: string;
              alive: boolean;
              category: "Fortifications" | "Heliports";
              offset: {
                x: number;
                y: number;
              };
              heading: number;
              shapeName: string;
              destroyedTime?: number | undefined;
              repairScore?: number | undefined;
            }[];
            deploymentScore: number;
          }
      >;
      reinforcementTimer: number;
      reinforcementDelay: number;
      downedPilots: {
        id: string;
        name: string;
        time: number;
        position: {
          x: number;
          y: number;
        };
      }[];
      year?: number | undefined;
      carrierName?: string | undefined;
      created?: Date | undefined;
      shipGroups?:
        | {
            name: string;
            position: {
              x: number;
              y: number;
            };
          }[]
        | undefined;
    }
  >;
  const campaignWeather: z.ZodObject<
    {
      offset: z.ZodNumber;
      temperature: z.ZodNumber;
      wind: z.ZodObject<
        {
          direction: z.ZodNumber;
          speed: z.ZodNumber;
        },
        "strip",
        z.ZodTypeAny,
        {
          speed: number;
          direction: number;
        },
        {
          speed: number;
          direction: number;
        }
      >;
      cloudCover: z.ZodNumber;
      cloudCoverData: z.ZodArray<z.ZodNumber, "many">;
    },
    "strip",
    z.ZodTypeAny,
    {
      offset: number;
      temperature: number;
      wind: {
        speed: number;
        direction: number;
      };
      cloudCover: number;
      cloudCoverData: number[];
    },
    {
      offset: number;
      temperature: number;
      wind: {
        speed: number;
        direction: number;
      };
      cloudCover: number;
      cloudCoverData: number[];
    }
  >;
  const campaign: z.ZodObject<
    {
      active: z.ZodBoolean;
      loaded: z.ZodBoolean;
      timer: z.ZodNumber;
      multiplier: z.ZodNumber;
      paused: z.ZodBoolean;
      selectedFlightGroup: z.ZodOptional<
        z.ZodObject<
          {
            id: z.ZodString;
            name: z.ZodString;
            units: z.ZodArray<
              z.ZodObject<
                {
                  id: z.ZodString;
                  name: z.ZodString;
                  callSign: z.ZodUnion<
                    [
                      z.ZodNumber,
                      z.ZodObject<
                        {
                          1: z.ZodNumber;
                          2: z.ZodNumber;
                          3: z.ZodNumber;
                          name: z.ZodString;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          name: string;
                          2: number;
                          1: number;
                          3: number;
                        },
                        {
                          name: string;
                          2: number;
                          1: number;
                          3: number;
                        }
                      >
                    ]
                  >;
                  client: z.ZodBoolean;
                },
                "strip",
                z.ZodTypeAny,
                {
                  id: string;
                  name: string;
                  callSign: (
                    | number
                    | {
                        name: string;
                        2: number;
                        1: number;
                        3: number;
                      }
                  ) &
                    (
                      | number
                      | {
                          name: string;
                          2: number;
                          1: number;
                          3: number;
                        }
                      | undefined
                    );
                  client: boolean;
                },
                {
                  id: string;
                  name: string;
                  callSign: (
                    | number
                    | {
                        name: string;
                        2: number;
                        1: number;
                        3: number;
                      }
                  ) &
                    (
                      | number
                      | {
                          name: string;
                          2: number;
                          1: number;
                          3: number;
                        }
                      | undefined
                    );
                  client: boolean;
                }
              >,
              "many"
            >;
            task: z.ZodEnum<
              [
                "DEAD",
                "AWACS",
                "CAP",
                "Escort",
                "Pinpoint Strike",
                "CAS",
                "CSAR"
              ]
            >;
            waypoints: z.ZodArray<
              z.ZodObject<
                {
                  name: z.ZodString;
                  time: z.ZodNumber;
                  duration: z.ZodOptional<z.ZodNumber>;
                  speed: z.ZodNumber;
                  position: z.ZodObject<
                    {
                      x: z.ZodNumber;
                      y: z.ZodNumber;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      x: number;
                      y: number;
                    },
                    {
                      x: number;
                      y: number;
                    }
                  >;
                  taskStart: z.ZodOptional<z.ZodBoolean>;
                  onGround: z.ZodOptional<z.ZodBoolean>;
                  hold: z.ZodOptional<z.ZodBoolean>;
                  racetrack: z.ZodOptional<
                    z.ZodObject<
                      {
                        position: z.ZodObject<
                          {
                            x: z.ZodNumber;
                            y: z.ZodNumber;
                          },
                          "strip",
                          z.ZodTypeAny,
                          {
                            x: number;
                            y: number;
                          },
                          {
                            x: number;
                            y: number;
                          }
                        >;
                        name: z.ZodString;
                        distance: z.ZodNumber;
                        duration: z.ZodNumber;
                      },
                      "strip",
                      z.ZodTypeAny,
                      {
                        name: string;
                        duration: number;
                        position: {
                          x: number;
                          y: number;
                        };
                        distance: number;
                      },
                      {
                        name: string;
                        duration: number;
                        position: {
                          x: number;
                          y: number;
                        };
                        distance: number;
                      }
                    >
                  >;
                },
                "strip",
                z.ZodTypeAny,
                {
                  name: string;
                  time: number;
                  speed: number;
                  position: {
                    x: number;
                    y: number;
                  };
                  duration?: number | undefined;
                  taskStart?: boolean | undefined;
                  onGround?: boolean | undefined;
                  hold?: boolean | undefined;
                  racetrack?:
                    | {
                        name: string;
                        duration: number;
                        position: {
                          x: number;
                          y: number;
                        };
                        distance: number;
                      }
                    | undefined;
                },
                {
                  name: string;
                  time: number;
                  speed: number;
                  position: {
                    x: number;
                    y: number;
                  };
                  duration?: number | undefined;
                  taskStart?: boolean | undefined;
                  onGround?: boolean | undefined;
                  hold?: boolean | undefined;
                  racetrack?:
                    | {
                        name: string;
                        duration: number;
                        position: {
                          x: number;
                          y: number;
                        };
                        distance: number;
                      }
                    | undefined;
                }
              >,
              "many"
            >;
            startTime: z.ZodNumber;
            designatedStartTime: z.ZodNumber;
            tot: z.ZodNumber;
            landingTime: z.ZodNumber;
            target: z.ZodOptional<z.ZodString>;
            position: z.ZodObject<
              {
                x: z.ZodNumber;
                y: z.ZodNumber;
              },
              "strip",
              z.ZodTypeAny,
              {
                x: number;
                y: number;
              },
              {
                x: number;
                y: number;
              }
            >;
            airdromeName: z.ZodString;
            frequency: z.ZodOptional<z.ZodNumber>;
            jtacFrequency: z.ZodOptional<z.ZodNumber>;
          },
          "strip",
          z.ZodTypeAny,
          {
            id: string;
            name: string;
            units: {
              id: string;
              name: string;
              callSign: (
                | number
                | {
                    name: string;
                    2: number;
                    1: number;
                    3: number;
                  }
              ) &
                (
                  | number
                  | {
                      name: string;
                      2: number;
                      1: number;
                      3: number;
                    }
                  | undefined
                );
              client: boolean;
            }[];
            task:
              | "DEAD"
              | "AWACS"
              | "CAP"
              | "Escort"
              | "Pinpoint Strike"
              | "CAS"
              | "CSAR";
            waypoints: {
              name: string;
              time: number;
              speed: number;
              position: {
                x: number;
                y: number;
              };
              duration?: number | undefined;
              taskStart?: boolean | undefined;
              onGround?: boolean | undefined;
              hold?: boolean | undefined;
              racetrack?:
                | {
                    name: string;
                    duration: number;
                    position: {
                      x: number;
                      y: number;
                    };
                    distance: number;
                  }
                | undefined;
            }[];
            position: {
              x: number;
              y: number;
            };
            startTime: number;
            designatedStartTime: number;
            tot: number;
            landingTime: number;
            airdromeName: string;
            target?: string | undefined;
            frequency?: number | undefined;
            jtacFrequency?: number | undefined;
          },
          {
            id: string;
            name: string;
            units: {
              id: string;
              name: string;
              callSign: (
                | number
                | {
                    name: string;
                    2: number;
                    1: number;
                    3: number;
                  }
              ) &
                (
                  | number
                  | {
                      name: string;
                      2: number;
                      1: number;
                      3: number;
                    }
                  | undefined
                );
              client: boolean;
            }[];
            task:
              | "DEAD"
              | "AWACS"
              | "CAP"
              | "Escort"
              | "Pinpoint Strike"
              | "CAS"
              | "CSAR";
            waypoints: {
              name: string;
              time: number;
              speed: number;
              position: {
                x: number;
                y: number;
              };
              duration?: number | undefined;
              taskStart?: boolean | undefined;
              onGround?: boolean | undefined;
              hold?: boolean | undefined;
              racetrack?:
                | {
                    name: string;
                    duration: number;
                    position: {
                      x: number;
                      y: number;
                    };
                    distance: number;
                  }
                | undefined;
            }[];
            position: {
              x: number;
              y: number;
            };
            startTime: number;
            designatedStartTime: number;
            tot: number;
            landingTime: number;
            airdromeName: string;
            target?: string | undefined;
            frequency?: number | undefined;
            jtacFrequency?: number | undefined;
          }
        >
      >;
      blueFaction: z.ZodOptional<
        z.ZodObject<
          {
            name: z.ZodString;
            aircraftTypes: z.ZodRecord<
              z.ZodString,
              z.ZodArray<z.ZodString, "many">
            >;
            countryName: z.ZodString;
            year: z.ZodOptional<z.ZodNumber>;
            playable: z.ZodBoolean;
            templateName: z.ZodString;
            carrierName: z.ZodOptional<z.ZodString>;
            created: z.ZodOptional<z.ZodDate>;
            airdromeNames: z.ZodArray<z.ZodString, "many">;
            inventory: z.ZodObject<
              {
                aircrafts: z.ZodRecord<
                  z.ZodString,
                  z.ZodObject<
                    {
                      id: z.ZodString;
                      aircraftType: z.ZodString;
                      state: z.ZodEnum<
                        [
                          "idle",
                          "en route",
                          "on station",
                          "combat",
                          "rtb",
                          "waiting",
                          "maintenance"
                        ]
                      >;
                      maintenanceEndTime: z.ZodOptional<z.ZodNumber>;
                      a2GWeaponReadyTimer: z.ZodOptional<z.ZodNumber>;
                      a2AWeaponReadyTimer: z.ZodOptional<z.ZodNumber>;
                      availableTasks: z.ZodArray<z.ZodString, "many">;
                      alive: z.ZodBoolean;
                      destroyedTime: z.ZodOptional<z.ZodNumber>;
                      onboardNumber: z.ZodString;
                      homeBase: z.ZodObject<
                        {
                          type: z.ZodEnum<["airdrome", "farp", "carrier"]>;
                          name: z.ZodString;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          name: string;
                          type: "airdrome" | "farp" | "carrier";
                        },
                        {
                          name: string;
                          type: "airdrome" | "farp" | "carrier";
                        }
                      >;
                      loadout: z.ZodObject<
                        {
                          task: z.ZodUnion<
                            [
                              z.ZodEnum<
                                [
                                  "DEAD",
                                  "AWACS",
                                  "CAP",
                                  "Escort",
                                  "Pinpoint Strike",
                                  "CAS",
                                  "CSAR"
                                ]
                              >,
                              z.ZodLiteral<"default">
                            ]
                          >;
                          name: z.ZodString;
                          displayName: z.ZodString;
                          pylons: z.ZodArray<
                            z.ZodObject<
                              {
                                CLSID: z.ZodString;
                                num: z.ZodNumber;
                                total: z.ZodNumber;
                                count: z.ZodNumber;
                                type: z.ZodEnum<
                                  [
                                    "Fuel Tank",
                                    "Targeting Pod",
                                    "Gun Pod",
                                    "ECM Pod",
                                    "Other",
                                    "Weapon"
                                  ]
                                >;
                                weapon: z.ZodOptional<
                                  z.ZodUnion<
                                    [
                                      z.ZodObject<
                                        {
                                          type: z.ZodEnum<
                                            [
                                              "infrared",
                                              "active radar",
                                              "semi-active radar"
                                            ]
                                          >;
                                          range: z.ZodNumber;
                                          rangeType: z.ZodEnum<
                                            ["short", "medium", "long"]
                                          >;
                                          name: z.ZodString;
                                          displayName: z.ZodString;
                                          year: z.ZodOptional<z.ZodNumber>;
                                        },
                                        "strip",
                                        z.ZodTypeAny,
                                        {
                                          name: string;
                                          type:
                                            | "infrared"
                                            | "active radar"
                                            | "semi-active radar";
                                          displayName: string;
                                          range: number;
                                          rangeType:
                                            | "short"
                                            | "medium"
                                            | "long";
                                          year?: number | undefined;
                                        },
                                        {
                                          name: string;
                                          type:
                                            | "infrared"
                                            | "active radar"
                                            | "semi-active radar";
                                          displayName: string;
                                          range: number;
                                          rangeType:
                                            | "short"
                                            | "medium"
                                            | "long";
                                          year?: number | undefined;
                                        }
                                      >,
                                      z.ZodObject<
                                        {
                                          type: z.ZodEnum<
                                            [
                                              "Bomb",
                                              "Cluster",
                                              "Rocket",
                                              "Laser Guided Bomb",
                                              "GPS Guided Bomb",
                                              "TV Guided Bomb",
                                              "Laser Guided Rocket"
                                            ]
                                          >;
                                          target: z.ZodEnum<
                                            [
                                              "Anti-Armor",
                                              "Hard Target",
                                              "Medium Target",
                                              "Soft Target",
                                              "Ship",
                                              "Radar",
                                              "Light Structure",
                                              "Medium Structure",
                                              "Hard Structure"
                                            ]
                                          >;
                                          weight: z.ZodOptional<z.ZodNumber>;
                                          highDrag: z.ZodOptional<z.ZodBoolean>;
                                          name: z.ZodString;
                                          displayName: z.ZodString;
                                          year: z.ZodOptional<z.ZodNumber>;
                                        },
                                        "strip",
                                        z.ZodTypeAny,
                                        {
                                          name: string;
                                          type:
                                            | "Bomb"
                                            | "Cluster"
                                            | "Rocket"
                                            | "Laser Guided Bomb"
                                            | "GPS Guided Bomb"
                                            | "TV Guided Bomb"
                                            | "Laser Guided Rocket";
                                          target:
                                            | "Anti-Armor"
                                            | "Hard Target"
                                            | "Medium Target"
                                            | "Soft Target"
                                            | "Ship"
                                            | "Radar"
                                            | "Light Structure"
                                            | "Medium Structure"
                                            | "Hard Structure";
                                          displayName: string;
                                          weight?: number | undefined;
                                          highDrag?: boolean | undefined;
                                          year?: number | undefined;
                                        },
                                        {
                                          name: string;
                                          type:
                                            | "Bomb"
                                            | "Cluster"
                                            | "Rocket"
                                            | "Laser Guided Bomb"
                                            | "GPS Guided Bomb"
                                            | "TV Guided Bomb"
                                            | "Laser Guided Rocket";
                                          target:
                                            | "Anti-Armor"
                                            | "Hard Target"
                                            | "Medium Target"
                                            | "Soft Target"
                                            | "Ship"
                                            | "Radar"
                                            | "Light Structure"
                                            | "Medium Structure"
                                            | "Hard Structure";
                                          displayName: string;
                                          weight?: number | undefined;
                                          highDrag?: boolean | undefined;
                                          year?: number | undefined;
                                        }
                                      >,
                                      z.ZodObject<
                                        {
                                          type: z.ZodEnum<
                                            [
                                              "Missile",
                                              "Glide Bomb",
                                              "Laser Guided Missile",
                                              "Cruise Missile"
                                            ]
                                          >;
                                          range: z.ZodNumber;
                                          targets: z.ZodArray<
                                            z.ZodEnum<
                                              [
                                                "Anti-Armor",
                                                "Hard Target",
                                                "Medium Target",
                                                "Soft Target",
                                                "Ship",
                                                "Radar",
                                                "Light Structure",
                                                "Medium Structure",
                                                "Hard Structure"
                                              ]
                                            >,
                                            "many"
                                          >;
                                          name: z.ZodString;
                                          displayName: z.ZodString;
                                          year: z.ZodOptional<z.ZodNumber>;
                                        },
                                        "strip",
                                        z.ZodTypeAny,
                                        {
                                          name: string;
                                          type:
                                            | "Missile"
                                            | "Glide Bomb"
                                            | "Laser Guided Missile"
                                            | "Cruise Missile";
                                          displayName: string;
                                          range: number;
                                          targets: (
                                            | "Anti-Armor"
                                            | "Hard Target"
                                            | "Medium Target"
                                            | "Soft Target"
                                            | "Ship"
                                            | "Radar"
                                            | "Light Structure"
                                            | "Medium Structure"
                                            | "Hard Structure"
                                          )[];
                                          year?: number | undefined;
                                        },
                                        {
                                          name: string;
                                          type:
                                            | "Missile"
                                            | "Glide Bomb"
                                            | "Laser Guided Missile"
                                            | "Cruise Missile";
                                          displayName: string;
                                          range: number;
                                          targets: (
                                            | "Anti-Armor"
                                            | "Hard Target"
                                            | "Medium Target"
                                            | "Soft Target"
                                            | "Ship"
                                            | "Radar"
                                            | "Light Structure"
                                            | "Medium Structure"
                                            | "Hard Structure"
                                          )[];
                                          year?: number | undefined;
                                        }
                                      >
                                    ]
                                  >
                                >;
                              },
                              "strip",
                              z.ZodTypeAny,
                              {
                                type:
                                  | "Fuel Tank"
                                  | "Targeting Pod"
                                  | "Gun Pod"
                                  | "ECM Pod"
                                  | "Other"
                                  | "Weapon";
                                CLSID: string;
                                num: number;
                                total: number;
                                count: number;
                                weapon?:
                                  | {
                                      name: string;
                                      type:
                                        | "infrared"
                                        | "active radar"
                                        | "semi-active radar";
                                      displayName: string;
                                      range: number;
                                      rangeType: "short" | "medium" | "long";
                                      year?: number | undefined;
                                    }
                                  | {
                                      name: string;
                                      type:
                                        | "Bomb"
                                        | "Cluster"
                                        | "Rocket"
                                        | "Laser Guided Bomb"
                                        | "GPS Guided Bomb"
                                        | "TV Guided Bomb"
                                        | "Laser Guided Rocket";
                                      target:
                                        | "Anti-Armor"
                                        | "Hard Target"
                                        | "Medium Target"
                                        | "Soft Target"
                                        | "Ship"
                                        | "Radar"
                                        | "Light Structure"
                                        | "Medium Structure"
                                        | "Hard Structure";
                                      displayName: string;
                                      weight?: number | undefined;
                                      highDrag?: boolean | undefined;
                                      year?: number | undefined;
                                    }
                                  | {
                                      name: string;
                                      type:
                                        | "Missile"
                                        | "Glide Bomb"
                                        | "Laser Guided Missile"
                                        | "Cruise Missile";
                                      displayName: string;
                                      range: number;
                                      targets: (
                                        | "Anti-Armor"
                                        | "Hard Target"
                                        | "Medium Target"
                                        | "Soft Target"
                                        | "Ship"
                                        | "Radar"
                                        | "Light Structure"
                                        | "Medium Structure"
                                        | "Hard Structure"
                                      )[];
                                      year?: number | undefined;
                                    }
                                  | undefined;
                              },
                              {
                                type:
                                  | "Fuel Tank"
                                  | "Targeting Pod"
                                  | "Gun Pod"
                                  | "ECM Pod"
                                  | "Other"
                                  | "Weapon";
                                CLSID: string;
                                num: number;
                                total: number;
                                count: number;
                                weapon?:
                                  | {
                                      name: string;
                                      type:
                                        | "infrared"
                                        | "active radar"
                                        | "semi-active radar";
                                      displayName: string;
                                      range: number;
                                      rangeType: "short" | "medium" | "long";
                                      year?: number | undefined;
                                    }
                                  | {
                                      name: string;
                                      type:
                                        | "Bomb"
                                        | "Cluster"
                                        | "Rocket"
                                        | "Laser Guided Bomb"
                                        | "GPS Guided Bomb"
                                        | "TV Guided Bomb"
                                        | "Laser Guided Rocket";
                                      target:
                                        | "Anti-Armor"
                                        | "Hard Target"
                                        | "Medium Target"
                                        | "Soft Target"
                                        | "Ship"
                                        | "Radar"
                                        | "Light Structure"
                                        | "Medium Structure"
                                        | "Hard Structure";
                                      displayName: string;
                                      weight?: number | undefined;
                                      highDrag?: boolean | undefined;
                                      year?: number | undefined;
                                    }
                                  | {
                                      name: string;
                                      type:
                                        | "Missile"
                                        | "Glide Bomb"
                                        | "Laser Guided Missile"
                                        | "Cruise Missile";
                                      displayName: string;
                                      range: number;
                                      targets: (
                                        | "Anti-Armor"
                                        | "Hard Target"
                                        | "Medium Target"
                                        | "Soft Target"
                                        | "Ship"
                                        | "Radar"
                                        | "Light Structure"
                                        | "Medium Structure"
                                        | "Hard Structure"
                                      )[];
                                      year?: number | undefined;
                                    }
                                  | undefined;
                              }
                            >,
                            "many"
                          >;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          name: string;
                          task:
                            | "DEAD"
                            | "AWACS"
                            | "CAP"
                            | "Escort"
                            | "Pinpoint Strike"
                            | "CAS"
                            | "CSAR"
                            | "default";
                          displayName: string;
                          pylons: {
                            type:
                              | "Fuel Tank"
                              | "Targeting Pod"
                              | "Gun Pod"
                              | "ECM Pod"
                              | "Other"
                              | "Weapon";
                            CLSID: string;
                            num: number;
                            total: number;
                            count: number;
                            weapon?:
                              | {
                                  name: string;
                                  type:
                                    | "infrared"
                                    | "active radar"
                                    | "semi-active radar";
                                  displayName: string;
                                  range: number;
                                  rangeType: "short" | "medium" | "long";
                                  year?: number | undefined;
                                }
                              | {
                                  name: string;
                                  type:
                                    | "Bomb"
                                    | "Cluster"
                                    | "Rocket"
                                    | "Laser Guided Bomb"
                                    | "GPS Guided Bomb"
                                    | "TV Guided Bomb"
                                    | "Laser Guided Rocket";
                                  target:
                                    | "Anti-Armor"
                                    | "Hard Target"
                                    | "Medium Target"
                                    | "Soft Target"
                                    | "Ship"
                                    | "Radar"
                                    | "Light Structure"
                                    | "Medium Structure"
                                    | "Hard Structure";
                                  displayName: string;
                                  weight?: number | undefined;
                                  highDrag?: boolean | undefined;
                                  year?: number | undefined;
                                }
                              | {
                                  name: string;
                                  type:
                                    | "Missile"
                                    | "Glide Bomb"
                                    | "Laser Guided Missile"
                                    | "Cruise Missile";
                                  displayName: string;
                                  range: number;
                                  targets: (
                                    | "Anti-Armor"
                                    | "Hard Target"
                                    | "Medium Target"
                                    | "Soft Target"
                                    | "Ship"
                                    | "Radar"
                                    | "Light Structure"
                                    | "Medium Structure"
                                    | "Hard Structure"
                                  )[];
                                  year?: number | undefined;
                                }
                              | undefined;
                          }[];
                        },
                        {
                          name: string;
                          task:
                            | "DEAD"
                            | "AWACS"
                            | "CAP"
                            | "Escort"
                            | "Pinpoint Strike"
                            | "CAS"
                            | "CSAR"
                            | "default";
                          displayName: string;
                          pylons: {
                            type:
                              | "Fuel Tank"
                              | "Targeting Pod"
                              | "Gun Pod"
                              | "ECM Pod"
                              | "Other"
                              | "Weapon";
                            CLSID: string;
                            num: number;
                            total: number;
                            count: number;
                            weapon?:
                              | {
                                  name: string;
                                  type:
                                    | "infrared"
                                    | "active radar"
                                    | "semi-active radar";
                                  displayName: string;
                                  range: number;
                                  rangeType: "short" | "medium" | "long";
                                  year?: number | undefined;
                                }
                              | {
                                  name: string;
                                  type:
                                    | "Bomb"
                                    | "Cluster"
                                    | "Rocket"
                                    | "Laser Guided Bomb"
                                    | "GPS Guided Bomb"
                                    | "TV Guided Bomb"
                                    | "Laser Guided Rocket";
                                  target:
                                    | "Anti-Armor"
                                    | "Hard Target"
                                    | "Medium Target"
                                    | "Soft Target"
                                    | "Ship"
                                    | "Radar"
                                    | "Light Structure"
                                    | "Medium Structure"
                                    | "Hard Structure";
                                  displayName: string;
                                  weight?: number | undefined;
                                  highDrag?: boolean | undefined;
                                  year?: number | undefined;
                                }
                              | {
                                  name: string;
                                  type:
                                    | "Missile"
                                    | "Glide Bomb"
                                    | "Laser Guided Missile"
                                    | "Cruise Missile";
                                  displayName: string;
                                  range: number;
                                  targets: (
                                    | "Anti-Armor"
                                    | "Hard Target"
                                    | "Medium Target"
                                    | "Soft Target"
                                    | "Ship"
                                    | "Radar"
                                    | "Light Structure"
                                    | "Medium Structure"
                                    | "Hard Structure"
                                  )[];
                                  year?: number | undefined;
                                }
                              | undefined;
                          }[];
                        }
                      >;
                      disabled: z.ZodOptional<z.ZodBoolean>;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      id: string;
                      aircraftType: string;
                      state:
                        | "idle"
                        | "en route"
                        | "on station"
                        | "combat"
                        | "rtb"
                        | "waiting"
                        | "maintenance";
                      availableTasks: string[];
                      alive: boolean;
                      onboardNumber: string;
                      homeBase: {
                        name: string;
                        type: "airdrome" | "farp" | "carrier";
                      };
                      loadout: {
                        name: string;
                        task:
                          | "DEAD"
                          | "AWACS"
                          | "CAP"
                          | "Escort"
                          | "Pinpoint Strike"
                          | "CAS"
                          | "CSAR"
                          | "default";
                        displayName: string;
                        pylons: {
                          type:
                            | "Fuel Tank"
                            | "Targeting Pod"
                            | "Gun Pod"
                            | "ECM Pod"
                            | "Other"
                            | "Weapon";
                          CLSID: string;
                          num: number;
                          total: number;
                          count: number;
                          weapon?:
                            | {
                                name: string;
                                type:
                                  | "infrared"
                                  | "active radar"
                                  | "semi-active radar";
                                displayName: string;
                                range: number;
                                rangeType: "short" | "medium" | "long";
                                year?: number | undefined;
                              }
                            | {
                                name: string;
                                type:
                                  | "Bomb"
                                  | "Cluster"
                                  | "Rocket"
                                  | "Laser Guided Bomb"
                                  | "GPS Guided Bomb"
                                  | "TV Guided Bomb"
                                  | "Laser Guided Rocket";
                                target:
                                  | "Anti-Armor"
                                  | "Hard Target"
                                  | "Medium Target"
                                  | "Soft Target"
                                  | "Ship"
                                  | "Radar"
                                  | "Light Structure"
                                  | "Medium Structure"
                                  | "Hard Structure";
                                displayName: string;
                                weight?: number | undefined;
                                highDrag?: boolean | undefined;
                                year?: number | undefined;
                              }
                            | {
                                name: string;
                                type:
                                  | "Missile"
                                  | "Glide Bomb"
                                  | "Laser Guided Missile"
                                  | "Cruise Missile";
                                displayName: string;
                                range: number;
                                targets: (
                                  | "Anti-Armor"
                                  | "Hard Target"
                                  | "Medium Target"
                                  | "Soft Target"
                                  | "Ship"
                                  | "Radar"
                                  | "Light Structure"
                                  | "Medium Structure"
                                  | "Hard Structure"
                                )[];
                                year?: number | undefined;
                              }
                            | undefined;
                        }[];
                      };
                      maintenanceEndTime?: number | undefined;
                      a2GWeaponReadyTimer?: number | undefined;
                      a2AWeaponReadyTimer?: number | undefined;
                      destroyedTime?: number | undefined;
                      disabled?: boolean | undefined;
                    },
                    {
                      id: string;
                      aircraftType: string;
                      state:
                        | "idle"
                        | "en route"
                        | "on station"
                        | "combat"
                        | "rtb"
                        | "waiting"
                        | "maintenance";
                      availableTasks: string[];
                      alive: boolean;
                      onboardNumber: string;
                      homeBase: {
                        name: string;
                        type: "airdrome" | "farp" | "carrier";
                      };
                      loadout: {
                        name: string;
                        task:
                          | "DEAD"
                          | "AWACS"
                          | "CAP"
                          | "Escort"
                          | "Pinpoint Strike"
                          | "CAS"
                          | "CSAR"
                          | "default";
                        displayName: string;
                        pylons: {
                          type:
                            | "Fuel Tank"
                            | "Targeting Pod"
                            | "Gun Pod"
                            | "ECM Pod"
                            | "Other"
                            | "Weapon";
                          CLSID: string;
                          num: number;
                          total: number;
                          count: number;
                          weapon?:
                            | {
                                name: string;
                                type:
                                  | "infrared"
                                  | "active radar"
                                  | "semi-active radar";
                                displayName: string;
                                range: number;
                                rangeType: "short" | "medium" | "long";
                                year?: number | undefined;
                              }
                            | {
                                name: string;
                                type:
                                  | "Bomb"
                                  | "Cluster"
                                  | "Rocket"
                                  | "Laser Guided Bomb"
                                  | "GPS Guided Bomb"
                                  | "TV Guided Bomb"
                                  | "Laser Guided Rocket";
                                target:
                                  | "Anti-Armor"
                                  | "Hard Target"
                                  | "Medium Target"
                                  | "Soft Target"
                                  | "Ship"
                                  | "Radar"
                                  | "Light Structure"
                                  | "Medium Structure"
                                  | "Hard Structure";
                                displayName: string;
                                weight?: number | undefined;
                                highDrag?: boolean | undefined;
                                year?: number | undefined;
                              }
                            | {
                                name: string;
                                type:
                                  | "Missile"
                                  | "Glide Bomb"
                                  | "Laser Guided Missile"
                                  | "Cruise Missile";
                                displayName: string;
                                range: number;
                                targets: (
                                  | "Anti-Armor"
                                  | "Hard Target"
                                  | "Medium Target"
                                  | "Soft Target"
                                  | "Ship"
                                  | "Radar"
                                  | "Light Structure"
                                  | "Medium Structure"
                                  | "Hard Structure"
                                )[];
                                year?: number | undefined;
                              }
                            | undefined;
                        }[];
                      };
                      maintenanceEndTime?: number | undefined;
                      a2GWeaponReadyTimer?: number | undefined;
                      a2AWeaponReadyTimer?: number | undefined;
                      destroyedTime?: number | undefined;
                      disabled?: boolean | undefined;
                    }
                  >
                >;
                groundUnits: z.ZodRecord<
                  z.ZodString,
                  z.ZodObject<
                    {
                      id: z.ZodString;
                      name: z.ZodString;
                      displayName: z.ZodString;
                      category: z.ZodString;
                      alive: z.ZodBoolean;
                      vehicleTypes: z.ZodArray<
                        z.ZodEnum<
                          [
                            "MBT",
                            "Track Radar",
                            "Search Radar",
                            "SAM Launcher",
                            "Unarmored",
                            "Armored",
                            "IFV",
                            "SHORAD",
                            "Transport",
                            "Power Generator",
                            "Refuel",
                            "Control Unit",
                            "EW",
                            "Infantry"
                          ]
                        >,
                        "many"
                      >;
                      destroyedTime: z.ZodOptional<z.ZodNumber>;
                      state: z.ZodEnum<["idle", "en route", "on objective"]>;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      id: string;
                      name: string;
                      state: "idle" | "en route" | "on objective";
                      alive: boolean;
                      displayName: string;
                      category: string;
                      vehicleTypes: (
                        | "MBT"
                        | "Track Radar"
                        | "Search Radar"
                        | "SAM Launcher"
                        | "Unarmored"
                        | "Armored"
                        | "IFV"
                        | "SHORAD"
                        | "Transport"
                        | "Power Generator"
                        | "Refuel"
                        | "Control Unit"
                        | "EW"
                        | "Infantry"
                      )[];
                      destroyedTime?: number | undefined;
                    },
                    {
                      id: string;
                      name: string;
                      state: "idle" | "en route" | "on objective";
                      alive: boolean;
                      displayName: string;
                      category: string;
                      vehicleTypes: (
                        | "MBT"
                        | "Track Radar"
                        | "Search Radar"
                        | "SAM Launcher"
                        | "Unarmored"
                        | "Armored"
                        | "IFV"
                        | "SHORAD"
                        | "Transport"
                        | "Power Generator"
                        | "Refuel"
                        | "Control Unit"
                        | "EW"
                        | "Infantry"
                      )[];
                      destroyedTime?: number | undefined;
                    }
                  >
                >;
              },
              "strip",
              z.ZodTypeAny,
              {
                aircrafts: Record<
                  string,
                  {
                    id: string;
                    aircraftType: string;
                    state:
                      | "idle"
                      | "en route"
                      | "on station"
                      | "combat"
                      | "rtb"
                      | "waiting"
                      | "maintenance";
                    availableTasks: string[];
                    alive: boolean;
                    onboardNumber: string;
                    homeBase: {
                      name: string;
                      type: "airdrome" | "farp" | "carrier";
                    };
                    loadout: {
                      name: string;
                      task:
                        | "DEAD"
                        | "AWACS"
                        | "CAP"
                        | "Escort"
                        | "Pinpoint Strike"
                        | "CAS"
                        | "CSAR"
                        | "default";
                      displayName: string;
                      pylons: {
                        type:
                          | "Fuel Tank"
                          | "Targeting Pod"
                          | "Gun Pod"
                          | "ECM Pod"
                          | "Other"
                          | "Weapon";
                        CLSID: string;
                        num: number;
                        total: number;
                        count: number;
                        weapon?:
                          | {
                              name: string;
                              type:
                                | "infrared"
                                | "active radar"
                                | "semi-active radar";
                              displayName: string;
                              range: number;
                              rangeType: "short" | "medium" | "long";
                              year?: number | undefined;
                            }
                          | {
                              name: string;
                              type:
                                | "Bomb"
                                | "Cluster"
                                | "Rocket"
                                | "Laser Guided Bomb"
                                | "GPS Guided Bomb"
                                | "TV Guided Bomb"
                                | "Laser Guided Rocket";
                              target:
                                | "Anti-Armor"
                                | "Hard Target"
                                | "Medium Target"
                                | "Soft Target"
                                | "Ship"
                                | "Radar"
                                | "Light Structure"
                                | "Medium Structure"
                                | "Hard Structure";
                              displayName: string;
                              weight?: number | undefined;
                              highDrag?: boolean | undefined;
                              year?: number | undefined;
                            }
                          | {
                              name: string;
                              type:
                                | "Missile"
                                | "Glide Bomb"
                                | "Laser Guided Missile"
                                | "Cruise Missile";
                              displayName: string;
                              range: number;
                              targets: (
                                | "Anti-Armor"
                                | "Hard Target"
                                | "Medium Target"
                                | "Soft Target"
                                | "Ship"
                                | "Radar"
                                | "Light Structure"
                                | "Medium Structure"
                                | "Hard Structure"
                              )[];
                              year?: number | undefined;
                            }
                          | undefined;
                      }[];
                    };
                    maintenanceEndTime?: number | undefined;
                    a2GWeaponReadyTimer?: number | undefined;
                    a2AWeaponReadyTimer?: number | undefined;
                    destroyedTime?: number | undefined;
                    disabled?: boolean | undefined;
                  }
                >;
                groundUnits: Record<
                  string,
                  {
                    id: string;
                    name: string;
                    state: "idle" | "en route" | "on objective";
                    alive: boolean;
                    displayName: string;
                    category: string;
                    vehicleTypes: (
                      | "MBT"
                      | "Track Radar"
                      | "Search Radar"
                      | "SAM Launcher"
                      | "Unarmored"
                      | "Armored"
                      | "IFV"
                      | "SHORAD"
                      | "Transport"
                      | "Power Generator"
                      | "Refuel"
                      | "Control Unit"
                      | "EW"
                      | "Infantry"
                    )[];
                    destroyedTime?: number | undefined;
                  }
                >;
              },
              {
                aircrafts: Record<
                  string,
                  {
                    id: string;
                    aircraftType: string;
                    state:
                      | "idle"
                      | "en route"
                      | "on station"
                      | "combat"
                      | "rtb"
                      | "waiting"
                      | "maintenance";
                    availableTasks: string[];
                    alive: boolean;
                    onboardNumber: string;
                    homeBase: {
                      name: string;
                      type: "airdrome" | "farp" | "carrier";
                    };
                    loadout: {
                      name: string;
                      task:
                        | "DEAD"
                        | "AWACS"
                        | "CAP"
                        | "Escort"
                        | "Pinpoint Strike"
                        | "CAS"
                        | "CSAR"
                        | "default";
                      displayName: string;
                      pylons: {
                        type:
                          | "Fuel Tank"
                          | "Targeting Pod"
                          | "Gun Pod"
                          | "ECM Pod"
                          | "Other"
                          | "Weapon";
                        CLSID: string;
                        num: number;
                        total: number;
                        count: number;
                        weapon?:
                          | {
                              name: string;
                              type:
                                | "infrared"
                                | "active radar"
                                | "semi-active radar";
                              displayName: string;
                              range: number;
                              rangeType: "short" | "medium" | "long";
                              year?: number | undefined;
                            }
                          | {
                              name: string;
                              type:
                                | "Bomb"
                                | "Cluster"
                                | "Rocket"
                                | "Laser Guided Bomb"
                                | "GPS Guided Bomb"
                                | "TV Guided Bomb"
                                | "Laser Guided Rocket";
                              target:
                                | "Anti-Armor"
                                | "Hard Target"
                                | "Medium Target"
                                | "Soft Target"
                                | "Ship"
                                | "Radar"
                                | "Light Structure"
                                | "Medium Structure"
                                | "Hard Structure";
                              displayName: string;
                              weight?: number | undefined;
                              highDrag?: boolean | undefined;
                              year?: number | undefined;
                            }
                          | {
                              name: string;
                              type:
                                | "Missile"
                                | "Glide Bomb"
                                | "Laser Guided Missile"
                                | "Cruise Missile";
                              displayName: string;
                              range: number;
                              targets: (
                                | "Anti-Armor"
                                | "Hard Target"
                                | "Medium Target"
                                | "Soft Target"
                                | "Ship"
                                | "Radar"
                                | "Light Structure"
                                | "Medium Structure"
                                | "Hard Structure"
                              )[];
                              year?: number | undefined;
                            }
                          | undefined;
                      }[];
                    };
                    maintenanceEndTime?: number | undefined;
                    a2GWeaponReadyTimer?: number | undefined;
                    a2AWeaponReadyTimer?: number | undefined;
                    destroyedTime?: number | undefined;
                    disabled?: boolean | undefined;
                  }
                >;
                groundUnits: Record<
                  string,
                  {
                    id: string;
                    name: string;
                    state: "idle" | "en route" | "on objective";
                    alive: boolean;
                    displayName: string;
                    category: string;
                    vehicleTypes: (
                      | "MBT"
                      | "Track Radar"
                      | "Search Radar"
                      | "SAM Launcher"
                      | "Unarmored"
                      | "Armored"
                      | "IFV"
                      | "SHORAD"
                      | "Transport"
                      | "Power Generator"
                      | "Refuel"
                      | "Control Unit"
                      | "EW"
                      | "Infantry"
                    )[];
                    destroyedTime?: number | undefined;
                  }
                >;
              }
            >;
            packages: z.ZodArray<
              z.ZodObject<
                {
                  id: z.ZodString;
                  startTime: z.ZodNumber;
                  taskEndTime: z.ZodNumber;
                  endTime: z.ZodNumber;
                  task: z.ZodEnum<
                    [
                      "DEAD",
                      "AWACS",
                      "CAP",
                      "Escort",
                      "Pinpoint Strike",
                      "CAS",
                      "CSAR"
                    ]
                  >;
                  flightGroups: z.ZodArray<
                    z.ZodObject<
                      {
                        id: z.ZodString;
                        name: z.ZodString;
                        units: z.ZodArray<
                          z.ZodObject<
                            {
                              id: z.ZodString;
                              name: z.ZodString;
                              callSign: z.ZodUnion<
                                [
                                  z.ZodNumber,
                                  z.ZodObject<
                                    {
                                      1: z.ZodNumber;
                                      2: z.ZodNumber;
                                      3: z.ZodNumber;
                                      name: z.ZodString;
                                    },
                                    "strip",
                                    z.ZodTypeAny,
                                    {
                                      name: string;
                                      2: number;
                                      1: number;
                                      3: number;
                                    },
                                    {
                                      name: string;
                                      2: number;
                                      1: number;
                                      3: number;
                                    }
                                  >
                                ]
                              >;
                              client: z.ZodBoolean;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                              id: string;
                              name: string;
                              callSign: (
                                | number
                                | {
                                    name: string;
                                    2: number;
                                    1: number;
                                    3: number;
                                  }
                              ) &
                                (
                                  | number
                                  | {
                                      name: string;
                                      2: number;
                                      1: number;
                                      3: number;
                                    }
                                  | undefined
                                );
                              client: boolean;
                            },
                            {
                              id: string;
                              name: string;
                              callSign: (
                                | number
                                | {
                                    name: string;
                                    2: number;
                                    1: number;
                                    3: number;
                                  }
                              ) &
                                (
                                  | number
                                  | {
                                      name: string;
                                      2: number;
                                      1: number;
                                      3: number;
                                    }
                                  | undefined
                                );
                              client: boolean;
                            }
                          >,
                          "many"
                        >;
                        task: z.ZodEnum<
                          [
                            "DEAD",
                            "AWACS",
                            "CAP",
                            "Escort",
                            "Pinpoint Strike",
                            "CAS",
                            "CSAR"
                          ]
                        >;
                        waypoints: z.ZodArray<
                          z.ZodObject<
                            {
                              name: z.ZodString;
                              time: z.ZodNumber;
                              duration: z.ZodOptional<z.ZodNumber>;
                              speed: z.ZodNumber;
                              position: z.ZodObject<
                                {
                                  x: z.ZodNumber;
                                  y: z.ZodNumber;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                  x: number;
                                  y: number;
                                },
                                {
                                  x: number;
                                  y: number;
                                }
                              >;
                              taskStart: z.ZodOptional<z.ZodBoolean>;
                              onGround: z.ZodOptional<z.ZodBoolean>;
                              hold: z.ZodOptional<z.ZodBoolean>;
                              racetrack: z.ZodOptional<
                                z.ZodObject<
                                  {
                                    position: z.ZodObject<
                                      {
                                        x: z.ZodNumber;
                                        y: z.ZodNumber;
                                      },
                                      "strip",
                                      z.ZodTypeAny,
                                      {
                                        x: number;
                                        y: number;
                                      },
                                      {
                                        x: number;
                                        y: number;
                                      }
                                    >;
                                    name: z.ZodString;
                                    distance: z.ZodNumber;
                                    duration: z.ZodNumber;
                                  },
                                  "strip",
                                  z.ZodTypeAny,
                                  {
                                    name: string;
                                    duration: number;
                                    position: {
                                      x: number;
                                      y: number;
                                    };
                                    distance: number;
                                  },
                                  {
                                    name: string;
                                    duration: number;
                                    position: {
                                      x: number;
                                      y: number;
                                    };
                                    distance: number;
                                  }
                                >
                              >;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                              name: string;
                              time: number;
                              speed: number;
                              position: {
                                x: number;
                                y: number;
                              };
                              duration?: number | undefined;
                              taskStart?: boolean | undefined;
                              onGround?: boolean | undefined;
                              hold?: boolean | undefined;
                              racetrack?:
                                | {
                                    name: string;
                                    duration: number;
                                    position: {
                                      x: number;
                                      y: number;
                                    };
                                    distance: number;
                                  }
                                | undefined;
                            },
                            {
                              name: string;
                              time: number;
                              speed: number;
                              position: {
                                x: number;
                                y: number;
                              };
                              duration?: number | undefined;
                              taskStart?: boolean | undefined;
                              onGround?: boolean | undefined;
                              hold?: boolean | undefined;
                              racetrack?:
                                | {
                                    name: string;
                                    duration: number;
                                    position: {
                                      x: number;
                                      y: number;
                                    };
                                    distance: number;
                                  }
                                | undefined;
                            }
                          >,
                          "many"
                        >;
                        startTime: z.ZodNumber;
                        designatedStartTime: z.ZodNumber;
                        tot: z.ZodNumber;
                        landingTime: z.ZodNumber;
                        target: z.ZodOptional<z.ZodString>;
                        position: z.ZodObject<
                          {
                            x: z.ZodNumber;
                            y: z.ZodNumber;
                          },
                          "strip",
                          z.ZodTypeAny,
                          {
                            x: number;
                            y: number;
                          },
                          {
                            x: number;
                            y: number;
                          }
                        >;
                        airdromeName: z.ZodString;
                        frequency: z.ZodOptional<z.ZodNumber>;
                        jtacFrequency: z.ZodOptional<z.ZodNumber>;
                      },
                      "strip",
                      z.ZodTypeAny,
                      {
                        id: string;
                        name: string;
                        units: {
                          id: string;
                          name: string;
                          callSign: (
                            | number
                            | {
                                name: string;
                                2: number;
                                1: number;
                                3: number;
                              }
                          ) &
                            (
                              | number
                              | {
                                  name: string;
                                  2: number;
                                  1: number;
                                  3: number;
                                }
                              | undefined
                            );
                          client: boolean;
                        }[];
                        task:
                          | "DEAD"
                          | "AWACS"
                          | "CAP"
                          | "Escort"
                          | "Pinpoint Strike"
                          | "CAS"
                          | "CSAR";
                        waypoints: {
                          name: string;
                          time: number;
                          speed: number;
                          position: {
                            x: number;
                            y: number;
                          };
                          duration?: number | undefined;
                          taskStart?: boolean | undefined;
                          onGround?: boolean | undefined;
                          hold?: boolean | undefined;
                          racetrack?:
                            | {
                                name: string;
                                duration: number;
                                position: {
                                  x: number;
                                  y: number;
                                };
                                distance: number;
                              }
                            | undefined;
                        }[];
                        position: {
                          x: number;
                          y: number;
                        };
                        startTime: number;
                        designatedStartTime: number;
                        tot: number;
                        landingTime: number;
                        airdromeName: string;
                        target?: string | undefined;
                        frequency?: number | undefined;
                        jtacFrequency?: number | undefined;
                      },
                      {
                        id: string;
                        name: string;
                        units: {
                          id: string;
                          name: string;
                          callSign: (
                            | number
                            | {
                                name: string;
                                2: number;
                                1: number;
                                3: number;
                              }
                          ) &
                            (
                              | number
                              | {
                                  name: string;
                                  2: number;
                                  1: number;
                                  3: number;
                                }
                              | undefined
                            );
                          client: boolean;
                        }[];
                        task:
                          | "DEAD"
                          | "AWACS"
                          | "CAP"
                          | "Escort"
                          | "Pinpoint Strike"
                          | "CAS"
                          | "CSAR";
                        waypoints: {
                          name: string;
                          time: number;
                          speed: number;
                          position: {
                            x: number;
                            y: number;
                          };
                          duration?: number | undefined;
                          taskStart?: boolean | undefined;
                          onGround?: boolean | undefined;
                          hold?: boolean | undefined;
                          racetrack?:
                            | {
                                name: string;
                                duration: number;
                                position: {
                                  x: number;
                                  y: number;
                                };
                                distance: number;
                              }
                            | undefined;
                        }[];
                        position: {
                          x: number;
                          y: number;
                        };
                        startTime: number;
                        designatedStartTime: number;
                        tot: number;
                        landingTime: number;
                        airdromeName: string;
                        target?: string | undefined;
                        frequency?: number | undefined;
                        jtacFrequency?: number | undefined;
                      }
                    >,
                    "many"
                  >;
                  frequency: z.ZodNumber;
                },
                "strip",
                z.ZodTypeAny,
                {
                  id: string;
                  task:
                    | "DEAD"
                    | "AWACS"
                    | "CAP"
                    | "Escort"
                    | "Pinpoint Strike"
                    | "CAS"
                    | "CSAR";
                  startTime: number;
                  frequency: number;
                  taskEndTime: number;
                  endTime: number;
                  flightGroups: {
                    id: string;
                    name: string;
                    units: {
                      id: string;
                      name: string;
                      callSign: (
                        | number
                        | {
                            name: string;
                            2: number;
                            1: number;
                            3: number;
                          }
                      ) &
                        (
                          | number
                          | {
                              name: string;
                              2: number;
                              1: number;
                              3: number;
                            }
                          | undefined
                        );
                      client: boolean;
                    }[];
                    task:
                      | "DEAD"
                      | "AWACS"
                      | "CAP"
                      | "Escort"
                      | "Pinpoint Strike"
                      | "CAS"
                      | "CSAR";
                    waypoints: {
                      name: string;
                      time: number;
                      speed: number;
                      position: {
                        x: number;
                        y: number;
                      };
                      duration?: number | undefined;
                      taskStart?: boolean | undefined;
                      onGround?: boolean | undefined;
                      hold?: boolean | undefined;
                      racetrack?:
                        | {
                            name: string;
                            duration: number;
                            position: {
                              x: number;
                              y: number;
                            };
                            distance: number;
                          }
                        | undefined;
                    }[];
                    position: {
                      x: number;
                      y: number;
                    };
                    startTime: number;
                    designatedStartTime: number;
                    tot: number;
                    landingTime: number;
                    airdromeName: string;
                    target?: string | undefined;
                    frequency?: number | undefined;
                    jtacFrequency?: number | undefined;
                  }[];
                },
                {
                  id: string;
                  task:
                    | "DEAD"
                    | "AWACS"
                    | "CAP"
                    | "Escort"
                    | "Pinpoint Strike"
                    | "CAS"
                    | "CSAR";
                  startTime: number;
                  frequency: number;
                  taskEndTime: number;
                  endTime: number;
                  flightGroups: {
                    id: string;
                    name: string;
                    units: {
                      id: string;
                      name: string;
                      callSign: (
                        | number
                        | {
                            name: string;
                            2: number;
                            1: number;
                            3: number;
                          }
                      ) &
                        (
                          | number
                          | {
                              name: string;
                              2: number;
                              1: number;
                              3: number;
                            }
                          | undefined
                        );
                      client: boolean;
                    }[];
                    task:
                      | "DEAD"
                      | "AWACS"
                      | "CAP"
                      | "Escort"
                      | "Pinpoint Strike"
                      | "CAS"
                      | "CSAR";
                    waypoints: {
                      name: string;
                      time: number;
                      speed: number;
                      position: {
                        x: number;
                        y: number;
                      };
                      duration?: number | undefined;
                      taskStart?: boolean | undefined;
                      onGround?: boolean | undefined;
                      hold?: boolean | undefined;
                      racetrack?:
                        | {
                            name: string;
                            duration: number;
                            position: {
                              x: number;
                              y: number;
                            };
                            distance: number;
                          }
                        | undefined;
                    }[];
                    position: {
                      x: number;
                      y: number;
                    };
                    startTime: number;
                    designatedStartTime: number;
                    tot: number;
                    landingTime: number;
                    airdromeName: string;
                    target?: string | undefined;
                    frequency?: number | undefined;
                    jtacFrequency?: number | undefined;
                  }[];
                }
              >,
              "many"
            >;
            groundGroups: z.ZodArray<
              z.ZodUnion<
                [
                  z.ZodObject<
                    {
                      id: z.ZodString;
                      name: z.ZodString;
                      unitIds: z.ZodArray<z.ZodString, "many">;
                      shoradUnitIds: z.ZodArray<z.ZodString, "many">;
                      position: z.ZodObject<
                        {
                          x: z.ZodNumber;
                          y: z.ZodNumber;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          x: number;
                          y: number;
                        },
                        {
                          x: number;
                          y: number;
                        }
                      >;
                      objectiveName: z.ZodString;
                      state: z.ZodEnum<["en route", "on objective", "combat"]>;
                      startTime: z.ZodNumber;
                      startObjectiveName: z.ZodString;
                      type: z.ZodEnum<["armor", "mbt", "infantry", "ew"]>;
                      combatTimer: z.ZodOptional<z.ZodNumber>;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      id: string;
                      name: string;
                      type: "armor" | "mbt" | "infantry" | "ew";
                      position: {
                        x: number;
                        y: number;
                      };
                      startTime: number;
                      state: "en route" | "combat" | "on objective";
                      unitIds: string[];
                      shoradUnitIds: string[];
                      objectiveName: string;
                      startObjectiveName: string;
                      combatTimer?: number | undefined;
                    },
                    {
                      id: string;
                      name: string;
                      type: "armor" | "mbt" | "infantry" | "ew";
                      position: {
                        x: number;
                        y: number;
                      };
                      startTime: number;
                      state: "en route" | "combat" | "on objective";
                      unitIds: string[];
                      shoradUnitIds: string[];
                      objectiveName: string;
                      startObjectiveName: string;
                      combatTimer?: number | undefined;
                    }
                  >,
                  z.ZodObject<
                    {
                      id: z.ZodString;
                      name: z.ZodString;
                      position: z.ZodObject<
                        {
                          x: z.ZodNumber;
                          y: z.ZodNumber;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          x: number;
                          y: number;
                        },
                        {
                          x: number;
                          y: number;
                        }
                      >;
                      startTime: z.ZodNumber;
                      state: z.ZodEnum<["en route", "on objective", "combat"]>;
                      unitIds: z.ZodArray<z.ZodString, "many">;
                      shoradUnitIds: z.ZodArray<z.ZodString, "many">;
                      objectiveName: z.ZodString;
                      startObjectiveName: z.ZodString;
                      combatTimer: z.ZodOptional<z.ZodNumber>;
                      type: z.ZodEnum<["sam"]>;
                      range: z.ZodNumber;
                      operational: z.ZodBoolean;
                      fireInterval: z.ZodNumber;
                      samType: z.ZodEnum<
                        ["SA-10-300", "SA-6", "SA-5", "SA-3", "SA-2", "Hawk"]
                      >;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      id: string;
                      name: string;
                      type: "sam";
                      position: {
                        x: number;
                        y: number;
                      };
                      startTime: number;
                      state: "en route" | "combat" | "on objective";
                      range: number;
                      unitIds: string[];
                      shoradUnitIds: string[];
                      objectiveName: string;
                      startObjectiveName: string;
                      operational: boolean;
                      fireInterval: number;
                      samType:
                        | "SA-10-300"
                        | "SA-6"
                        | "SA-5"
                        | "SA-3"
                        | "SA-2"
                        | "Hawk";
                      combatTimer?: number | undefined;
                    },
                    {
                      id: string;
                      name: string;
                      type: "sam";
                      position: {
                        x: number;
                        y: number;
                      };
                      startTime: number;
                      state: "en route" | "combat" | "on objective";
                      range: number;
                      unitIds: string[];
                      shoradUnitIds: string[];
                      objectiveName: string;
                      startObjectiveName: string;
                      operational: boolean;
                      fireInterval: number;
                      samType:
                        | "SA-10-300"
                        | "SA-6"
                        | "SA-5"
                        | "SA-3"
                        | "SA-2"
                        | "Hawk";
                      combatTimer?: number | undefined;
                    }
                  >
                ]
              >,
              "many"
            >;
            shipGroups: z.ZodOptional<
              z.ZodArray<
                z.ZodObject<
                  {
                    name: z.ZodString;
                    position: z.ZodObject<
                      {
                        x: z.ZodNumber;
                        y: z.ZodNumber;
                      },
                      "strip",
                      z.ZodTypeAny,
                      {
                        x: number;
                        y: number;
                      },
                      {
                        x: number;
                        y: number;
                      }
                    >;
                  },
                  "strip",
                  z.ZodTypeAny,
                  {
                    name: string;
                    position: {
                      x: number;
                      y: number;
                    };
                  },
                  {
                    name: string;
                    position: {
                      x: number;
                      y: number;
                    };
                  }
                >,
                "many"
              >
            >;
            awacsFrequency: z.ZodNumber;
            structures: z.ZodRecord<
              z.ZodString,
              z.ZodUnion<
                [
                  z.ZodObject<
                    {
                      id: z.ZodString;
                      name: z.ZodString;
                      position: z.ZodObject<
                        {
                          x: z.ZodNumber;
                          y: z.ZodNumber;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          x: number;
                          y: number;
                        },
                        {
                          x: number;
                          y: number;
                        }
                      >;
                      state: z.ZodEnum<["active", "destroyed", "deactivated"]>;
                      objectiveName: z.ZodString;
                      groupId: z.ZodNumber;
                      buildings: z.ZodArray<
                        z.ZodObject<
                          {
                            name: z.ZodString;
                            alive: z.ZodBoolean;
                            destroyedTime: z.ZodOptional<z.ZodNumber>;
                            repairScore: z.ZodOptional<z.ZodNumber>;
                            offset: z.ZodObject<
                              {
                                x: z.ZodNumber;
                                y: z.ZodNumber;
                              },
                              "strip",
                              z.ZodTypeAny,
                              {
                                x: number;
                                y: number;
                              },
                              {
                                x: number;
                                y: number;
                              }
                            >;
                            heading: z.ZodNumber;
                            category: z.ZodEnum<
                              ["Fortifications", "Heliports"]
                            >;
                            shapeName: z.ZodString;
                            type: z.ZodString;
                          },
                          "strip",
                          z.ZodTypeAny,
                          {
                            name: string;
                            type: string;
                            alive: boolean;
                            category: "Fortifications" | "Heliports";
                            offset: {
                              x: number;
                              y: number;
                            };
                            heading: number;
                            shapeName: string;
                            destroyedTime?: number | undefined;
                            repairScore?: number | undefined;
                          },
                          {
                            name: string;
                            type: string;
                            alive: boolean;
                            category: "Fortifications" | "Heliports";
                            offset: {
                              x: number;
                              y: number;
                            };
                            heading: number;
                            shapeName: string;
                            destroyedTime?: number | undefined;
                            repairScore?: number | undefined;
                          }
                        >,
                        "many"
                      >;
                      type: z.ZodEnum<
                        [
                          "Ammo Depot",
                          "Farp",
                          "Command Center",
                          "Power Plant",
                          "Fuel Storage",
                          "Hospital",
                          "Prison"
                        ]
                      >;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      id: string;
                      name: string;
                      type:
                        | "Ammo Depot"
                        | "Farp"
                        | "Command Center"
                        | "Power Plant"
                        | "Fuel Storage"
                        | "Hospital"
                        | "Prison";
                      position: {
                        x: number;
                        y: number;
                      };
                      state: "active" | "destroyed" | "deactivated";
                      objectiveName: string;
                      groupId: number;
                      buildings: {
                        name: string;
                        type: string;
                        alive: boolean;
                        category: "Fortifications" | "Heliports";
                        offset: {
                          x: number;
                          y: number;
                        };
                        heading: number;
                        shapeName: string;
                        destroyedTime?: number | undefined;
                        repairScore?: number | undefined;
                      }[];
                    },
                    {
                      id: string;
                      name: string;
                      type:
                        | "Ammo Depot"
                        | "Farp"
                        | "Command Center"
                        | "Power Plant"
                        | "Fuel Storage"
                        | "Hospital"
                        | "Prison";
                      position: {
                        x: number;
                        y: number;
                      };
                      state: "active" | "destroyed" | "deactivated";
                      objectiveName: string;
                      groupId: number;
                      buildings: {
                        name: string;
                        type: string;
                        alive: boolean;
                        category: "Fortifications" | "Heliports";
                        offset: {
                          x: number;
                          y: number;
                        };
                        heading: number;
                        shapeName: string;
                        destroyedTime?: number | undefined;
                        repairScore?: number | undefined;
                      }[];
                    }
                  >,
                  z.ZodObject<
                    {
                      id: z.ZodString;
                      name: z.ZodString;
                      position: z.ZodObject<
                        {
                          x: z.ZodNumber;
                          y: z.ZodNumber;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          x: number;
                          y: number;
                        },
                        {
                          x: number;
                          y: number;
                        }
                      >;
                      state: z.ZodEnum<["active", "destroyed", "deactivated"]>;
                      objectiveName: z.ZodString;
                      groupId: z.ZodNumber;
                      buildings: z.ZodArray<
                        z.ZodObject<
                          {
                            name: z.ZodString;
                            alive: z.ZodBoolean;
                            destroyedTime: z.ZodOptional<z.ZodNumber>;
                            repairScore: z.ZodOptional<z.ZodNumber>;
                            offset: z.ZodObject<
                              {
                                x: z.ZodNumber;
                                y: z.ZodNumber;
                              },
                              "strip",
                              z.ZodTypeAny,
                              {
                                x: number;
                                y: number;
                              },
                              {
                                x: number;
                                y: number;
                              }
                            >;
                            heading: z.ZodNumber;
                            category: z.ZodEnum<
                              ["Fortifications", "Heliports"]
                            >;
                            shapeName: z.ZodString;
                            type: z.ZodString;
                          },
                          "strip",
                          z.ZodTypeAny,
                          {
                            name: string;
                            type: string;
                            alive: boolean;
                            category: "Fortifications" | "Heliports";
                            offset: {
                              x: number;
                              y: number;
                            };
                            heading: number;
                            shapeName: string;
                            destroyedTime?: number | undefined;
                            repairScore?: number | undefined;
                          },
                          {
                            name: string;
                            type: string;
                            alive: boolean;
                            category: "Fortifications" | "Heliports";
                            offset: {
                              x: number;
                              y: number;
                            };
                            heading: number;
                            shapeName: string;
                            destroyedTime?: number | undefined;
                            repairScore?: number | undefined;
                          }
                        >,
                        "many"
                      >;
                      type: z.ZodEnum<["Barrack", "Depot"]>;
                      deploymentScore: z.ZodNumber;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      id: string;
                      name: string;
                      type: "Barrack" | "Depot";
                      position: {
                        x: number;
                        y: number;
                      };
                      state: "active" | "destroyed" | "deactivated";
                      objectiveName: string;
                      groupId: number;
                      buildings: {
                        name: string;
                        type: string;
                        alive: boolean;
                        category: "Fortifications" | "Heliports";
                        offset: {
                          x: number;
                          y: number;
                        };
                        heading: number;
                        shapeName: string;
                        destroyedTime?: number | undefined;
                        repairScore?: number | undefined;
                      }[];
                      deploymentScore: number;
                    },
                    {
                      id: string;
                      name: string;
                      type: "Barrack" | "Depot";
                      position: {
                        x: number;
                        y: number;
                      };
                      state: "active" | "destroyed" | "deactivated";
                      objectiveName: string;
                      groupId: number;
                      buildings: {
                        name: string;
                        type: string;
                        alive: boolean;
                        category: "Fortifications" | "Heliports";
                        offset: {
                          x: number;
                          y: number;
                        };
                        heading: number;
                        shapeName: string;
                        destroyedTime?: number | undefined;
                        repairScore?: number | undefined;
                      }[];
                      deploymentScore: number;
                    }
                  >
                ]
              >
            >;
            reinforcementTimer: z.ZodNumber;
            reinforcementDelay: z.ZodNumber;
            downedPilots: z.ZodArray<
              z.ZodObject<
                {
                  id: z.ZodString;
                  name: z.ZodString;
                  position: z.ZodObject<
                    {
                      x: z.ZodNumber;
                      y: z.ZodNumber;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      x: number;
                      y: number;
                    },
                    {
                      x: number;
                      y: number;
                    }
                  >;
                  time: z.ZodNumber;
                },
                "strip",
                z.ZodTypeAny,
                {
                  id: string;
                  name: string;
                  time: number;
                  position: {
                    x: number;
                    y: number;
                  };
                },
                {
                  id: string;
                  name: string;
                  time: number;
                  position: {
                    x: number;
                    y: number;
                  };
                }
              >,
              "many"
            >;
          },
          "strip",
          z.ZodTypeAny,
          {
            name: string;
            aircraftTypes: Record<string, string[]>;
            countryName: string;
            playable: boolean;
            templateName: string;
            airdromeNames: string[];
            inventory: {
              aircrafts: Record<
                string,
                {
                  id: string;
                  aircraftType: string;
                  state:
                    | "idle"
                    | "en route"
                    | "on station"
                    | "combat"
                    | "rtb"
                    | "waiting"
                    | "maintenance";
                  availableTasks: string[];
                  alive: boolean;
                  onboardNumber: string;
                  homeBase: {
                    name: string;
                    type: "airdrome" | "farp" | "carrier";
                  };
                  loadout: {
                    name: string;
                    task:
                      | "DEAD"
                      | "AWACS"
                      | "CAP"
                      | "Escort"
                      | "Pinpoint Strike"
                      | "CAS"
                      | "CSAR"
                      | "default";
                    displayName: string;
                    pylons: {
                      type:
                        | "Fuel Tank"
                        | "Targeting Pod"
                        | "Gun Pod"
                        | "ECM Pod"
                        | "Other"
                        | "Weapon";
                      CLSID: string;
                      num: number;
                      total: number;
                      count: number;
                      weapon?:
                        | {
                            name: string;
                            type:
                              | "infrared"
                              | "active radar"
                              | "semi-active radar";
                            displayName: string;
                            range: number;
                            rangeType: "short" | "medium" | "long";
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Bomb"
                              | "Cluster"
                              | "Rocket"
                              | "Laser Guided Bomb"
                              | "GPS Guided Bomb"
                              | "TV Guided Bomb"
                              | "Laser Guided Rocket";
                            target:
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure";
                            displayName: string;
                            weight?: number | undefined;
                            highDrag?: boolean | undefined;
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Missile"
                              | "Glide Bomb"
                              | "Laser Guided Missile"
                              | "Cruise Missile";
                            displayName: string;
                            range: number;
                            targets: (
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure"
                            )[];
                            year?: number | undefined;
                          }
                        | undefined;
                    }[];
                  };
                  maintenanceEndTime?: number | undefined;
                  a2GWeaponReadyTimer?: number | undefined;
                  a2AWeaponReadyTimer?: number | undefined;
                  destroyedTime?: number | undefined;
                  disabled?: boolean | undefined;
                }
              >;
              groundUnits: Record<
                string,
                {
                  id: string;
                  name: string;
                  state: "idle" | "en route" | "on objective";
                  alive: boolean;
                  displayName: string;
                  category: string;
                  vehicleTypes: (
                    | "MBT"
                    | "Track Radar"
                    | "Search Radar"
                    | "SAM Launcher"
                    | "Unarmored"
                    | "Armored"
                    | "IFV"
                    | "SHORAD"
                    | "Transport"
                    | "Power Generator"
                    | "Refuel"
                    | "Control Unit"
                    | "EW"
                    | "Infantry"
                  )[];
                  destroyedTime?: number | undefined;
                }
              >;
            };
            packages: {
              id: string;
              task:
                | "DEAD"
                | "AWACS"
                | "CAP"
                | "Escort"
                | "Pinpoint Strike"
                | "CAS"
                | "CSAR";
              startTime: number;
              frequency: number;
              taskEndTime: number;
              endTime: number;
              flightGroups: {
                id: string;
                name: string;
                units: {
                  id: string;
                  name: string;
                  callSign: (
                    | number
                    | {
                        name: string;
                        2: number;
                        1: number;
                        3: number;
                      }
                  ) &
                    (
                      | number
                      | {
                          name: string;
                          2: number;
                          1: number;
                          3: number;
                        }
                      | undefined
                    );
                  client: boolean;
                }[];
                task:
                  | "DEAD"
                  | "AWACS"
                  | "CAP"
                  | "Escort"
                  | "Pinpoint Strike"
                  | "CAS"
                  | "CSAR";
                waypoints: {
                  name: string;
                  time: number;
                  speed: number;
                  position: {
                    x: number;
                    y: number;
                  };
                  duration?: number | undefined;
                  taskStart?: boolean | undefined;
                  onGround?: boolean | undefined;
                  hold?: boolean | undefined;
                  racetrack?:
                    | {
                        name: string;
                        duration: number;
                        position: {
                          x: number;
                          y: number;
                        };
                        distance: number;
                      }
                    | undefined;
                }[];
                position: {
                  x: number;
                  y: number;
                };
                startTime: number;
                designatedStartTime: number;
                tot: number;
                landingTime: number;
                airdromeName: string;
                target?: string | undefined;
                frequency?: number | undefined;
                jtacFrequency?: number | undefined;
              }[];
            }[];
            groundGroups: (
              | {
                  id: string;
                  name: string;
                  type: "armor" | "mbt" | "infantry" | "ew";
                  position: {
                    x: number;
                    y: number;
                  };
                  startTime: number;
                  state: "en route" | "combat" | "on objective";
                  unitIds: string[];
                  shoradUnitIds: string[];
                  objectiveName: string;
                  startObjectiveName: string;
                  combatTimer?: number | undefined;
                }
              | {
                  id: string;
                  name: string;
                  type: "sam";
                  position: {
                    x: number;
                    y: number;
                  };
                  startTime: number;
                  state: "en route" | "combat" | "on objective";
                  range: number;
                  unitIds: string[];
                  shoradUnitIds: string[];
                  objectiveName: string;
                  startObjectiveName: string;
                  operational: boolean;
                  fireInterval: number;
                  samType:
                    | "SA-10-300"
                    | "SA-6"
                    | "SA-5"
                    | "SA-3"
                    | "SA-2"
                    | "Hawk";
                  combatTimer?: number | undefined;
                }
            )[];
            awacsFrequency: number;
            structures: Record<
              string,
              | {
                  id: string;
                  name: string;
                  type:
                    | "Ammo Depot"
                    | "Farp"
                    | "Command Center"
                    | "Power Plant"
                    | "Fuel Storage"
                    | "Hospital"
                    | "Prison";
                  position: {
                    x: number;
                    y: number;
                  };
                  state: "active" | "destroyed" | "deactivated";
                  objectiveName: string;
                  groupId: number;
                  buildings: {
                    name: string;
                    type: string;
                    alive: boolean;
                    category: "Fortifications" | "Heliports";
                    offset: {
                      x: number;
                      y: number;
                    };
                    heading: number;
                    shapeName: string;
                    destroyedTime?: number | undefined;
                    repairScore?: number | undefined;
                  }[];
                }
              | {
                  id: string;
                  name: string;
                  type: "Barrack" | "Depot";
                  position: {
                    x: number;
                    y: number;
                  };
                  state: "active" | "destroyed" | "deactivated";
                  objectiveName: string;
                  groupId: number;
                  buildings: {
                    name: string;
                    type: string;
                    alive: boolean;
                    category: "Fortifications" | "Heliports";
                    offset: {
                      x: number;
                      y: number;
                    };
                    heading: number;
                    shapeName: string;
                    destroyedTime?: number | undefined;
                    repairScore?: number | undefined;
                  }[];
                  deploymentScore: number;
                }
            >;
            reinforcementTimer: number;
            reinforcementDelay: number;
            downedPilots: {
              id: string;
              name: string;
              time: number;
              position: {
                x: number;
                y: number;
              };
            }[];
            year?: number | undefined;
            carrierName?: string | undefined;
            created?: Date | undefined;
            shipGroups?:
              | {
                  name: string;
                  position: {
                    x: number;
                    y: number;
                  };
                }[]
              | undefined;
          },
          {
            name: string;
            aircraftTypes: Record<string, string[]>;
            countryName: string;
            playable: boolean;
            templateName: string;
            airdromeNames: string[];
            inventory: {
              aircrafts: Record<
                string,
                {
                  id: string;
                  aircraftType: string;
                  state:
                    | "idle"
                    | "en route"
                    | "on station"
                    | "combat"
                    | "rtb"
                    | "waiting"
                    | "maintenance";
                  availableTasks: string[];
                  alive: boolean;
                  onboardNumber: string;
                  homeBase: {
                    name: string;
                    type: "airdrome" | "farp" | "carrier";
                  };
                  loadout: {
                    name: string;
                    task:
                      | "DEAD"
                      | "AWACS"
                      | "CAP"
                      | "Escort"
                      | "Pinpoint Strike"
                      | "CAS"
                      | "CSAR"
                      | "default";
                    displayName: string;
                    pylons: {
                      type:
                        | "Fuel Tank"
                        | "Targeting Pod"
                        | "Gun Pod"
                        | "ECM Pod"
                        | "Other"
                        | "Weapon";
                      CLSID: string;
                      num: number;
                      total: number;
                      count: number;
                      weapon?:
                        | {
                            name: string;
                            type:
                              | "infrared"
                              | "active radar"
                              | "semi-active radar";
                            displayName: string;
                            range: number;
                            rangeType: "short" | "medium" | "long";
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Bomb"
                              | "Cluster"
                              | "Rocket"
                              | "Laser Guided Bomb"
                              | "GPS Guided Bomb"
                              | "TV Guided Bomb"
                              | "Laser Guided Rocket";
                            target:
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure";
                            displayName: string;
                            weight?: number | undefined;
                            highDrag?: boolean | undefined;
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Missile"
                              | "Glide Bomb"
                              | "Laser Guided Missile"
                              | "Cruise Missile";
                            displayName: string;
                            range: number;
                            targets: (
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure"
                            )[];
                            year?: number | undefined;
                          }
                        | undefined;
                    }[];
                  };
                  maintenanceEndTime?: number | undefined;
                  a2GWeaponReadyTimer?: number | undefined;
                  a2AWeaponReadyTimer?: number | undefined;
                  destroyedTime?: number | undefined;
                  disabled?: boolean | undefined;
                }
              >;
              groundUnits: Record<
                string,
                {
                  id: string;
                  name: string;
                  state: "idle" | "en route" | "on objective";
                  alive: boolean;
                  displayName: string;
                  category: string;
                  vehicleTypes: (
                    | "MBT"
                    | "Track Radar"
                    | "Search Radar"
                    | "SAM Launcher"
                    | "Unarmored"
                    | "Armored"
                    | "IFV"
                    | "SHORAD"
                    | "Transport"
                    | "Power Generator"
                    | "Refuel"
                    | "Control Unit"
                    | "EW"
                    | "Infantry"
                  )[];
                  destroyedTime?: number | undefined;
                }
              >;
            };
            packages: {
              id: string;
              task:
                | "DEAD"
                | "AWACS"
                | "CAP"
                | "Escort"
                | "Pinpoint Strike"
                | "CAS"
                | "CSAR";
              startTime: number;
              frequency: number;
              taskEndTime: number;
              endTime: number;
              flightGroups: {
                id: string;
                name: string;
                units: {
                  id: string;
                  name: string;
                  callSign: (
                    | number
                    | {
                        name: string;
                        2: number;
                        1: number;
                        3: number;
                      }
                  ) &
                    (
                      | number
                      | {
                          name: string;
                          2: number;
                          1: number;
                          3: number;
                        }
                      | undefined
                    );
                  client: boolean;
                }[];
                task:
                  | "DEAD"
                  | "AWACS"
                  | "CAP"
                  | "Escort"
                  | "Pinpoint Strike"
                  | "CAS"
                  | "CSAR";
                waypoints: {
                  name: string;
                  time: number;
                  speed: number;
                  position: {
                    x: number;
                    y: number;
                  };
                  duration?: number | undefined;
                  taskStart?: boolean | undefined;
                  onGround?: boolean | undefined;
                  hold?: boolean | undefined;
                  racetrack?:
                    | {
                        name: string;
                        duration: number;
                        position: {
                          x: number;
                          y: number;
                        };
                        distance: number;
                      }
                    | undefined;
                }[];
                position: {
                  x: number;
                  y: number;
                };
                startTime: number;
                designatedStartTime: number;
                tot: number;
                landingTime: number;
                airdromeName: string;
                target?: string | undefined;
                frequency?: number | undefined;
                jtacFrequency?: number | undefined;
              }[];
            }[];
            groundGroups: (
              | {
                  id: string;
                  name: string;
                  type: "armor" | "mbt" | "infantry" | "ew";
                  position: {
                    x: number;
                    y: number;
                  };
                  startTime: number;
                  state: "en route" | "combat" | "on objective";
                  unitIds: string[];
                  shoradUnitIds: string[];
                  objectiveName: string;
                  startObjectiveName: string;
                  combatTimer?: number | undefined;
                }
              | {
                  id: string;
                  name: string;
                  type: "sam";
                  position: {
                    x: number;
                    y: number;
                  };
                  startTime: number;
                  state: "en route" | "combat" | "on objective";
                  range: number;
                  unitIds: string[];
                  shoradUnitIds: string[];
                  objectiveName: string;
                  startObjectiveName: string;
                  operational: boolean;
                  fireInterval: number;
                  samType:
                    | "SA-10-300"
                    | "SA-6"
                    | "SA-5"
                    | "SA-3"
                    | "SA-2"
                    | "Hawk";
                  combatTimer?: number | undefined;
                }
            )[];
            awacsFrequency: number;
            structures: Record<
              string,
              | {
                  id: string;
                  name: string;
                  type:
                    | "Ammo Depot"
                    | "Farp"
                    | "Command Center"
                    | "Power Plant"
                    | "Fuel Storage"
                    | "Hospital"
                    | "Prison";
                  position: {
                    x: number;
                    y: number;
                  };
                  state: "active" | "destroyed" | "deactivated";
                  objectiveName: string;
                  groupId: number;
                  buildings: {
                    name: string;
                    type: string;
                    alive: boolean;
                    category: "Fortifications" | "Heliports";
                    offset: {
                      x: number;
                      y: number;
                    };
                    heading: number;
                    shapeName: string;
                    destroyedTime?: number | undefined;
                    repairScore?: number | undefined;
                  }[];
                }
              | {
                  id: string;
                  name: string;
                  type: "Barrack" | "Depot";
                  position: {
                    x: number;
                    y: number;
                  };
                  state: "active" | "destroyed" | "deactivated";
                  objectiveName: string;
                  groupId: number;
                  buildings: {
                    name: string;
                    type: string;
                    alive: boolean;
                    category: "Fortifications" | "Heliports";
                    offset: {
                      x: number;
                      y: number;
                    };
                    heading: number;
                    shapeName: string;
                    destroyedTime?: number | undefined;
                    repairScore?: number | undefined;
                  }[];
                  deploymentScore: number;
                }
            >;
            reinforcementTimer: number;
            reinforcementDelay: number;
            downedPilots: {
              id: string;
              name: string;
              time: number;
              position: {
                x: number;
                y: number;
              };
            }[];
            year?: number | undefined;
            carrierName?: string | undefined;
            created?: Date | undefined;
            shipGroups?:
              | {
                  name: string;
                  position: {
                    x: number;
                    y: number;
                  };
                }[]
              | undefined;
          }
        >
      >;
      redFaction: z.ZodOptional<
        z.ZodObject<
          {
            name: z.ZodString;
            aircraftTypes: z.ZodRecord<
              z.ZodString,
              z.ZodArray<z.ZodString, "many">
            >;
            countryName: z.ZodString;
            year: z.ZodOptional<z.ZodNumber>;
            playable: z.ZodBoolean;
            templateName: z.ZodString;
            carrierName: z.ZodOptional<z.ZodString>;
            created: z.ZodOptional<z.ZodDate>;
            airdromeNames: z.ZodArray<z.ZodString, "many">;
            inventory: z.ZodObject<
              {
                aircrafts: z.ZodRecord<
                  z.ZodString,
                  z.ZodObject<
                    {
                      id: z.ZodString;
                      aircraftType: z.ZodString;
                      state: z.ZodEnum<
                        [
                          "idle",
                          "en route",
                          "on station",
                          "combat",
                          "rtb",
                          "waiting",
                          "maintenance"
                        ]
                      >;
                      maintenanceEndTime: z.ZodOptional<z.ZodNumber>;
                      a2GWeaponReadyTimer: z.ZodOptional<z.ZodNumber>;
                      a2AWeaponReadyTimer: z.ZodOptional<z.ZodNumber>;
                      availableTasks: z.ZodArray<z.ZodString, "many">;
                      alive: z.ZodBoolean;
                      destroyedTime: z.ZodOptional<z.ZodNumber>;
                      onboardNumber: z.ZodString;
                      homeBase: z.ZodObject<
                        {
                          type: z.ZodEnum<["airdrome", "farp", "carrier"]>;
                          name: z.ZodString;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          name: string;
                          type: "airdrome" | "farp" | "carrier";
                        },
                        {
                          name: string;
                          type: "airdrome" | "farp" | "carrier";
                        }
                      >;
                      loadout: z.ZodObject<
                        {
                          task: z.ZodUnion<
                            [
                              z.ZodEnum<
                                [
                                  "DEAD",
                                  "AWACS",
                                  "CAP",
                                  "Escort",
                                  "Pinpoint Strike",
                                  "CAS",
                                  "CSAR"
                                ]
                              >,
                              z.ZodLiteral<"default">
                            ]
                          >;
                          name: z.ZodString;
                          displayName: z.ZodString;
                          pylons: z.ZodArray<
                            z.ZodObject<
                              {
                                CLSID: z.ZodString;
                                num: z.ZodNumber;
                                total: z.ZodNumber;
                                count: z.ZodNumber;
                                type: z.ZodEnum<
                                  [
                                    "Fuel Tank",
                                    "Targeting Pod",
                                    "Gun Pod",
                                    "ECM Pod",
                                    "Other",
                                    "Weapon"
                                  ]
                                >;
                                weapon: z.ZodOptional<
                                  z.ZodUnion<
                                    [
                                      z.ZodObject<
                                        {
                                          type: z.ZodEnum<
                                            [
                                              "infrared",
                                              "active radar",
                                              "semi-active radar"
                                            ]
                                          >;
                                          range: z.ZodNumber;
                                          rangeType: z.ZodEnum<
                                            ["short", "medium", "long"]
                                          >;
                                          name: z.ZodString;
                                          displayName: z.ZodString;
                                          year: z.ZodOptional<z.ZodNumber>;
                                        },
                                        "strip",
                                        z.ZodTypeAny,
                                        {
                                          name: string;
                                          type:
                                            | "infrared"
                                            | "active radar"
                                            | "semi-active radar";
                                          displayName: string;
                                          range: number;
                                          rangeType:
                                            | "short"
                                            | "medium"
                                            | "long";
                                          year?: number | undefined;
                                        },
                                        {
                                          name: string;
                                          type:
                                            | "infrared"
                                            | "active radar"
                                            | "semi-active radar";
                                          displayName: string;
                                          range: number;
                                          rangeType:
                                            | "short"
                                            | "medium"
                                            | "long";
                                          year?: number | undefined;
                                        }
                                      >,
                                      z.ZodObject<
                                        {
                                          type: z.ZodEnum<
                                            [
                                              "Bomb",
                                              "Cluster",
                                              "Rocket",
                                              "Laser Guided Bomb",
                                              "GPS Guided Bomb",
                                              "TV Guided Bomb",
                                              "Laser Guided Rocket"
                                            ]
                                          >;
                                          target: z.ZodEnum<
                                            [
                                              "Anti-Armor",
                                              "Hard Target",
                                              "Medium Target",
                                              "Soft Target",
                                              "Ship",
                                              "Radar",
                                              "Light Structure",
                                              "Medium Structure",
                                              "Hard Structure"
                                            ]
                                          >;
                                          weight: z.ZodOptional<z.ZodNumber>;
                                          highDrag: z.ZodOptional<z.ZodBoolean>;
                                          name: z.ZodString;
                                          displayName: z.ZodString;
                                          year: z.ZodOptional<z.ZodNumber>;
                                        },
                                        "strip",
                                        z.ZodTypeAny,
                                        {
                                          name: string;
                                          type:
                                            | "Bomb"
                                            | "Cluster"
                                            | "Rocket"
                                            | "Laser Guided Bomb"
                                            | "GPS Guided Bomb"
                                            | "TV Guided Bomb"
                                            | "Laser Guided Rocket";
                                          target:
                                            | "Anti-Armor"
                                            | "Hard Target"
                                            | "Medium Target"
                                            | "Soft Target"
                                            | "Ship"
                                            | "Radar"
                                            | "Light Structure"
                                            | "Medium Structure"
                                            | "Hard Structure";
                                          displayName: string;
                                          weight?: number | undefined;
                                          highDrag?: boolean | undefined;
                                          year?: number | undefined;
                                        },
                                        {
                                          name: string;
                                          type:
                                            | "Bomb"
                                            | "Cluster"
                                            | "Rocket"
                                            | "Laser Guided Bomb"
                                            | "GPS Guided Bomb"
                                            | "TV Guided Bomb"
                                            | "Laser Guided Rocket";
                                          target:
                                            | "Anti-Armor"
                                            | "Hard Target"
                                            | "Medium Target"
                                            | "Soft Target"
                                            | "Ship"
                                            | "Radar"
                                            | "Light Structure"
                                            | "Medium Structure"
                                            | "Hard Structure";
                                          displayName: string;
                                          weight?: number | undefined;
                                          highDrag?: boolean | undefined;
                                          year?: number | undefined;
                                        }
                                      >,
                                      z.ZodObject<
                                        {
                                          type: z.ZodEnum<
                                            [
                                              "Missile",
                                              "Glide Bomb",
                                              "Laser Guided Missile",
                                              "Cruise Missile"
                                            ]
                                          >;
                                          range: z.ZodNumber;
                                          targets: z.ZodArray<
                                            z.ZodEnum<
                                              [
                                                "Anti-Armor",
                                                "Hard Target",
                                                "Medium Target",
                                                "Soft Target",
                                                "Ship",
                                                "Radar",
                                                "Light Structure",
                                                "Medium Structure",
                                                "Hard Structure"
                                              ]
                                            >,
                                            "many"
                                          >;
                                          name: z.ZodString;
                                          displayName: z.ZodString;
                                          year: z.ZodOptional<z.ZodNumber>;
                                        },
                                        "strip",
                                        z.ZodTypeAny,
                                        {
                                          name: string;
                                          type:
                                            | "Missile"
                                            | "Glide Bomb"
                                            | "Laser Guided Missile"
                                            | "Cruise Missile";
                                          displayName: string;
                                          range: number;
                                          targets: (
                                            | "Anti-Armor"
                                            | "Hard Target"
                                            | "Medium Target"
                                            | "Soft Target"
                                            | "Ship"
                                            | "Radar"
                                            | "Light Structure"
                                            | "Medium Structure"
                                            | "Hard Structure"
                                          )[];
                                          year?: number | undefined;
                                        },
                                        {
                                          name: string;
                                          type:
                                            | "Missile"
                                            | "Glide Bomb"
                                            | "Laser Guided Missile"
                                            | "Cruise Missile";
                                          displayName: string;
                                          range: number;
                                          targets: (
                                            | "Anti-Armor"
                                            | "Hard Target"
                                            | "Medium Target"
                                            | "Soft Target"
                                            | "Ship"
                                            | "Radar"
                                            | "Light Structure"
                                            | "Medium Structure"
                                            | "Hard Structure"
                                          )[];
                                          year?: number | undefined;
                                        }
                                      >
                                    ]
                                  >
                                >;
                              },
                              "strip",
                              z.ZodTypeAny,
                              {
                                type:
                                  | "Fuel Tank"
                                  | "Targeting Pod"
                                  | "Gun Pod"
                                  | "ECM Pod"
                                  | "Other"
                                  | "Weapon";
                                CLSID: string;
                                num: number;
                                total: number;
                                count: number;
                                weapon?:
                                  | {
                                      name: string;
                                      type:
                                        | "infrared"
                                        | "active radar"
                                        | "semi-active radar";
                                      displayName: string;
                                      range: number;
                                      rangeType: "short" | "medium" | "long";
                                      year?: number | undefined;
                                    }
                                  | {
                                      name: string;
                                      type:
                                        | "Bomb"
                                        | "Cluster"
                                        | "Rocket"
                                        | "Laser Guided Bomb"
                                        | "GPS Guided Bomb"
                                        | "TV Guided Bomb"
                                        | "Laser Guided Rocket";
                                      target:
                                        | "Anti-Armor"
                                        | "Hard Target"
                                        | "Medium Target"
                                        | "Soft Target"
                                        | "Ship"
                                        | "Radar"
                                        | "Light Structure"
                                        | "Medium Structure"
                                        | "Hard Structure";
                                      displayName: string;
                                      weight?: number | undefined;
                                      highDrag?: boolean | undefined;
                                      year?: number | undefined;
                                    }
                                  | {
                                      name: string;
                                      type:
                                        | "Missile"
                                        | "Glide Bomb"
                                        | "Laser Guided Missile"
                                        | "Cruise Missile";
                                      displayName: string;
                                      range: number;
                                      targets: (
                                        | "Anti-Armor"
                                        | "Hard Target"
                                        | "Medium Target"
                                        | "Soft Target"
                                        | "Ship"
                                        | "Radar"
                                        | "Light Structure"
                                        | "Medium Structure"
                                        | "Hard Structure"
                                      )[];
                                      year?: number | undefined;
                                    }
                                  | undefined;
                              },
                              {
                                type:
                                  | "Fuel Tank"
                                  | "Targeting Pod"
                                  | "Gun Pod"
                                  | "ECM Pod"
                                  | "Other"
                                  | "Weapon";
                                CLSID: string;
                                num: number;
                                total: number;
                                count: number;
                                weapon?:
                                  | {
                                      name: string;
                                      type:
                                        | "infrared"
                                        | "active radar"
                                        | "semi-active radar";
                                      displayName: string;
                                      range: number;
                                      rangeType: "short" | "medium" | "long";
                                      year?: number | undefined;
                                    }
                                  | {
                                      name: string;
                                      type:
                                        | "Bomb"
                                        | "Cluster"
                                        | "Rocket"
                                        | "Laser Guided Bomb"
                                        | "GPS Guided Bomb"
                                        | "TV Guided Bomb"
                                        | "Laser Guided Rocket";
                                      target:
                                        | "Anti-Armor"
                                        | "Hard Target"
                                        | "Medium Target"
                                        | "Soft Target"
                                        | "Ship"
                                        | "Radar"
                                        | "Light Structure"
                                        | "Medium Structure"
                                        | "Hard Structure";
                                      displayName: string;
                                      weight?: number | undefined;
                                      highDrag?: boolean | undefined;
                                      year?: number | undefined;
                                    }
                                  | {
                                      name: string;
                                      type:
                                        | "Missile"
                                        | "Glide Bomb"
                                        | "Laser Guided Missile"
                                        | "Cruise Missile";
                                      displayName: string;
                                      range: number;
                                      targets: (
                                        | "Anti-Armor"
                                        | "Hard Target"
                                        | "Medium Target"
                                        | "Soft Target"
                                        | "Ship"
                                        | "Radar"
                                        | "Light Structure"
                                        | "Medium Structure"
                                        | "Hard Structure"
                                      )[];
                                      year?: number | undefined;
                                    }
                                  | undefined;
                              }
                            >,
                            "many"
                          >;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          name: string;
                          task:
                            | "DEAD"
                            | "AWACS"
                            | "CAP"
                            | "Escort"
                            | "Pinpoint Strike"
                            | "CAS"
                            | "CSAR"
                            | "default";
                          displayName: string;
                          pylons: {
                            type:
                              | "Fuel Tank"
                              | "Targeting Pod"
                              | "Gun Pod"
                              | "ECM Pod"
                              | "Other"
                              | "Weapon";
                            CLSID: string;
                            num: number;
                            total: number;
                            count: number;
                            weapon?:
                              | {
                                  name: string;
                                  type:
                                    | "infrared"
                                    | "active radar"
                                    | "semi-active radar";
                                  displayName: string;
                                  range: number;
                                  rangeType: "short" | "medium" | "long";
                                  year?: number | undefined;
                                }
                              | {
                                  name: string;
                                  type:
                                    | "Bomb"
                                    | "Cluster"
                                    | "Rocket"
                                    | "Laser Guided Bomb"
                                    | "GPS Guided Bomb"
                                    | "TV Guided Bomb"
                                    | "Laser Guided Rocket";
                                  target:
                                    | "Anti-Armor"
                                    | "Hard Target"
                                    | "Medium Target"
                                    | "Soft Target"
                                    | "Ship"
                                    | "Radar"
                                    | "Light Structure"
                                    | "Medium Structure"
                                    | "Hard Structure";
                                  displayName: string;
                                  weight?: number | undefined;
                                  highDrag?: boolean | undefined;
                                  year?: number | undefined;
                                }
                              | {
                                  name: string;
                                  type:
                                    | "Missile"
                                    | "Glide Bomb"
                                    | "Laser Guided Missile"
                                    | "Cruise Missile";
                                  displayName: string;
                                  range: number;
                                  targets: (
                                    | "Anti-Armor"
                                    | "Hard Target"
                                    | "Medium Target"
                                    | "Soft Target"
                                    | "Ship"
                                    | "Radar"
                                    | "Light Structure"
                                    | "Medium Structure"
                                    | "Hard Structure"
                                  )[];
                                  year?: number | undefined;
                                }
                              | undefined;
                          }[];
                        },
                        {
                          name: string;
                          task:
                            | "DEAD"
                            | "AWACS"
                            | "CAP"
                            | "Escort"
                            | "Pinpoint Strike"
                            | "CAS"
                            | "CSAR"
                            | "default";
                          displayName: string;
                          pylons: {
                            type:
                              | "Fuel Tank"
                              | "Targeting Pod"
                              | "Gun Pod"
                              | "ECM Pod"
                              | "Other"
                              | "Weapon";
                            CLSID: string;
                            num: number;
                            total: number;
                            count: number;
                            weapon?:
                              | {
                                  name: string;
                                  type:
                                    | "infrared"
                                    | "active radar"
                                    | "semi-active radar";
                                  displayName: string;
                                  range: number;
                                  rangeType: "short" | "medium" | "long";
                                  year?: number | undefined;
                                }
                              | {
                                  name: string;
                                  type:
                                    | "Bomb"
                                    | "Cluster"
                                    | "Rocket"
                                    | "Laser Guided Bomb"
                                    | "GPS Guided Bomb"
                                    | "TV Guided Bomb"
                                    | "Laser Guided Rocket";
                                  target:
                                    | "Anti-Armor"
                                    | "Hard Target"
                                    | "Medium Target"
                                    | "Soft Target"
                                    | "Ship"
                                    | "Radar"
                                    | "Light Structure"
                                    | "Medium Structure"
                                    | "Hard Structure";
                                  displayName: string;
                                  weight?: number | undefined;
                                  highDrag?: boolean | undefined;
                                  year?: number | undefined;
                                }
                              | {
                                  name: string;
                                  type:
                                    | "Missile"
                                    | "Glide Bomb"
                                    | "Laser Guided Missile"
                                    | "Cruise Missile";
                                  displayName: string;
                                  range: number;
                                  targets: (
                                    | "Anti-Armor"
                                    | "Hard Target"
                                    | "Medium Target"
                                    | "Soft Target"
                                    | "Ship"
                                    | "Radar"
                                    | "Light Structure"
                                    | "Medium Structure"
                                    | "Hard Structure"
                                  )[];
                                  year?: number | undefined;
                                }
                              | undefined;
                          }[];
                        }
                      >;
                      disabled: z.ZodOptional<z.ZodBoolean>;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      id: string;
                      aircraftType: string;
                      state:
                        | "idle"
                        | "en route"
                        | "on station"
                        | "combat"
                        | "rtb"
                        | "waiting"
                        | "maintenance";
                      availableTasks: string[];
                      alive: boolean;
                      onboardNumber: string;
                      homeBase: {
                        name: string;
                        type: "airdrome" | "farp" | "carrier";
                      };
                      loadout: {
                        name: string;
                        task:
                          | "DEAD"
                          | "AWACS"
                          | "CAP"
                          | "Escort"
                          | "Pinpoint Strike"
                          | "CAS"
                          | "CSAR"
                          | "default";
                        displayName: string;
                        pylons: {
                          type:
                            | "Fuel Tank"
                            | "Targeting Pod"
                            | "Gun Pod"
                            | "ECM Pod"
                            | "Other"
                            | "Weapon";
                          CLSID: string;
                          num: number;
                          total: number;
                          count: number;
                          weapon?:
                            | {
                                name: string;
                                type:
                                  | "infrared"
                                  | "active radar"
                                  | "semi-active radar";
                                displayName: string;
                                range: number;
                                rangeType: "short" | "medium" | "long";
                                year?: number | undefined;
                              }
                            | {
                                name: string;
                                type:
                                  | "Bomb"
                                  | "Cluster"
                                  | "Rocket"
                                  | "Laser Guided Bomb"
                                  | "GPS Guided Bomb"
                                  | "TV Guided Bomb"
                                  | "Laser Guided Rocket";
                                target:
                                  | "Anti-Armor"
                                  | "Hard Target"
                                  | "Medium Target"
                                  | "Soft Target"
                                  | "Ship"
                                  | "Radar"
                                  | "Light Structure"
                                  | "Medium Structure"
                                  | "Hard Structure";
                                displayName: string;
                                weight?: number | undefined;
                                highDrag?: boolean | undefined;
                                year?: number | undefined;
                              }
                            | {
                                name: string;
                                type:
                                  | "Missile"
                                  | "Glide Bomb"
                                  | "Laser Guided Missile"
                                  | "Cruise Missile";
                                displayName: string;
                                range: number;
                                targets: (
                                  | "Anti-Armor"
                                  | "Hard Target"
                                  | "Medium Target"
                                  | "Soft Target"
                                  | "Ship"
                                  | "Radar"
                                  | "Light Structure"
                                  | "Medium Structure"
                                  | "Hard Structure"
                                )[];
                                year?: number | undefined;
                              }
                            | undefined;
                        }[];
                      };
                      maintenanceEndTime?: number | undefined;
                      a2GWeaponReadyTimer?: number | undefined;
                      a2AWeaponReadyTimer?: number | undefined;
                      destroyedTime?: number | undefined;
                      disabled?: boolean | undefined;
                    },
                    {
                      id: string;
                      aircraftType: string;
                      state:
                        | "idle"
                        | "en route"
                        | "on station"
                        | "combat"
                        | "rtb"
                        | "waiting"
                        | "maintenance";
                      availableTasks: string[];
                      alive: boolean;
                      onboardNumber: string;
                      homeBase: {
                        name: string;
                        type: "airdrome" | "farp" | "carrier";
                      };
                      loadout: {
                        name: string;
                        task:
                          | "DEAD"
                          | "AWACS"
                          | "CAP"
                          | "Escort"
                          | "Pinpoint Strike"
                          | "CAS"
                          | "CSAR"
                          | "default";
                        displayName: string;
                        pylons: {
                          type:
                            | "Fuel Tank"
                            | "Targeting Pod"
                            | "Gun Pod"
                            | "ECM Pod"
                            | "Other"
                            | "Weapon";
                          CLSID: string;
                          num: number;
                          total: number;
                          count: number;
                          weapon?:
                            | {
                                name: string;
                                type:
                                  | "infrared"
                                  | "active radar"
                                  | "semi-active radar";
                                displayName: string;
                                range: number;
                                rangeType: "short" | "medium" | "long";
                                year?: number | undefined;
                              }
                            | {
                                name: string;
                                type:
                                  | "Bomb"
                                  | "Cluster"
                                  | "Rocket"
                                  | "Laser Guided Bomb"
                                  | "GPS Guided Bomb"
                                  | "TV Guided Bomb"
                                  | "Laser Guided Rocket";
                                target:
                                  | "Anti-Armor"
                                  | "Hard Target"
                                  | "Medium Target"
                                  | "Soft Target"
                                  | "Ship"
                                  | "Radar"
                                  | "Light Structure"
                                  | "Medium Structure"
                                  | "Hard Structure";
                                displayName: string;
                                weight?: number | undefined;
                                highDrag?: boolean | undefined;
                                year?: number | undefined;
                              }
                            | {
                                name: string;
                                type:
                                  | "Missile"
                                  | "Glide Bomb"
                                  | "Laser Guided Missile"
                                  | "Cruise Missile";
                                displayName: string;
                                range: number;
                                targets: (
                                  | "Anti-Armor"
                                  | "Hard Target"
                                  | "Medium Target"
                                  | "Soft Target"
                                  | "Ship"
                                  | "Radar"
                                  | "Light Structure"
                                  | "Medium Structure"
                                  | "Hard Structure"
                                )[];
                                year?: number | undefined;
                              }
                            | undefined;
                        }[];
                      };
                      maintenanceEndTime?: number | undefined;
                      a2GWeaponReadyTimer?: number | undefined;
                      a2AWeaponReadyTimer?: number | undefined;
                      destroyedTime?: number | undefined;
                      disabled?: boolean | undefined;
                    }
                  >
                >;
                groundUnits: z.ZodRecord<
                  z.ZodString,
                  z.ZodObject<
                    {
                      id: z.ZodString;
                      name: z.ZodString;
                      displayName: z.ZodString;
                      category: z.ZodString;
                      alive: z.ZodBoolean;
                      vehicleTypes: z.ZodArray<
                        z.ZodEnum<
                          [
                            "MBT",
                            "Track Radar",
                            "Search Radar",
                            "SAM Launcher",
                            "Unarmored",
                            "Armored",
                            "IFV",
                            "SHORAD",
                            "Transport",
                            "Power Generator",
                            "Refuel",
                            "Control Unit",
                            "EW",
                            "Infantry"
                          ]
                        >,
                        "many"
                      >;
                      destroyedTime: z.ZodOptional<z.ZodNumber>;
                      state: z.ZodEnum<["idle", "en route", "on objective"]>;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      id: string;
                      name: string;
                      state: "idle" | "en route" | "on objective";
                      alive: boolean;
                      displayName: string;
                      category: string;
                      vehicleTypes: (
                        | "MBT"
                        | "Track Radar"
                        | "Search Radar"
                        | "SAM Launcher"
                        | "Unarmored"
                        | "Armored"
                        | "IFV"
                        | "SHORAD"
                        | "Transport"
                        | "Power Generator"
                        | "Refuel"
                        | "Control Unit"
                        | "EW"
                        | "Infantry"
                      )[];
                      destroyedTime?: number | undefined;
                    },
                    {
                      id: string;
                      name: string;
                      state: "idle" | "en route" | "on objective";
                      alive: boolean;
                      displayName: string;
                      category: string;
                      vehicleTypes: (
                        | "MBT"
                        | "Track Radar"
                        | "Search Radar"
                        | "SAM Launcher"
                        | "Unarmored"
                        | "Armored"
                        | "IFV"
                        | "SHORAD"
                        | "Transport"
                        | "Power Generator"
                        | "Refuel"
                        | "Control Unit"
                        | "EW"
                        | "Infantry"
                      )[];
                      destroyedTime?: number | undefined;
                    }
                  >
                >;
              },
              "strip",
              z.ZodTypeAny,
              {
                aircrafts: Record<
                  string,
                  {
                    id: string;
                    aircraftType: string;
                    state:
                      | "idle"
                      | "en route"
                      | "on station"
                      | "combat"
                      | "rtb"
                      | "waiting"
                      | "maintenance";
                    availableTasks: string[];
                    alive: boolean;
                    onboardNumber: string;
                    homeBase: {
                      name: string;
                      type: "airdrome" | "farp" | "carrier";
                    };
                    loadout: {
                      name: string;
                      task:
                        | "DEAD"
                        | "AWACS"
                        | "CAP"
                        | "Escort"
                        | "Pinpoint Strike"
                        | "CAS"
                        | "CSAR"
                        | "default";
                      displayName: string;
                      pylons: {
                        type:
                          | "Fuel Tank"
                          | "Targeting Pod"
                          | "Gun Pod"
                          | "ECM Pod"
                          | "Other"
                          | "Weapon";
                        CLSID: string;
                        num: number;
                        total: number;
                        count: number;
                        weapon?:
                          | {
                              name: string;
                              type:
                                | "infrared"
                                | "active radar"
                                | "semi-active radar";
                              displayName: string;
                              range: number;
                              rangeType: "short" | "medium" | "long";
                              year?: number | undefined;
                            }
                          | {
                              name: string;
                              type:
                                | "Bomb"
                                | "Cluster"
                                | "Rocket"
                                | "Laser Guided Bomb"
                                | "GPS Guided Bomb"
                                | "TV Guided Bomb"
                                | "Laser Guided Rocket";
                              target:
                                | "Anti-Armor"
                                | "Hard Target"
                                | "Medium Target"
                                | "Soft Target"
                                | "Ship"
                                | "Radar"
                                | "Light Structure"
                                | "Medium Structure"
                                | "Hard Structure";
                              displayName: string;
                              weight?: number | undefined;
                              highDrag?: boolean | undefined;
                              year?: number | undefined;
                            }
                          | {
                              name: string;
                              type:
                                | "Missile"
                                | "Glide Bomb"
                                | "Laser Guided Missile"
                                | "Cruise Missile";
                              displayName: string;
                              range: number;
                              targets: (
                                | "Anti-Armor"
                                | "Hard Target"
                                | "Medium Target"
                                | "Soft Target"
                                | "Ship"
                                | "Radar"
                                | "Light Structure"
                                | "Medium Structure"
                                | "Hard Structure"
                              )[];
                              year?: number | undefined;
                            }
                          | undefined;
                      }[];
                    };
                    maintenanceEndTime?: number | undefined;
                    a2GWeaponReadyTimer?: number | undefined;
                    a2AWeaponReadyTimer?: number | undefined;
                    destroyedTime?: number | undefined;
                    disabled?: boolean | undefined;
                  }
                >;
                groundUnits: Record<
                  string,
                  {
                    id: string;
                    name: string;
                    state: "idle" | "en route" | "on objective";
                    alive: boolean;
                    displayName: string;
                    category: string;
                    vehicleTypes: (
                      | "MBT"
                      | "Track Radar"
                      | "Search Radar"
                      | "SAM Launcher"
                      | "Unarmored"
                      | "Armored"
                      | "IFV"
                      | "SHORAD"
                      | "Transport"
                      | "Power Generator"
                      | "Refuel"
                      | "Control Unit"
                      | "EW"
                      | "Infantry"
                    )[];
                    destroyedTime?: number | undefined;
                  }
                >;
              },
              {
                aircrafts: Record<
                  string,
                  {
                    id: string;
                    aircraftType: string;
                    state:
                      | "idle"
                      | "en route"
                      | "on station"
                      | "combat"
                      | "rtb"
                      | "waiting"
                      | "maintenance";
                    availableTasks: string[];
                    alive: boolean;
                    onboardNumber: string;
                    homeBase: {
                      name: string;
                      type: "airdrome" | "farp" | "carrier";
                    };
                    loadout: {
                      name: string;
                      task:
                        | "DEAD"
                        | "AWACS"
                        | "CAP"
                        | "Escort"
                        | "Pinpoint Strike"
                        | "CAS"
                        | "CSAR"
                        | "default";
                      displayName: string;
                      pylons: {
                        type:
                          | "Fuel Tank"
                          | "Targeting Pod"
                          | "Gun Pod"
                          | "ECM Pod"
                          | "Other"
                          | "Weapon";
                        CLSID: string;
                        num: number;
                        total: number;
                        count: number;
                        weapon?:
                          | {
                              name: string;
                              type:
                                | "infrared"
                                | "active radar"
                                | "semi-active radar";
                              displayName: string;
                              range: number;
                              rangeType: "short" | "medium" | "long";
                              year?: number | undefined;
                            }
                          | {
                              name: string;
                              type:
                                | "Bomb"
                                | "Cluster"
                                | "Rocket"
                                | "Laser Guided Bomb"
                                | "GPS Guided Bomb"
                                | "TV Guided Bomb"
                                | "Laser Guided Rocket";
                              target:
                                | "Anti-Armor"
                                | "Hard Target"
                                | "Medium Target"
                                | "Soft Target"
                                | "Ship"
                                | "Radar"
                                | "Light Structure"
                                | "Medium Structure"
                                | "Hard Structure";
                              displayName: string;
                              weight?: number | undefined;
                              highDrag?: boolean | undefined;
                              year?: number | undefined;
                            }
                          | {
                              name: string;
                              type:
                                | "Missile"
                                | "Glide Bomb"
                                | "Laser Guided Missile"
                                | "Cruise Missile";
                              displayName: string;
                              range: number;
                              targets: (
                                | "Anti-Armor"
                                | "Hard Target"
                                | "Medium Target"
                                | "Soft Target"
                                | "Ship"
                                | "Radar"
                                | "Light Structure"
                                | "Medium Structure"
                                | "Hard Structure"
                              )[];
                              year?: number | undefined;
                            }
                          | undefined;
                      }[];
                    };
                    maintenanceEndTime?: number | undefined;
                    a2GWeaponReadyTimer?: number | undefined;
                    a2AWeaponReadyTimer?: number | undefined;
                    destroyedTime?: number | undefined;
                    disabled?: boolean | undefined;
                  }
                >;
                groundUnits: Record<
                  string,
                  {
                    id: string;
                    name: string;
                    state: "idle" | "en route" | "on objective";
                    alive: boolean;
                    displayName: string;
                    category: string;
                    vehicleTypes: (
                      | "MBT"
                      | "Track Radar"
                      | "Search Radar"
                      | "SAM Launcher"
                      | "Unarmored"
                      | "Armored"
                      | "IFV"
                      | "SHORAD"
                      | "Transport"
                      | "Power Generator"
                      | "Refuel"
                      | "Control Unit"
                      | "EW"
                      | "Infantry"
                    )[];
                    destroyedTime?: number | undefined;
                  }
                >;
              }
            >;
            packages: z.ZodArray<
              z.ZodObject<
                {
                  id: z.ZodString;
                  startTime: z.ZodNumber;
                  taskEndTime: z.ZodNumber;
                  endTime: z.ZodNumber;
                  task: z.ZodEnum<
                    [
                      "DEAD",
                      "AWACS",
                      "CAP",
                      "Escort",
                      "Pinpoint Strike",
                      "CAS",
                      "CSAR"
                    ]
                  >;
                  flightGroups: z.ZodArray<
                    z.ZodObject<
                      {
                        id: z.ZodString;
                        name: z.ZodString;
                        units: z.ZodArray<
                          z.ZodObject<
                            {
                              id: z.ZodString;
                              name: z.ZodString;
                              callSign: z.ZodUnion<
                                [
                                  z.ZodNumber,
                                  z.ZodObject<
                                    {
                                      1: z.ZodNumber;
                                      2: z.ZodNumber;
                                      3: z.ZodNumber;
                                      name: z.ZodString;
                                    },
                                    "strip",
                                    z.ZodTypeAny,
                                    {
                                      name: string;
                                      2: number;
                                      1: number;
                                      3: number;
                                    },
                                    {
                                      name: string;
                                      2: number;
                                      1: number;
                                      3: number;
                                    }
                                  >
                                ]
                              >;
                              client: z.ZodBoolean;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                              id: string;
                              name: string;
                              callSign: (
                                | number
                                | {
                                    name: string;
                                    2: number;
                                    1: number;
                                    3: number;
                                  }
                              ) &
                                (
                                  | number
                                  | {
                                      name: string;
                                      2: number;
                                      1: number;
                                      3: number;
                                    }
                                  | undefined
                                );
                              client: boolean;
                            },
                            {
                              id: string;
                              name: string;
                              callSign: (
                                | number
                                | {
                                    name: string;
                                    2: number;
                                    1: number;
                                    3: number;
                                  }
                              ) &
                                (
                                  | number
                                  | {
                                      name: string;
                                      2: number;
                                      1: number;
                                      3: number;
                                    }
                                  | undefined
                                );
                              client: boolean;
                            }
                          >,
                          "many"
                        >;
                        task: z.ZodEnum<
                          [
                            "DEAD",
                            "AWACS",
                            "CAP",
                            "Escort",
                            "Pinpoint Strike",
                            "CAS",
                            "CSAR"
                          ]
                        >;
                        waypoints: z.ZodArray<
                          z.ZodObject<
                            {
                              name: z.ZodString;
                              time: z.ZodNumber;
                              duration: z.ZodOptional<z.ZodNumber>;
                              speed: z.ZodNumber;
                              position: z.ZodObject<
                                {
                                  x: z.ZodNumber;
                                  y: z.ZodNumber;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                  x: number;
                                  y: number;
                                },
                                {
                                  x: number;
                                  y: number;
                                }
                              >;
                              taskStart: z.ZodOptional<z.ZodBoolean>;
                              onGround: z.ZodOptional<z.ZodBoolean>;
                              hold: z.ZodOptional<z.ZodBoolean>;
                              racetrack: z.ZodOptional<
                                z.ZodObject<
                                  {
                                    position: z.ZodObject<
                                      {
                                        x: z.ZodNumber;
                                        y: z.ZodNumber;
                                      },
                                      "strip",
                                      z.ZodTypeAny,
                                      {
                                        x: number;
                                        y: number;
                                      },
                                      {
                                        x: number;
                                        y: number;
                                      }
                                    >;
                                    name: z.ZodString;
                                    distance: z.ZodNumber;
                                    duration: z.ZodNumber;
                                  },
                                  "strip",
                                  z.ZodTypeAny,
                                  {
                                    name: string;
                                    duration: number;
                                    position: {
                                      x: number;
                                      y: number;
                                    };
                                    distance: number;
                                  },
                                  {
                                    name: string;
                                    duration: number;
                                    position: {
                                      x: number;
                                      y: number;
                                    };
                                    distance: number;
                                  }
                                >
                              >;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                              name: string;
                              time: number;
                              speed: number;
                              position: {
                                x: number;
                                y: number;
                              };
                              duration?: number | undefined;
                              taskStart?: boolean | undefined;
                              onGround?: boolean | undefined;
                              hold?: boolean | undefined;
                              racetrack?:
                                | {
                                    name: string;
                                    duration: number;
                                    position: {
                                      x: number;
                                      y: number;
                                    };
                                    distance: number;
                                  }
                                | undefined;
                            },
                            {
                              name: string;
                              time: number;
                              speed: number;
                              position: {
                                x: number;
                                y: number;
                              };
                              duration?: number | undefined;
                              taskStart?: boolean | undefined;
                              onGround?: boolean | undefined;
                              hold?: boolean | undefined;
                              racetrack?:
                                | {
                                    name: string;
                                    duration: number;
                                    position: {
                                      x: number;
                                      y: number;
                                    };
                                    distance: number;
                                  }
                                | undefined;
                            }
                          >,
                          "many"
                        >;
                        startTime: z.ZodNumber;
                        designatedStartTime: z.ZodNumber;
                        tot: z.ZodNumber;
                        landingTime: z.ZodNumber;
                        target: z.ZodOptional<z.ZodString>;
                        position: z.ZodObject<
                          {
                            x: z.ZodNumber;
                            y: z.ZodNumber;
                          },
                          "strip",
                          z.ZodTypeAny,
                          {
                            x: number;
                            y: number;
                          },
                          {
                            x: number;
                            y: number;
                          }
                        >;
                        airdromeName: z.ZodString;
                        frequency: z.ZodOptional<z.ZodNumber>;
                        jtacFrequency: z.ZodOptional<z.ZodNumber>;
                      },
                      "strip",
                      z.ZodTypeAny,
                      {
                        id: string;
                        name: string;
                        units: {
                          id: string;
                          name: string;
                          callSign: (
                            | number
                            | {
                                name: string;
                                2: number;
                                1: number;
                                3: number;
                              }
                          ) &
                            (
                              | number
                              | {
                                  name: string;
                                  2: number;
                                  1: number;
                                  3: number;
                                }
                              | undefined
                            );
                          client: boolean;
                        }[];
                        task:
                          | "DEAD"
                          | "AWACS"
                          | "CAP"
                          | "Escort"
                          | "Pinpoint Strike"
                          | "CAS"
                          | "CSAR";
                        waypoints: {
                          name: string;
                          time: number;
                          speed: number;
                          position: {
                            x: number;
                            y: number;
                          };
                          duration?: number | undefined;
                          taskStart?: boolean | undefined;
                          onGround?: boolean | undefined;
                          hold?: boolean | undefined;
                          racetrack?:
                            | {
                                name: string;
                                duration: number;
                                position: {
                                  x: number;
                                  y: number;
                                };
                                distance: number;
                              }
                            | undefined;
                        }[];
                        position: {
                          x: number;
                          y: number;
                        };
                        startTime: number;
                        designatedStartTime: number;
                        tot: number;
                        landingTime: number;
                        airdromeName: string;
                        target?: string | undefined;
                        frequency?: number | undefined;
                        jtacFrequency?: number | undefined;
                      },
                      {
                        id: string;
                        name: string;
                        units: {
                          id: string;
                          name: string;
                          callSign: (
                            | number
                            | {
                                name: string;
                                2: number;
                                1: number;
                                3: number;
                              }
                          ) &
                            (
                              | number
                              | {
                                  name: string;
                                  2: number;
                                  1: number;
                                  3: number;
                                }
                              | undefined
                            );
                          client: boolean;
                        }[];
                        task:
                          | "DEAD"
                          | "AWACS"
                          | "CAP"
                          | "Escort"
                          | "Pinpoint Strike"
                          | "CAS"
                          | "CSAR";
                        waypoints: {
                          name: string;
                          time: number;
                          speed: number;
                          position: {
                            x: number;
                            y: number;
                          };
                          duration?: number | undefined;
                          taskStart?: boolean | undefined;
                          onGround?: boolean | undefined;
                          hold?: boolean | undefined;
                          racetrack?:
                            | {
                                name: string;
                                duration: number;
                                position: {
                                  x: number;
                                  y: number;
                                };
                                distance: number;
                              }
                            | undefined;
                        }[];
                        position: {
                          x: number;
                          y: number;
                        };
                        startTime: number;
                        designatedStartTime: number;
                        tot: number;
                        landingTime: number;
                        airdromeName: string;
                        target?: string | undefined;
                        frequency?: number | undefined;
                        jtacFrequency?: number | undefined;
                      }
                    >,
                    "many"
                  >;
                  frequency: z.ZodNumber;
                },
                "strip",
                z.ZodTypeAny,
                {
                  id: string;
                  task:
                    | "DEAD"
                    | "AWACS"
                    | "CAP"
                    | "Escort"
                    | "Pinpoint Strike"
                    | "CAS"
                    | "CSAR";
                  startTime: number;
                  frequency: number;
                  taskEndTime: number;
                  endTime: number;
                  flightGroups: {
                    id: string;
                    name: string;
                    units: {
                      id: string;
                      name: string;
                      callSign: (
                        | number
                        | {
                            name: string;
                            2: number;
                            1: number;
                            3: number;
                          }
                      ) &
                        (
                          | number
                          | {
                              name: string;
                              2: number;
                              1: number;
                              3: number;
                            }
                          | undefined
                        );
                      client: boolean;
                    }[];
                    task:
                      | "DEAD"
                      | "AWACS"
                      | "CAP"
                      | "Escort"
                      | "Pinpoint Strike"
                      | "CAS"
                      | "CSAR";
                    waypoints: {
                      name: string;
                      time: number;
                      speed: number;
                      position: {
                        x: number;
                        y: number;
                      };
                      duration?: number | undefined;
                      taskStart?: boolean | undefined;
                      onGround?: boolean | undefined;
                      hold?: boolean | undefined;
                      racetrack?:
                        | {
                            name: string;
                            duration: number;
                            position: {
                              x: number;
                              y: number;
                            };
                            distance: number;
                          }
                        | undefined;
                    }[];
                    position: {
                      x: number;
                      y: number;
                    };
                    startTime: number;
                    designatedStartTime: number;
                    tot: number;
                    landingTime: number;
                    airdromeName: string;
                    target?: string | undefined;
                    frequency?: number | undefined;
                    jtacFrequency?: number | undefined;
                  }[];
                },
                {
                  id: string;
                  task:
                    | "DEAD"
                    | "AWACS"
                    | "CAP"
                    | "Escort"
                    | "Pinpoint Strike"
                    | "CAS"
                    | "CSAR";
                  startTime: number;
                  frequency: number;
                  taskEndTime: number;
                  endTime: number;
                  flightGroups: {
                    id: string;
                    name: string;
                    units: {
                      id: string;
                      name: string;
                      callSign: (
                        | number
                        | {
                            name: string;
                            2: number;
                            1: number;
                            3: number;
                          }
                      ) &
                        (
                          | number
                          | {
                              name: string;
                              2: number;
                              1: number;
                              3: number;
                            }
                          | undefined
                        );
                      client: boolean;
                    }[];
                    task:
                      | "DEAD"
                      | "AWACS"
                      | "CAP"
                      | "Escort"
                      | "Pinpoint Strike"
                      | "CAS"
                      | "CSAR";
                    waypoints: {
                      name: string;
                      time: number;
                      speed: number;
                      position: {
                        x: number;
                        y: number;
                      };
                      duration?: number | undefined;
                      taskStart?: boolean | undefined;
                      onGround?: boolean | undefined;
                      hold?: boolean | undefined;
                      racetrack?:
                        | {
                            name: string;
                            duration: number;
                            position: {
                              x: number;
                              y: number;
                            };
                            distance: number;
                          }
                        | undefined;
                    }[];
                    position: {
                      x: number;
                      y: number;
                    };
                    startTime: number;
                    designatedStartTime: number;
                    tot: number;
                    landingTime: number;
                    airdromeName: string;
                    target?: string | undefined;
                    frequency?: number | undefined;
                    jtacFrequency?: number | undefined;
                  }[];
                }
              >,
              "many"
            >;
            groundGroups: z.ZodArray<
              z.ZodUnion<
                [
                  z.ZodObject<
                    {
                      id: z.ZodString;
                      name: z.ZodString;
                      unitIds: z.ZodArray<z.ZodString, "many">;
                      shoradUnitIds: z.ZodArray<z.ZodString, "many">;
                      position: z.ZodObject<
                        {
                          x: z.ZodNumber;
                          y: z.ZodNumber;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          x: number;
                          y: number;
                        },
                        {
                          x: number;
                          y: number;
                        }
                      >;
                      objectiveName: z.ZodString;
                      state: z.ZodEnum<["en route", "on objective", "combat"]>;
                      startTime: z.ZodNumber;
                      startObjectiveName: z.ZodString;
                      type: z.ZodEnum<["armor", "mbt", "infantry", "ew"]>;
                      combatTimer: z.ZodOptional<z.ZodNumber>;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      id: string;
                      name: string;
                      type: "armor" | "mbt" | "infantry" | "ew";
                      position: {
                        x: number;
                        y: number;
                      };
                      startTime: number;
                      state: "en route" | "combat" | "on objective";
                      unitIds: string[];
                      shoradUnitIds: string[];
                      objectiveName: string;
                      startObjectiveName: string;
                      combatTimer?: number | undefined;
                    },
                    {
                      id: string;
                      name: string;
                      type: "armor" | "mbt" | "infantry" | "ew";
                      position: {
                        x: number;
                        y: number;
                      };
                      startTime: number;
                      state: "en route" | "combat" | "on objective";
                      unitIds: string[];
                      shoradUnitIds: string[];
                      objectiveName: string;
                      startObjectiveName: string;
                      combatTimer?: number | undefined;
                    }
                  >,
                  z.ZodObject<
                    {
                      id: z.ZodString;
                      name: z.ZodString;
                      position: z.ZodObject<
                        {
                          x: z.ZodNumber;
                          y: z.ZodNumber;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          x: number;
                          y: number;
                        },
                        {
                          x: number;
                          y: number;
                        }
                      >;
                      startTime: z.ZodNumber;
                      state: z.ZodEnum<["en route", "on objective", "combat"]>;
                      unitIds: z.ZodArray<z.ZodString, "many">;
                      shoradUnitIds: z.ZodArray<z.ZodString, "many">;
                      objectiveName: z.ZodString;
                      startObjectiveName: z.ZodString;
                      combatTimer: z.ZodOptional<z.ZodNumber>;
                      type: z.ZodEnum<["sam"]>;
                      range: z.ZodNumber;
                      operational: z.ZodBoolean;
                      fireInterval: z.ZodNumber;
                      samType: z.ZodEnum<
                        ["SA-10-300", "SA-6", "SA-5", "SA-3", "SA-2", "Hawk"]
                      >;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      id: string;
                      name: string;
                      type: "sam";
                      position: {
                        x: number;
                        y: number;
                      };
                      startTime: number;
                      state: "en route" | "combat" | "on objective";
                      range: number;
                      unitIds: string[];
                      shoradUnitIds: string[];
                      objectiveName: string;
                      startObjectiveName: string;
                      operational: boolean;
                      fireInterval: number;
                      samType:
                        | "SA-10-300"
                        | "SA-6"
                        | "SA-5"
                        | "SA-3"
                        | "SA-2"
                        | "Hawk";
                      combatTimer?: number | undefined;
                    },
                    {
                      id: string;
                      name: string;
                      type: "sam";
                      position: {
                        x: number;
                        y: number;
                      };
                      startTime: number;
                      state: "en route" | "combat" | "on objective";
                      range: number;
                      unitIds: string[];
                      shoradUnitIds: string[];
                      objectiveName: string;
                      startObjectiveName: string;
                      operational: boolean;
                      fireInterval: number;
                      samType:
                        | "SA-10-300"
                        | "SA-6"
                        | "SA-5"
                        | "SA-3"
                        | "SA-2"
                        | "Hawk";
                      combatTimer?: number | undefined;
                    }
                  >
                ]
              >,
              "many"
            >;
            shipGroups: z.ZodOptional<
              z.ZodArray<
                z.ZodObject<
                  {
                    name: z.ZodString;
                    position: z.ZodObject<
                      {
                        x: z.ZodNumber;
                        y: z.ZodNumber;
                      },
                      "strip",
                      z.ZodTypeAny,
                      {
                        x: number;
                        y: number;
                      },
                      {
                        x: number;
                        y: number;
                      }
                    >;
                  },
                  "strip",
                  z.ZodTypeAny,
                  {
                    name: string;
                    position: {
                      x: number;
                      y: number;
                    };
                  },
                  {
                    name: string;
                    position: {
                      x: number;
                      y: number;
                    };
                  }
                >,
                "many"
              >
            >;
            awacsFrequency: z.ZodNumber;
            structures: z.ZodRecord<
              z.ZodString,
              z.ZodUnion<
                [
                  z.ZodObject<
                    {
                      id: z.ZodString;
                      name: z.ZodString;
                      position: z.ZodObject<
                        {
                          x: z.ZodNumber;
                          y: z.ZodNumber;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          x: number;
                          y: number;
                        },
                        {
                          x: number;
                          y: number;
                        }
                      >;
                      state: z.ZodEnum<["active", "destroyed", "deactivated"]>;
                      objectiveName: z.ZodString;
                      groupId: z.ZodNumber;
                      buildings: z.ZodArray<
                        z.ZodObject<
                          {
                            name: z.ZodString;
                            alive: z.ZodBoolean;
                            destroyedTime: z.ZodOptional<z.ZodNumber>;
                            repairScore: z.ZodOptional<z.ZodNumber>;
                            offset: z.ZodObject<
                              {
                                x: z.ZodNumber;
                                y: z.ZodNumber;
                              },
                              "strip",
                              z.ZodTypeAny,
                              {
                                x: number;
                                y: number;
                              },
                              {
                                x: number;
                                y: number;
                              }
                            >;
                            heading: z.ZodNumber;
                            category: z.ZodEnum<
                              ["Fortifications", "Heliports"]
                            >;
                            shapeName: z.ZodString;
                            type: z.ZodString;
                          },
                          "strip",
                          z.ZodTypeAny,
                          {
                            name: string;
                            type: string;
                            alive: boolean;
                            category: "Fortifications" | "Heliports";
                            offset: {
                              x: number;
                              y: number;
                            };
                            heading: number;
                            shapeName: string;
                            destroyedTime?: number | undefined;
                            repairScore?: number | undefined;
                          },
                          {
                            name: string;
                            type: string;
                            alive: boolean;
                            category: "Fortifications" | "Heliports";
                            offset: {
                              x: number;
                              y: number;
                            };
                            heading: number;
                            shapeName: string;
                            destroyedTime?: number | undefined;
                            repairScore?: number | undefined;
                          }
                        >,
                        "many"
                      >;
                      type: z.ZodEnum<
                        [
                          "Ammo Depot",
                          "Farp",
                          "Command Center",
                          "Power Plant",
                          "Fuel Storage",
                          "Hospital",
                          "Prison"
                        ]
                      >;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      id: string;
                      name: string;
                      type:
                        | "Ammo Depot"
                        | "Farp"
                        | "Command Center"
                        | "Power Plant"
                        | "Fuel Storage"
                        | "Hospital"
                        | "Prison";
                      position: {
                        x: number;
                        y: number;
                      };
                      state: "active" | "destroyed" | "deactivated";
                      objectiveName: string;
                      groupId: number;
                      buildings: {
                        name: string;
                        type: string;
                        alive: boolean;
                        category: "Fortifications" | "Heliports";
                        offset: {
                          x: number;
                          y: number;
                        };
                        heading: number;
                        shapeName: string;
                        destroyedTime?: number | undefined;
                        repairScore?: number | undefined;
                      }[];
                    },
                    {
                      id: string;
                      name: string;
                      type:
                        | "Ammo Depot"
                        | "Farp"
                        | "Command Center"
                        | "Power Plant"
                        | "Fuel Storage"
                        | "Hospital"
                        | "Prison";
                      position: {
                        x: number;
                        y: number;
                      };
                      state: "active" | "destroyed" | "deactivated";
                      objectiveName: string;
                      groupId: number;
                      buildings: {
                        name: string;
                        type: string;
                        alive: boolean;
                        category: "Fortifications" | "Heliports";
                        offset: {
                          x: number;
                          y: number;
                        };
                        heading: number;
                        shapeName: string;
                        destroyedTime?: number | undefined;
                        repairScore?: number | undefined;
                      }[];
                    }
                  >,
                  z.ZodObject<
                    {
                      id: z.ZodString;
                      name: z.ZodString;
                      position: z.ZodObject<
                        {
                          x: z.ZodNumber;
                          y: z.ZodNumber;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                          x: number;
                          y: number;
                        },
                        {
                          x: number;
                          y: number;
                        }
                      >;
                      state: z.ZodEnum<["active", "destroyed", "deactivated"]>;
                      objectiveName: z.ZodString;
                      groupId: z.ZodNumber;
                      buildings: z.ZodArray<
                        z.ZodObject<
                          {
                            name: z.ZodString;
                            alive: z.ZodBoolean;
                            destroyedTime: z.ZodOptional<z.ZodNumber>;
                            repairScore: z.ZodOptional<z.ZodNumber>;
                            offset: z.ZodObject<
                              {
                                x: z.ZodNumber;
                                y: z.ZodNumber;
                              },
                              "strip",
                              z.ZodTypeAny,
                              {
                                x: number;
                                y: number;
                              },
                              {
                                x: number;
                                y: number;
                              }
                            >;
                            heading: z.ZodNumber;
                            category: z.ZodEnum<
                              ["Fortifications", "Heliports"]
                            >;
                            shapeName: z.ZodString;
                            type: z.ZodString;
                          },
                          "strip",
                          z.ZodTypeAny,
                          {
                            name: string;
                            type: string;
                            alive: boolean;
                            category: "Fortifications" | "Heliports";
                            offset: {
                              x: number;
                              y: number;
                            };
                            heading: number;
                            shapeName: string;
                            destroyedTime?: number | undefined;
                            repairScore?: number | undefined;
                          },
                          {
                            name: string;
                            type: string;
                            alive: boolean;
                            category: "Fortifications" | "Heliports";
                            offset: {
                              x: number;
                              y: number;
                            };
                            heading: number;
                            shapeName: string;
                            destroyedTime?: number | undefined;
                            repairScore?: number | undefined;
                          }
                        >,
                        "many"
                      >;
                      type: z.ZodEnum<["Barrack", "Depot"]>;
                      deploymentScore: z.ZodNumber;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      id: string;
                      name: string;
                      type: "Barrack" | "Depot";
                      position: {
                        x: number;
                        y: number;
                      };
                      state: "active" | "destroyed" | "deactivated";
                      objectiveName: string;
                      groupId: number;
                      buildings: {
                        name: string;
                        type: string;
                        alive: boolean;
                        category: "Fortifications" | "Heliports";
                        offset: {
                          x: number;
                          y: number;
                        };
                        heading: number;
                        shapeName: string;
                        destroyedTime?: number | undefined;
                        repairScore?: number | undefined;
                      }[];
                      deploymentScore: number;
                    },
                    {
                      id: string;
                      name: string;
                      type: "Barrack" | "Depot";
                      position: {
                        x: number;
                        y: number;
                      };
                      state: "active" | "destroyed" | "deactivated";
                      objectiveName: string;
                      groupId: number;
                      buildings: {
                        name: string;
                        type: string;
                        alive: boolean;
                        category: "Fortifications" | "Heliports";
                        offset: {
                          x: number;
                          y: number;
                        };
                        heading: number;
                        shapeName: string;
                        destroyedTime?: number | undefined;
                        repairScore?: number | undefined;
                      }[];
                      deploymentScore: number;
                    }
                  >
                ]
              >
            >;
            reinforcementTimer: z.ZodNumber;
            reinforcementDelay: z.ZodNumber;
            downedPilots: z.ZodArray<
              z.ZodObject<
                {
                  id: z.ZodString;
                  name: z.ZodString;
                  position: z.ZodObject<
                    {
                      x: z.ZodNumber;
                      y: z.ZodNumber;
                    },
                    "strip",
                    z.ZodTypeAny,
                    {
                      x: number;
                      y: number;
                    },
                    {
                      x: number;
                      y: number;
                    }
                  >;
                  time: z.ZodNumber;
                },
                "strip",
                z.ZodTypeAny,
                {
                  id: string;
                  name: string;
                  time: number;
                  position: {
                    x: number;
                    y: number;
                  };
                },
                {
                  id: string;
                  name: string;
                  time: number;
                  position: {
                    x: number;
                    y: number;
                  };
                }
              >,
              "many"
            >;
          },
          "strip",
          z.ZodTypeAny,
          {
            name: string;
            aircraftTypes: Record<string, string[]>;
            countryName: string;
            playable: boolean;
            templateName: string;
            airdromeNames: string[];
            inventory: {
              aircrafts: Record<
                string,
                {
                  id: string;
                  aircraftType: string;
                  state:
                    | "idle"
                    | "en route"
                    | "on station"
                    | "combat"
                    | "rtb"
                    | "waiting"
                    | "maintenance";
                  availableTasks: string[];
                  alive: boolean;
                  onboardNumber: string;
                  homeBase: {
                    name: string;
                    type: "airdrome" | "farp" | "carrier";
                  };
                  loadout: {
                    name: string;
                    task:
                      | "DEAD"
                      | "AWACS"
                      | "CAP"
                      | "Escort"
                      | "Pinpoint Strike"
                      | "CAS"
                      | "CSAR"
                      | "default";
                    displayName: string;
                    pylons: {
                      type:
                        | "Fuel Tank"
                        | "Targeting Pod"
                        | "Gun Pod"
                        | "ECM Pod"
                        | "Other"
                        | "Weapon";
                      CLSID: string;
                      num: number;
                      total: number;
                      count: number;
                      weapon?:
                        | {
                            name: string;
                            type:
                              | "infrared"
                              | "active radar"
                              | "semi-active radar";
                            displayName: string;
                            range: number;
                            rangeType: "short" | "medium" | "long";
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Bomb"
                              | "Cluster"
                              | "Rocket"
                              | "Laser Guided Bomb"
                              | "GPS Guided Bomb"
                              | "TV Guided Bomb"
                              | "Laser Guided Rocket";
                            target:
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure";
                            displayName: string;
                            weight?: number | undefined;
                            highDrag?: boolean | undefined;
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Missile"
                              | "Glide Bomb"
                              | "Laser Guided Missile"
                              | "Cruise Missile";
                            displayName: string;
                            range: number;
                            targets: (
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure"
                            )[];
                            year?: number | undefined;
                          }
                        | undefined;
                    }[];
                  };
                  maintenanceEndTime?: number | undefined;
                  a2GWeaponReadyTimer?: number | undefined;
                  a2AWeaponReadyTimer?: number | undefined;
                  destroyedTime?: number | undefined;
                  disabled?: boolean | undefined;
                }
              >;
              groundUnits: Record<
                string,
                {
                  id: string;
                  name: string;
                  state: "idle" | "en route" | "on objective";
                  alive: boolean;
                  displayName: string;
                  category: string;
                  vehicleTypes: (
                    | "MBT"
                    | "Track Radar"
                    | "Search Radar"
                    | "SAM Launcher"
                    | "Unarmored"
                    | "Armored"
                    | "IFV"
                    | "SHORAD"
                    | "Transport"
                    | "Power Generator"
                    | "Refuel"
                    | "Control Unit"
                    | "EW"
                    | "Infantry"
                  )[];
                  destroyedTime?: number | undefined;
                }
              >;
            };
            packages: {
              id: string;
              task:
                | "DEAD"
                | "AWACS"
                | "CAP"
                | "Escort"
                | "Pinpoint Strike"
                | "CAS"
                | "CSAR";
              startTime: number;
              frequency: number;
              taskEndTime: number;
              endTime: number;
              flightGroups: {
                id: string;
                name: string;
                units: {
                  id: string;
                  name: string;
                  callSign: (
                    | number
                    | {
                        name: string;
                        2: number;
                        1: number;
                        3: number;
                      }
                  ) &
                    (
                      | number
                      | {
                          name: string;
                          2: number;
                          1: number;
                          3: number;
                        }
                      | undefined
                    );
                  client: boolean;
                }[];
                task:
                  | "DEAD"
                  | "AWACS"
                  | "CAP"
                  | "Escort"
                  | "Pinpoint Strike"
                  | "CAS"
                  | "CSAR";
                waypoints: {
                  name: string;
                  time: number;
                  speed: number;
                  position: {
                    x: number;
                    y: number;
                  };
                  duration?: number | undefined;
                  taskStart?: boolean | undefined;
                  onGround?: boolean | undefined;
                  hold?: boolean | undefined;
                  racetrack?:
                    | {
                        name: string;
                        duration: number;
                        position: {
                          x: number;
                          y: number;
                        };
                        distance: number;
                      }
                    | undefined;
                }[];
                position: {
                  x: number;
                  y: number;
                };
                startTime: number;
                designatedStartTime: number;
                tot: number;
                landingTime: number;
                airdromeName: string;
                target?: string | undefined;
                frequency?: number | undefined;
                jtacFrequency?: number | undefined;
              }[];
            }[];
            groundGroups: (
              | {
                  id: string;
                  name: string;
                  type: "armor" | "mbt" | "infantry" | "ew";
                  position: {
                    x: number;
                    y: number;
                  };
                  startTime: number;
                  state: "en route" | "combat" | "on objective";
                  unitIds: string[];
                  shoradUnitIds: string[];
                  objectiveName: string;
                  startObjectiveName: string;
                  combatTimer?: number | undefined;
                }
              | {
                  id: string;
                  name: string;
                  type: "sam";
                  position: {
                    x: number;
                    y: number;
                  };
                  startTime: number;
                  state: "en route" | "combat" | "on objective";
                  range: number;
                  unitIds: string[];
                  shoradUnitIds: string[];
                  objectiveName: string;
                  startObjectiveName: string;
                  operational: boolean;
                  fireInterval: number;
                  samType:
                    | "SA-10-300"
                    | "SA-6"
                    | "SA-5"
                    | "SA-3"
                    | "SA-2"
                    | "Hawk";
                  combatTimer?: number | undefined;
                }
            )[];
            awacsFrequency: number;
            structures: Record<
              string,
              | {
                  id: string;
                  name: string;
                  type:
                    | "Ammo Depot"
                    | "Farp"
                    | "Command Center"
                    | "Power Plant"
                    | "Fuel Storage"
                    | "Hospital"
                    | "Prison";
                  position: {
                    x: number;
                    y: number;
                  };
                  state: "active" | "destroyed" | "deactivated";
                  objectiveName: string;
                  groupId: number;
                  buildings: {
                    name: string;
                    type: string;
                    alive: boolean;
                    category: "Fortifications" | "Heliports";
                    offset: {
                      x: number;
                      y: number;
                    };
                    heading: number;
                    shapeName: string;
                    destroyedTime?: number | undefined;
                    repairScore?: number | undefined;
                  }[];
                }
              | {
                  id: string;
                  name: string;
                  type: "Barrack" | "Depot";
                  position: {
                    x: number;
                    y: number;
                  };
                  state: "active" | "destroyed" | "deactivated";
                  objectiveName: string;
                  groupId: number;
                  buildings: {
                    name: string;
                    type: string;
                    alive: boolean;
                    category: "Fortifications" | "Heliports";
                    offset: {
                      x: number;
                      y: number;
                    };
                    heading: number;
                    shapeName: string;
                    destroyedTime?: number | undefined;
                    repairScore?: number | undefined;
                  }[];
                  deploymentScore: number;
                }
            >;
            reinforcementTimer: number;
            reinforcementDelay: number;
            downedPilots: {
              id: string;
              name: string;
              time: number;
              position: {
                x: number;
                y: number;
              };
            }[];
            year?: number | undefined;
            carrierName?: string | undefined;
            created?: Date | undefined;
            shipGroups?:
              | {
                  name: string;
                  position: {
                    x: number;
                    y: number;
                  };
                }[]
              | undefined;
          },
          {
            name: string;
            aircraftTypes: Record<string, string[]>;
            countryName: string;
            playable: boolean;
            templateName: string;
            airdromeNames: string[];
            inventory: {
              aircrafts: Record<
                string,
                {
                  id: string;
                  aircraftType: string;
                  state:
                    | "idle"
                    | "en route"
                    | "on station"
                    | "combat"
                    | "rtb"
                    | "waiting"
                    | "maintenance";
                  availableTasks: string[];
                  alive: boolean;
                  onboardNumber: string;
                  homeBase: {
                    name: string;
                    type: "airdrome" | "farp" | "carrier";
                  };
                  loadout: {
                    name: string;
                    task:
                      | "DEAD"
                      | "AWACS"
                      | "CAP"
                      | "Escort"
                      | "Pinpoint Strike"
                      | "CAS"
                      | "CSAR"
                      | "default";
                    displayName: string;
                    pylons: {
                      type:
                        | "Fuel Tank"
                        | "Targeting Pod"
                        | "Gun Pod"
                        | "ECM Pod"
                        | "Other"
                        | "Weapon";
                      CLSID: string;
                      num: number;
                      total: number;
                      count: number;
                      weapon?:
                        | {
                            name: string;
                            type:
                              | "infrared"
                              | "active radar"
                              | "semi-active radar";
                            displayName: string;
                            range: number;
                            rangeType: "short" | "medium" | "long";
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Bomb"
                              | "Cluster"
                              | "Rocket"
                              | "Laser Guided Bomb"
                              | "GPS Guided Bomb"
                              | "TV Guided Bomb"
                              | "Laser Guided Rocket";
                            target:
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure";
                            displayName: string;
                            weight?: number | undefined;
                            highDrag?: boolean | undefined;
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Missile"
                              | "Glide Bomb"
                              | "Laser Guided Missile"
                              | "Cruise Missile";
                            displayName: string;
                            range: number;
                            targets: (
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure"
                            )[];
                            year?: number | undefined;
                          }
                        | undefined;
                    }[];
                  };
                  maintenanceEndTime?: number | undefined;
                  a2GWeaponReadyTimer?: number | undefined;
                  a2AWeaponReadyTimer?: number | undefined;
                  destroyedTime?: number | undefined;
                  disabled?: boolean | undefined;
                }
              >;
              groundUnits: Record<
                string,
                {
                  id: string;
                  name: string;
                  state: "idle" | "en route" | "on objective";
                  alive: boolean;
                  displayName: string;
                  category: string;
                  vehicleTypes: (
                    | "MBT"
                    | "Track Radar"
                    | "Search Radar"
                    | "SAM Launcher"
                    | "Unarmored"
                    | "Armored"
                    | "IFV"
                    | "SHORAD"
                    | "Transport"
                    | "Power Generator"
                    | "Refuel"
                    | "Control Unit"
                    | "EW"
                    | "Infantry"
                  )[];
                  destroyedTime?: number | undefined;
                }
              >;
            };
            packages: {
              id: string;
              task:
                | "DEAD"
                | "AWACS"
                | "CAP"
                | "Escort"
                | "Pinpoint Strike"
                | "CAS"
                | "CSAR";
              startTime: number;
              frequency: number;
              taskEndTime: number;
              endTime: number;
              flightGroups: {
                id: string;
                name: string;
                units: {
                  id: string;
                  name: string;
                  callSign: (
                    | number
                    | {
                        name: string;
                        2: number;
                        1: number;
                        3: number;
                      }
                  ) &
                    (
                      | number
                      | {
                          name: string;
                          2: number;
                          1: number;
                          3: number;
                        }
                      | undefined
                    );
                  client: boolean;
                }[];
                task:
                  | "DEAD"
                  | "AWACS"
                  | "CAP"
                  | "Escort"
                  | "Pinpoint Strike"
                  | "CAS"
                  | "CSAR";
                waypoints: {
                  name: string;
                  time: number;
                  speed: number;
                  position: {
                    x: number;
                    y: number;
                  };
                  duration?: number | undefined;
                  taskStart?: boolean | undefined;
                  onGround?: boolean | undefined;
                  hold?: boolean | undefined;
                  racetrack?:
                    | {
                        name: string;
                        duration: number;
                        position: {
                          x: number;
                          y: number;
                        };
                        distance: number;
                      }
                    | undefined;
                }[];
                position: {
                  x: number;
                  y: number;
                };
                startTime: number;
                designatedStartTime: number;
                tot: number;
                landingTime: number;
                airdromeName: string;
                target?: string | undefined;
                frequency?: number | undefined;
                jtacFrequency?: number | undefined;
              }[];
            }[];
            groundGroups: (
              | {
                  id: string;
                  name: string;
                  type: "armor" | "mbt" | "infantry" | "ew";
                  position: {
                    x: number;
                    y: number;
                  };
                  startTime: number;
                  state: "en route" | "combat" | "on objective";
                  unitIds: string[];
                  shoradUnitIds: string[];
                  objectiveName: string;
                  startObjectiveName: string;
                  combatTimer?: number | undefined;
                }
              | {
                  id: string;
                  name: string;
                  type: "sam";
                  position: {
                    x: number;
                    y: number;
                  };
                  startTime: number;
                  state: "en route" | "combat" | "on objective";
                  range: number;
                  unitIds: string[];
                  shoradUnitIds: string[];
                  objectiveName: string;
                  startObjectiveName: string;
                  operational: boolean;
                  fireInterval: number;
                  samType:
                    | "SA-10-300"
                    | "SA-6"
                    | "SA-5"
                    | "SA-3"
                    | "SA-2"
                    | "Hawk";
                  combatTimer?: number | undefined;
                }
            )[];
            awacsFrequency: number;
            structures: Record<
              string,
              | {
                  id: string;
                  name: string;
                  type:
                    | "Ammo Depot"
                    | "Farp"
                    | "Command Center"
                    | "Power Plant"
                    | "Fuel Storage"
                    | "Hospital"
                    | "Prison";
                  position: {
                    x: number;
                    y: number;
                  };
                  state: "active" | "destroyed" | "deactivated";
                  objectiveName: string;
                  groupId: number;
                  buildings: {
                    name: string;
                    type: string;
                    alive: boolean;
                    category: "Fortifications" | "Heliports";
                    offset: {
                      x: number;
                      y: number;
                    };
                    heading: number;
                    shapeName: string;
                    destroyedTime?: number | undefined;
                    repairScore?: number | undefined;
                  }[];
                }
              | {
                  id: string;
                  name: string;
                  type: "Barrack" | "Depot";
                  position: {
                    x: number;
                    y: number;
                  };
                  state: "active" | "destroyed" | "deactivated";
                  objectiveName: string;
                  groupId: number;
                  buildings: {
                    name: string;
                    type: string;
                    alive: boolean;
                    category: "Fortifications" | "Heliports";
                    offset: {
                      x: number;
                      y: number;
                    };
                    heading: number;
                    shapeName: string;
                    destroyedTime?: number | undefined;
                    repairScore?: number | undefined;
                  }[];
                  deploymentScore: number;
                }
            >;
            reinforcementTimer: number;
            reinforcementDelay: number;
            downedPilots: {
              id: string;
              name: string;
              time: number;
              position: {
                x: number;
                y: number;
              };
            }[];
            year?: number | undefined;
            carrierName?: string | undefined;
            created?: Date | undefined;
            shipGroups?:
              | {
                  name: string;
                  position: {
                    x: number;
                    y: number;
                  };
                }[]
              | undefined;
          }
        >
      >;
      winningCondition: z.ZodUnion<
        [
          z.ZodObject<
            {
              type: z.ZodLiteral<"ground units">;
            },
            "strip",
            z.ZodTypeAny,
            {
              type: "ground units";
            },
            {
              type: "ground units";
            }
          >,
          z.ZodObject<
            {
              type: z.ZodLiteral<"objective">;
              value: z.ZodString;
            },
            "strip",
            z.ZodTypeAny,
            {
              value: string;
              type: "objective";
            },
            {
              value: string;
              type: "objective";
            }
          >
        ]
      >;
      nextDay: z.ZodBoolean;
      allowNightMissions: z.ZodOptional<z.ZodBoolean>;
      allowBadWeather: z.ZodOptional<z.ZodBoolean>;
      toastMessages: z.ZodArray<
        z.ZodObject<
          {
            id: z.ZodString;
            title: z.ZodString;
            description: z.ZodOptional<z.ZodString>;
            type: z.ZodEnum<["error", "info"]>;
          },
          "strip",
          z.ZodTypeAny,
          {
            id: string;
            type: "error" | "info";
            title: string;
            description?: string | undefined;
          },
          {
            id: string;
            type: "error" | "info";
            title: string;
            description?: string | undefined;
          }
        >,
        "many"
      >;
      campaignTime: z.ZodNumber;
      lastTickTimer: z.ZodNumber;
      objectives: z.ZodRecord<
        z.ZodString,
        z.ZodObject<
          {
            name: z.ZodString;
            position: z.ZodObject<
              {
                x: z.ZodNumber;
                y: z.ZodNumber;
              },
              "strip",
              z.ZodTypeAny,
              {
                x: number;
                y: number;
              },
              {
                x: number;
                y: number;
              }
            >;
            coalition: z.ZodEnum<["blue", "red", "neutrals"]>;
            incomingGroundGroups: z.ZodRecord<
              z.ZodEnum<["blue", "red", "neutrals"]>,
              z.ZodString
            >;
          },
          "strip",
          z.ZodTypeAny,
          {
            name: string;
            position: {
              x: number;
              y: number;
            };
            coalition: "blue" | "red" | "neutrals";
            incomingGroundGroups: Partial<
              Record<"blue" | "red" | "neutrals", string>
            >;
          },
          {
            name: string;
            position: {
              x: number;
              y: number;
            };
            coalition: "blue" | "red" | "neutrals";
            incomingGroundGroups: Partial<
              Record<"blue" | "red" | "neutrals", string>
            >;
          }
        >
      >;
      winner: z.ZodOptional<z.ZodEnum<["blue", "red", "neutrals"]>>;
      aiSkill: z.ZodEnum<["Average", "Good", "High", "Excellent"]>;
      hardcore: z.ZodOptional<
        z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"killed">]>
      >;
      training: z.ZodOptional<z.ZodBoolean>;
      name: z.ZodString;
      missionId: z.ZodOptional<z.ZodString>;
      map: z.ZodEnum<
        ["caucasus", "normandy", "persianGulf", "southAtlantic", "syria"]
      >;
      weather: z.ZodObject<
        {
          offset: z.ZodNumber;
          temperature: z.ZodNumber;
          wind: z.ZodObject<
            {
              direction: z.ZodNumber;
              speed: z.ZodNumber;
            },
            "strip",
            z.ZodTypeAny,
            {
              speed: number;
              direction: number;
            },
            {
              speed: number;
              direction: number;
            }
          >;
          cloudCover: z.ZodNumber;
          cloudCoverData: z.ZodArray<z.ZodNumber, "many">;
        },
        "strip",
        z.ZodTypeAny,
        {
          offset: number;
          temperature: number;
          wind: {
            speed: number;
            direction: number;
          };
          cloudCover: number;
          cloudCoverData: number[];
        },
        {
          offset: number;
          temperature: number;
          wind: {
            speed: number;
            direction: number;
          };
          cloudCover: number;
          cloudCoverData: number[];
        }
      >;
      id: z.ZodString;
      created: z.ZodDate;
      edited: z.ZodDate;
      version: z.ZodNumber;
    },
    "strip",
    z.ZodTypeAny,
    {
      active: boolean;
      loaded: boolean;
      timer: number;
      multiplier: number;
      paused: boolean;
      id: string;
      name: string;
      map: "caucasus" | "normandy" | "persianGulf" | "southAtlantic" | "syria";
      created: Date;
      winningCondition:
        | {
            type: "ground units";
          }
        | {
            value: string;
            type: "objective";
          };
      nextDay: boolean;
      toastMessages: {
        id: string;
        type: "error" | "info";
        title: string;
        description?: string | undefined;
      }[];
      campaignTime: number;
      lastTickTimer: number;
      objectives: Record<
        string,
        {
          name: string;
          position: {
            x: number;
            y: number;
          };
          coalition: "blue" | "red" | "neutrals";
          incomingGroundGroups: Partial<
            Record<"blue" | "red" | "neutrals", string>
          >;
        }
      >;
      aiSkill: "Average" | "Good" | "High" | "Excellent";
      weather: {
        offset: number;
        temperature: number;
        wind: {
          speed: number;
          direction: number;
        };
        cloudCover: number;
        cloudCoverData: number[];
      };
      edited: Date;
      version: number;
      selectedFlightGroup?:
        | {
            id: string;
            name: string;
            units: {
              id: string;
              name: string;
              callSign: (
                | number
                | {
                    name: string;
                    2: number;
                    1: number;
                    3: number;
                  }
              ) &
                (
                  | number
                  | {
                      name: string;
                      2: number;
                      1: number;
                      3: number;
                    }
                  | undefined
                );
              client: boolean;
            }[];
            task:
              | "DEAD"
              | "AWACS"
              | "CAP"
              | "Escort"
              | "Pinpoint Strike"
              | "CAS"
              | "CSAR";
            waypoints: {
              name: string;
              time: number;
              speed: number;
              position: {
                x: number;
                y: number;
              };
              duration?: number | undefined;
              taskStart?: boolean | undefined;
              onGround?: boolean | undefined;
              hold?: boolean | undefined;
              racetrack?:
                | {
                    name: string;
                    duration: number;
                    position: {
                      x: number;
                      y: number;
                    };
                    distance: number;
                  }
                | undefined;
            }[];
            position: {
              x: number;
              y: number;
            };
            startTime: number;
            designatedStartTime: number;
            tot: number;
            landingTime: number;
            airdromeName: string;
            target?: string | undefined;
            frequency?: number | undefined;
            jtacFrequency?: number | undefined;
          }
        | undefined;
      blueFaction?:
        | {
            name: string;
            aircraftTypes: Record<string, string[]>;
            countryName: string;
            playable: boolean;
            templateName: string;
            airdromeNames: string[];
            inventory: {
              aircrafts: Record<
                string,
                {
                  id: string;
                  aircraftType: string;
                  state:
                    | "idle"
                    | "en route"
                    | "on station"
                    | "combat"
                    | "rtb"
                    | "waiting"
                    | "maintenance";
                  availableTasks: string[];
                  alive: boolean;
                  onboardNumber: string;
                  homeBase: {
                    name: string;
                    type: "airdrome" | "farp" | "carrier";
                  };
                  loadout: {
                    name: string;
                    task:
                      | "DEAD"
                      | "AWACS"
                      | "CAP"
                      | "Escort"
                      | "Pinpoint Strike"
                      | "CAS"
                      | "CSAR"
                      | "default";
                    displayName: string;
                    pylons: {
                      type:
                        | "Fuel Tank"
                        | "Targeting Pod"
                        | "Gun Pod"
                        | "ECM Pod"
                        | "Other"
                        | "Weapon";
                      CLSID: string;
                      num: number;
                      total: number;
                      count: number;
                      weapon?:
                        | {
                            name: string;
                            type:
                              | "infrared"
                              | "active radar"
                              | "semi-active radar";
                            displayName: string;
                            range: number;
                            rangeType: "short" | "medium" | "long";
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Bomb"
                              | "Cluster"
                              | "Rocket"
                              | "Laser Guided Bomb"
                              | "GPS Guided Bomb"
                              | "TV Guided Bomb"
                              | "Laser Guided Rocket";
                            target:
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure";
                            displayName: string;
                            weight?: number | undefined;
                            highDrag?: boolean | undefined;
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Missile"
                              | "Glide Bomb"
                              | "Laser Guided Missile"
                              | "Cruise Missile";
                            displayName: string;
                            range: number;
                            targets: (
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure"
                            )[];
                            year?: number | undefined;
                          }
                        | undefined;
                    }[];
                  };
                  maintenanceEndTime?: number | undefined;
                  a2GWeaponReadyTimer?: number | undefined;
                  a2AWeaponReadyTimer?: number | undefined;
                  destroyedTime?: number | undefined;
                  disabled?: boolean | undefined;
                }
              >;
              groundUnits: Record<
                string,
                {
                  id: string;
                  name: string;
                  state: "idle" | "en route" | "on objective";
                  alive: boolean;
                  displayName: string;
                  category: string;
                  vehicleTypes: (
                    | "MBT"
                    | "Track Radar"
                    | "Search Radar"
                    | "SAM Launcher"
                    | "Unarmored"
                    | "Armored"
                    | "IFV"
                    | "SHORAD"
                    | "Transport"
                    | "Power Generator"
                    | "Refuel"
                    | "Control Unit"
                    | "EW"
                    | "Infantry"
                  )[];
                  destroyedTime?: number | undefined;
                }
              >;
            };
            packages: {
              id: string;
              task:
                | "DEAD"
                | "AWACS"
                | "CAP"
                | "Escort"
                | "Pinpoint Strike"
                | "CAS"
                | "CSAR";
              startTime: number;
              frequency: number;
              taskEndTime: number;
              endTime: number;
              flightGroups: {
                id: string;
                name: string;
                units: {
                  id: string;
                  name: string;
                  callSign: (
                    | number
                    | {
                        name: string;
                        2: number;
                        1: number;
                        3: number;
                      }
                  ) &
                    (
                      | number
                      | {
                          name: string;
                          2: number;
                          1: number;
                          3: number;
                        }
                      | undefined
                    );
                  client: boolean;
                }[];
                task:
                  | "DEAD"
                  | "AWACS"
                  | "CAP"
                  | "Escort"
                  | "Pinpoint Strike"
                  | "CAS"
                  | "CSAR";
                waypoints: {
                  name: string;
                  time: number;
                  speed: number;
                  position: {
                    x: number;
                    y: number;
                  };
                  duration?: number | undefined;
                  taskStart?: boolean | undefined;
                  onGround?: boolean | undefined;
                  hold?: boolean | undefined;
                  racetrack?:
                    | {
                        name: string;
                        duration: number;
                        position: {
                          x: number;
                          y: number;
                        };
                        distance: number;
                      }
                    | undefined;
                }[];
                position: {
                  x: number;
                  y: number;
                };
                startTime: number;
                designatedStartTime: number;
                tot: number;
                landingTime: number;
                airdromeName: string;
                target?: string | undefined;
                frequency?: number | undefined;
                jtacFrequency?: number | undefined;
              }[];
            }[];
            groundGroups: (
              | {
                  id: string;
                  name: string;
                  type: "armor" | "mbt" | "infantry" | "ew";
                  position: {
                    x: number;
                    y: number;
                  };
                  startTime: number;
                  state: "en route" | "combat" | "on objective";
                  unitIds: string[];
                  shoradUnitIds: string[];
                  objectiveName: string;
                  startObjectiveName: string;
                  combatTimer?: number | undefined;
                }
              | {
                  id: string;
                  name: string;
                  type: "sam";
                  position: {
                    x: number;
                    y: number;
                  };
                  startTime: number;
                  state: "en route" | "combat" | "on objective";
                  range: number;
                  unitIds: string[];
                  shoradUnitIds: string[];
                  objectiveName: string;
                  startObjectiveName: string;
                  operational: boolean;
                  fireInterval: number;
                  samType:
                    | "SA-10-300"
                    | "SA-6"
                    | "SA-5"
                    | "SA-3"
                    | "SA-2"
                    | "Hawk";
                  combatTimer?: number | undefined;
                }
            )[];
            awacsFrequency: number;
            structures: Record<
              string,
              | {
                  id: string;
                  name: string;
                  type:
                    | "Ammo Depot"
                    | "Farp"
                    | "Command Center"
                    | "Power Plant"
                    | "Fuel Storage"
                    | "Hospital"
                    | "Prison";
                  position: {
                    x: number;
                    y: number;
                  };
                  state: "active" | "destroyed" | "deactivated";
                  objectiveName: string;
                  groupId: number;
                  buildings: {
                    name: string;
                    type: string;
                    alive: boolean;
                    category: "Fortifications" | "Heliports";
                    offset: {
                      x: number;
                      y: number;
                    };
                    heading: number;
                    shapeName: string;
                    destroyedTime?: number | undefined;
                    repairScore?: number | undefined;
                  }[];
                }
              | {
                  id: string;
                  name: string;
                  type: "Barrack" | "Depot";
                  position: {
                    x: number;
                    y: number;
                  };
                  state: "active" | "destroyed" | "deactivated";
                  objectiveName: string;
                  groupId: number;
                  buildings: {
                    name: string;
                    type: string;
                    alive: boolean;
                    category: "Fortifications" | "Heliports";
                    offset: {
                      x: number;
                      y: number;
                    };
                    heading: number;
                    shapeName: string;
                    destroyedTime?: number | undefined;
                    repairScore?: number | undefined;
                  }[];
                  deploymentScore: number;
                }
            >;
            reinforcementTimer: number;
            reinforcementDelay: number;
            downedPilots: {
              id: string;
              name: string;
              time: number;
              position: {
                x: number;
                y: number;
              };
            }[];
            year?: number | undefined;
            carrierName?: string | undefined;
            created?: Date | undefined;
            shipGroups?:
              | {
                  name: string;
                  position: {
                    x: number;
                    y: number;
                  };
                }[]
              | undefined;
          }
        | undefined;
      redFaction?:
        | {
            name: string;
            aircraftTypes: Record<string, string[]>;
            countryName: string;
            playable: boolean;
            templateName: string;
            airdromeNames: string[];
            inventory: {
              aircrafts: Record<
                string,
                {
                  id: string;
                  aircraftType: string;
                  state:
                    | "idle"
                    | "en route"
                    | "on station"
                    | "combat"
                    | "rtb"
                    | "waiting"
                    | "maintenance";
                  availableTasks: string[];
                  alive: boolean;
                  onboardNumber: string;
                  homeBase: {
                    name: string;
                    type: "airdrome" | "farp" | "carrier";
                  };
                  loadout: {
                    name: string;
                    task:
                      | "DEAD"
                      | "AWACS"
                      | "CAP"
                      | "Escort"
                      | "Pinpoint Strike"
                      | "CAS"
                      | "CSAR"
                      | "default";
                    displayName: string;
                    pylons: {
                      type:
                        | "Fuel Tank"
                        | "Targeting Pod"
                        | "Gun Pod"
                        | "ECM Pod"
                        | "Other"
                        | "Weapon";
                      CLSID: string;
                      num: number;
                      total: number;
                      count: number;
                      weapon?:
                        | {
                            name: string;
                            type:
                              | "infrared"
                              | "active radar"
                              | "semi-active radar";
                            displayName: string;
                            range: number;
                            rangeType: "short" | "medium" | "long";
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Bomb"
                              | "Cluster"
                              | "Rocket"
                              | "Laser Guided Bomb"
                              | "GPS Guided Bomb"
                              | "TV Guided Bomb"
                              | "Laser Guided Rocket";
                            target:
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure";
                            displayName: string;
                            weight?: number | undefined;
                            highDrag?: boolean | undefined;
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Missile"
                              | "Glide Bomb"
                              | "Laser Guided Missile"
                              | "Cruise Missile";
                            displayName: string;
                            range: number;
                            targets: (
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure"
                            )[];
                            year?: number | undefined;
                          }
                        | undefined;
                    }[];
                  };
                  maintenanceEndTime?: number | undefined;
                  a2GWeaponReadyTimer?: number | undefined;
                  a2AWeaponReadyTimer?: number | undefined;
                  destroyedTime?: number | undefined;
                  disabled?: boolean | undefined;
                }
              >;
              groundUnits: Record<
                string,
                {
                  id: string;
                  name: string;
                  state: "idle" | "en route" | "on objective";
                  alive: boolean;
                  displayName: string;
                  category: string;
                  vehicleTypes: (
                    | "MBT"
                    | "Track Radar"
                    | "Search Radar"
                    | "SAM Launcher"
                    | "Unarmored"
                    | "Armored"
                    | "IFV"
                    | "SHORAD"
                    | "Transport"
                    | "Power Generator"
                    | "Refuel"
                    | "Control Unit"
                    | "EW"
                    | "Infantry"
                  )[];
                  destroyedTime?: number | undefined;
                }
              >;
            };
            packages: {
              id: string;
              task:
                | "DEAD"
                | "AWACS"
                | "CAP"
                | "Escort"
                | "Pinpoint Strike"
                | "CAS"
                | "CSAR";
              startTime: number;
              frequency: number;
              taskEndTime: number;
              endTime: number;
              flightGroups: {
                id: string;
                name: string;
                units: {
                  id: string;
                  name: string;
                  callSign: (
                    | number
                    | {
                        name: string;
                        2: number;
                        1: number;
                        3: number;
                      }
                  ) &
                    (
                      | number
                      | {
                          name: string;
                          2: number;
                          1: number;
                          3: number;
                        }
                      | undefined
                    );
                  client: boolean;
                }[];
                task:
                  | "DEAD"
                  | "AWACS"
                  | "CAP"
                  | "Escort"
                  | "Pinpoint Strike"
                  | "CAS"
                  | "CSAR";
                waypoints: {
                  name: string;
                  time: number;
                  speed: number;
                  position: {
                    x: number;
                    y: number;
                  };
                  duration?: number | undefined;
                  taskStart?: boolean | undefined;
                  onGround?: boolean | undefined;
                  hold?: boolean | undefined;
                  racetrack?:
                    | {
                        name: string;
                        duration: number;
                        position: {
                          x: number;
                          y: number;
                        };
                        distance: number;
                      }
                    | undefined;
                }[];
                position: {
                  x: number;
                  y: number;
                };
                startTime: number;
                designatedStartTime: number;
                tot: number;
                landingTime: number;
                airdromeName: string;
                target?: string | undefined;
                frequency?: number | undefined;
                jtacFrequency?: number | undefined;
              }[];
            }[];
            groundGroups: (
              | {
                  id: string;
                  name: string;
                  type: "armor" | "mbt" | "infantry" | "ew";
                  position: {
                    x: number;
                    y: number;
                  };
                  startTime: number;
                  state: "en route" | "combat" | "on objective";
                  unitIds: string[];
                  shoradUnitIds: string[];
                  objectiveName: string;
                  startObjectiveName: string;
                  combatTimer?: number | undefined;
                }
              | {
                  id: string;
                  name: string;
                  type: "sam";
                  position: {
                    x: number;
                    y: number;
                  };
                  startTime: number;
                  state: "en route" | "combat" | "on objective";
                  range: number;
                  unitIds: string[];
                  shoradUnitIds: string[];
                  objectiveName: string;
                  startObjectiveName: string;
                  operational: boolean;
                  fireInterval: number;
                  samType:
                    | "SA-10-300"
                    | "SA-6"
                    | "SA-5"
                    | "SA-3"
                    | "SA-2"
                    | "Hawk";
                  combatTimer?: number | undefined;
                }
            )[];
            awacsFrequency: number;
            structures: Record<
              string,
              | {
                  id: string;
                  name: string;
                  type:
                    | "Ammo Depot"
                    | "Farp"
                    | "Command Center"
                    | "Power Plant"
                    | "Fuel Storage"
                    | "Hospital"
                    | "Prison";
                  position: {
                    x: number;
                    y: number;
                  };
                  state: "active" | "destroyed" | "deactivated";
                  objectiveName: string;
                  groupId: number;
                  buildings: {
                    name: string;
                    type: string;
                    alive: boolean;
                    category: "Fortifications" | "Heliports";
                    offset: {
                      x: number;
                      y: number;
                    };
                    heading: number;
                    shapeName: string;
                    destroyedTime?: number | undefined;
                    repairScore?: number | undefined;
                  }[];
                }
              | {
                  id: string;
                  name: string;
                  type: "Barrack" | "Depot";
                  position: {
                    x: number;
                    y: number;
                  };
                  state: "active" | "destroyed" | "deactivated";
                  objectiveName: string;
                  groupId: number;
                  buildings: {
                    name: string;
                    type: string;
                    alive: boolean;
                    category: "Fortifications" | "Heliports";
                    offset: {
                      x: number;
                      y: number;
                    };
                    heading: number;
                    shapeName: string;
                    destroyedTime?: number | undefined;
                    repairScore?: number | undefined;
                  }[];
                  deploymentScore: number;
                }
            >;
            reinforcementTimer: number;
            reinforcementDelay: number;
            downedPilots: {
              id: string;
              name: string;
              time: number;
              position: {
                x: number;
                y: number;
              };
            }[];
            year?: number | undefined;
            carrierName?: string | undefined;
            created?: Date | undefined;
            shipGroups?:
              | {
                  name: string;
                  position: {
                    x: number;
                    y: number;
                  };
                }[]
              | undefined;
          }
        | undefined;
      allowNightMissions?: boolean | undefined;
      allowBadWeather?: boolean | undefined;
      winner?: "blue" | "red" | "neutrals" | undefined;
      hardcore?: boolean | "killed" | undefined;
      training?: boolean | undefined;
      missionId?: string | undefined;
    },
    {
      active: boolean;
      loaded: boolean;
      timer: number;
      multiplier: number;
      paused: boolean;
      id: string;
      name: string;
      map: "caucasus" | "normandy" | "persianGulf" | "southAtlantic" | "syria";
      created: Date;
      winningCondition:
        | {
            type: "ground units";
          }
        | {
            value: string;
            type: "objective";
          };
      nextDay: boolean;
      toastMessages: {
        id: string;
        type: "error" | "info";
        title: string;
        description?: string | undefined;
      }[];
      campaignTime: number;
      lastTickTimer: number;
      objectives: Record<
        string,
        {
          name: string;
          position: {
            x: number;
            y: number;
          };
          coalition: "blue" | "red" | "neutrals";
          incomingGroundGroups: Partial<
            Record<"blue" | "red" | "neutrals", string>
          >;
        }
      >;
      aiSkill: "Average" | "Good" | "High" | "Excellent";
      weather: {
        offset: number;
        temperature: number;
        wind: {
          speed: number;
          direction: number;
        };
        cloudCover: number;
        cloudCoverData: number[];
      };
      edited: Date;
      version: number;
      selectedFlightGroup?:
        | {
            id: string;
            name: string;
            units: {
              id: string;
              name: string;
              callSign: (
                | number
                | {
                    name: string;
                    2: number;
                    1: number;
                    3: number;
                  }
              ) &
                (
                  | number
                  | {
                      name: string;
                      2: number;
                      1: number;
                      3: number;
                    }
                  | undefined
                );
              client: boolean;
            }[];
            task:
              | "DEAD"
              | "AWACS"
              | "CAP"
              | "Escort"
              | "Pinpoint Strike"
              | "CAS"
              | "CSAR";
            waypoints: {
              name: string;
              time: number;
              speed: number;
              position: {
                x: number;
                y: number;
              };
              duration?: number | undefined;
              taskStart?: boolean | undefined;
              onGround?: boolean | undefined;
              hold?: boolean | undefined;
              racetrack?:
                | {
                    name: string;
                    duration: number;
                    position: {
                      x: number;
                      y: number;
                    };
                    distance: number;
                  }
                | undefined;
            }[];
            position: {
              x: number;
              y: number;
            };
            startTime: number;
            designatedStartTime: number;
            tot: number;
            landingTime: number;
            airdromeName: string;
            target?: string | undefined;
            frequency?: number | undefined;
            jtacFrequency?: number | undefined;
          }
        | undefined;
      blueFaction?:
        | {
            name: string;
            aircraftTypes: Record<string, string[]>;
            countryName: string;
            playable: boolean;
            templateName: string;
            airdromeNames: string[];
            inventory: {
              aircrafts: Record<
                string,
                {
                  id: string;
                  aircraftType: string;
                  state:
                    | "idle"
                    | "en route"
                    | "on station"
                    | "combat"
                    | "rtb"
                    | "waiting"
                    | "maintenance";
                  availableTasks: string[];
                  alive: boolean;
                  onboardNumber: string;
                  homeBase: {
                    name: string;
                    type: "airdrome" | "farp" | "carrier";
                  };
                  loadout: {
                    name: string;
                    task:
                      | "DEAD"
                      | "AWACS"
                      | "CAP"
                      | "Escort"
                      | "Pinpoint Strike"
                      | "CAS"
                      | "CSAR"
                      | "default";
                    displayName: string;
                    pylons: {
                      type:
                        | "Fuel Tank"
                        | "Targeting Pod"
                        | "Gun Pod"
                        | "ECM Pod"
                        | "Other"
                        | "Weapon";
                      CLSID: string;
                      num: number;
                      total: number;
                      count: number;
                      weapon?:
                        | {
                            name: string;
                            type:
                              | "infrared"
                              | "active radar"
                              | "semi-active radar";
                            displayName: string;
                            range: number;
                            rangeType: "short" | "medium" | "long";
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Bomb"
                              | "Cluster"
                              | "Rocket"
                              | "Laser Guided Bomb"
                              | "GPS Guided Bomb"
                              | "TV Guided Bomb"
                              | "Laser Guided Rocket";
                            target:
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure";
                            displayName: string;
                            weight?: number | undefined;
                            highDrag?: boolean | undefined;
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Missile"
                              | "Glide Bomb"
                              | "Laser Guided Missile"
                              | "Cruise Missile";
                            displayName: string;
                            range: number;
                            targets: (
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure"
                            )[];
                            year?: number | undefined;
                          }
                        | undefined;
                    }[];
                  };
                  maintenanceEndTime?: number | undefined;
                  a2GWeaponReadyTimer?: number | undefined;
                  a2AWeaponReadyTimer?: number | undefined;
                  destroyedTime?: number | undefined;
                  disabled?: boolean | undefined;
                }
              >;
              groundUnits: Record<
                string,
                {
                  id: string;
                  name: string;
                  state: "idle" | "en route" | "on objective";
                  alive: boolean;
                  displayName: string;
                  category: string;
                  vehicleTypes: (
                    | "MBT"
                    | "Track Radar"
                    | "Search Radar"
                    | "SAM Launcher"
                    | "Unarmored"
                    | "Armored"
                    | "IFV"
                    | "SHORAD"
                    | "Transport"
                    | "Power Generator"
                    | "Refuel"
                    | "Control Unit"
                    | "EW"
                    | "Infantry"
                  )[];
                  destroyedTime?: number | undefined;
                }
              >;
            };
            packages: {
              id: string;
              task:
                | "DEAD"
                | "AWACS"
                | "CAP"
                | "Escort"
                | "Pinpoint Strike"
                | "CAS"
                | "CSAR";
              startTime: number;
              frequency: number;
              taskEndTime: number;
              endTime: number;
              flightGroups: {
                id: string;
                name: string;
                units: {
                  id: string;
                  name: string;
                  callSign: (
                    | number
                    | {
                        name: string;
                        2: number;
                        1: number;
                        3: number;
                      }
                  ) &
                    (
                      | number
                      | {
                          name: string;
                          2: number;
                          1: number;
                          3: number;
                        }
                      | undefined
                    );
                  client: boolean;
                }[];
                task:
                  | "DEAD"
                  | "AWACS"
                  | "CAP"
                  | "Escort"
                  | "Pinpoint Strike"
                  | "CAS"
                  | "CSAR";
                waypoints: {
                  name: string;
                  time: number;
                  speed: number;
                  position: {
                    x: number;
                    y: number;
                  };
                  duration?: number | undefined;
                  taskStart?: boolean | undefined;
                  onGround?: boolean | undefined;
                  hold?: boolean | undefined;
                  racetrack?:
                    | {
                        name: string;
                        duration: number;
                        position: {
                          x: number;
                          y: number;
                        };
                        distance: number;
                      }
                    | undefined;
                }[];
                position: {
                  x: number;
                  y: number;
                };
                startTime: number;
                designatedStartTime: number;
                tot: number;
                landingTime: number;
                airdromeName: string;
                target?: string | undefined;
                frequency?: number | undefined;
                jtacFrequency?: number | undefined;
              }[];
            }[];
            groundGroups: (
              | {
                  id: string;
                  name: string;
                  type: "armor" | "mbt" | "infantry" | "ew";
                  position: {
                    x: number;
                    y: number;
                  };
                  startTime: number;
                  state: "en route" | "combat" | "on objective";
                  unitIds: string[];
                  shoradUnitIds: string[];
                  objectiveName: string;
                  startObjectiveName: string;
                  combatTimer?: number | undefined;
                }
              | {
                  id: string;
                  name: string;
                  type: "sam";
                  position: {
                    x: number;
                    y: number;
                  };
                  startTime: number;
                  state: "en route" | "combat" | "on objective";
                  range: number;
                  unitIds: string[];
                  shoradUnitIds: string[];
                  objectiveName: string;
                  startObjectiveName: string;
                  operational: boolean;
                  fireInterval: number;
                  samType:
                    | "SA-10-300"
                    | "SA-6"
                    | "SA-5"
                    | "SA-3"
                    | "SA-2"
                    | "Hawk";
                  combatTimer?: number | undefined;
                }
            )[];
            awacsFrequency: number;
            structures: Record<
              string,
              | {
                  id: string;
                  name: string;
                  type:
                    | "Ammo Depot"
                    | "Farp"
                    | "Command Center"
                    | "Power Plant"
                    | "Fuel Storage"
                    | "Hospital"
                    | "Prison";
                  position: {
                    x: number;
                    y: number;
                  };
                  state: "active" | "destroyed" | "deactivated";
                  objectiveName: string;
                  groupId: number;
                  buildings: {
                    name: string;
                    type: string;
                    alive: boolean;
                    category: "Fortifications" | "Heliports";
                    offset: {
                      x: number;
                      y: number;
                    };
                    heading: number;
                    shapeName: string;
                    destroyedTime?: number | undefined;
                    repairScore?: number | undefined;
                  }[];
                }
              | {
                  id: string;
                  name: string;
                  type: "Barrack" | "Depot";
                  position: {
                    x: number;
                    y: number;
                  };
                  state: "active" | "destroyed" | "deactivated";
                  objectiveName: string;
                  groupId: number;
                  buildings: {
                    name: string;
                    type: string;
                    alive: boolean;
                    category: "Fortifications" | "Heliports";
                    offset: {
                      x: number;
                      y: number;
                    };
                    heading: number;
                    shapeName: string;
                    destroyedTime?: number | undefined;
                    repairScore?: number | undefined;
                  }[];
                  deploymentScore: number;
                }
            >;
            reinforcementTimer: number;
            reinforcementDelay: number;
            downedPilots: {
              id: string;
              name: string;
              time: number;
              position: {
                x: number;
                y: number;
              };
            }[];
            year?: number | undefined;
            carrierName?: string | undefined;
            created?: Date | undefined;
            shipGroups?:
              | {
                  name: string;
                  position: {
                    x: number;
                    y: number;
                  };
                }[]
              | undefined;
          }
        | undefined;
      redFaction?:
        | {
            name: string;
            aircraftTypes: Record<string, string[]>;
            countryName: string;
            playable: boolean;
            templateName: string;
            airdromeNames: string[];
            inventory: {
              aircrafts: Record<
                string,
                {
                  id: string;
                  aircraftType: string;
                  state:
                    | "idle"
                    | "en route"
                    | "on station"
                    | "combat"
                    | "rtb"
                    | "waiting"
                    | "maintenance";
                  availableTasks: string[];
                  alive: boolean;
                  onboardNumber: string;
                  homeBase: {
                    name: string;
                    type: "airdrome" | "farp" | "carrier";
                  };
                  loadout: {
                    name: string;
                    task:
                      | "DEAD"
                      | "AWACS"
                      | "CAP"
                      | "Escort"
                      | "Pinpoint Strike"
                      | "CAS"
                      | "CSAR"
                      | "default";
                    displayName: string;
                    pylons: {
                      type:
                        | "Fuel Tank"
                        | "Targeting Pod"
                        | "Gun Pod"
                        | "ECM Pod"
                        | "Other"
                        | "Weapon";
                      CLSID: string;
                      num: number;
                      total: number;
                      count: number;
                      weapon?:
                        | {
                            name: string;
                            type:
                              | "infrared"
                              | "active radar"
                              | "semi-active radar";
                            displayName: string;
                            range: number;
                            rangeType: "short" | "medium" | "long";
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Bomb"
                              | "Cluster"
                              | "Rocket"
                              | "Laser Guided Bomb"
                              | "GPS Guided Bomb"
                              | "TV Guided Bomb"
                              | "Laser Guided Rocket";
                            target:
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure";
                            displayName: string;
                            weight?: number | undefined;
                            highDrag?: boolean | undefined;
                            year?: number | undefined;
                          }
                        | {
                            name: string;
                            type:
                              | "Missile"
                              | "Glide Bomb"
                              | "Laser Guided Missile"
                              | "Cruise Missile";
                            displayName: string;
                            range: number;
                            targets: (
                              | "Anti-Armor"
                              | "Hard Target"
                              | "Medium Target"
                              | "Soft Target"
                              | "Ship"
                              | "Radar"
                              | "Light Structure"
                              | "Medium Structure"
                              | "Hard Structure"
                            )[];
                            year?: number | undefined;
                          }
                        | undefined;
                    }[];
                  };
                  maintenanceEndTime?: number | undefined;
                  a2GWeaponReadyTimer?: number | undefined;
                  a2AWeaponReadyTimer?: number | undefined;
                  destroyedTime?: number | undefined;
                  disabled?: boolean | undefined;
                }
              >;
              groundUnits: Record<
                string,
                {
                  id: string;
                  name: string;
                  state: "idle" | "en route" | "on objective";
                  alive: boolean;
                  displayName: string;
                  category: string;
                  vehicleTypes: (
                    | "MBT"
                    | "Track Radar"
                    | "Search Radar"
                    | "SAM Launcher"
                    | "Unarmored"
                    | "Armored"
                    | "IFV"
                    | "SHORAD"
                    | "Transport"
                    | "Power Generator"
                    | "Refuel"
                    | "Control Unit"
                    | "EW"
                    | "Infantry"
                  )[];
                  destroyedTime?: number | undefined;
                }
              >;
            };
            packages: {
              id: string;
              task:
                | "DEAD"
                | "AWACS"
                | "CAP"
                | "Escort"
                | "Pinpoint Strike"
                | "CAS"
                | "CSAR";
              startTime: number;
              frequency: number;
              taskEndTime: number;
              endTime: number;
              flightGroups: {
                id: string;
                name: string;
                units: {
                  id: string;
                  name: string;
                  callSign: (
                    | number
                    | {
                        name: string;
                        2: number;
                        1: number;
                        3: number;
                      }
                  ) &
                    (
                      | number
                      | {
                          name: string;
                          2: number;
                          1: number;
                          3: number;
                        }
                      | undefined
                    );
                  client: boolean;
                }[];
                task:
                  | "DEAD"
                  | "AWACS"
                  | "CAP"
                  | "Escort"
                  | "Pinpoint Strike"
                  | "CAS"
                  | "CSAR";
                waypoints: {
                  name: string;
                  time: number;
                  speed: number;
                  position: {
                    x: number;
                    y: number;
                  };
                  duration?: number | undefined;
                  taskStart?: boolean | undefined;
                  onGround?: boolean | undefined;
                  hold?: boolean | undefined;
                  racetrack?:
                    | {
                        name: string;
                        duration: number;
                        position: {
                          x: number;
                          y: number;
                        };
                        distance: number;
                      }
                    | undefined;
                }[];
                position: {
                  x: number;
                  y: number;
                };
                startTime: number;
                designatedStartTime: number;
                tot: number;
                landingTime: number;
                airdromeName: string;
                target?: string | undefined;
                frequency?: number | undefined;
                jtacFrequency?: number | undefined;
              }[];
            }[];
            groundGroups: (
              | {
                  id: string;
                  name: string;
                  type: "armor" | "mbt" | "infantry" | "ew";
                  position: {
                    x: number;
                    y: number;
                  };
                  startTime: number;
                  state: "en route" | "combat" | "on objective";
                  unitIds: string[];
                  shoradUnitIds: string[];
                  objectiveName: string;
                  startObjectiveName: string;
                  combatTimer?: number | undefined;
                }
              | {
                  id: string;
                  name: string;
                  type: "sam";
                  position: {
                    x: number;
                    y: number;
                  };
                  startTime: number;
                  state: "en route" | "combat" | "on objective";
                  range: number;
                  unitIds: string[];
                  shoradUnitIds: string[];
                  objectiveName: string;
                  startObjectiveName: string;
                  operational: boolean;
                  fireInterval: number;
                  samType:
                    | "SA-10-300"
                    | "SA-6"
                    | "SA-5"
                    | "SA-3"
                    | "SA-2"
                    | "Hawk";
                  combatTimer?: number | undefined;
                }
            )[];
            awacsFrequency: number;
            structures: Record<
              string,
              | {
                  id: string;
                  name: string;
                  type:
                    | "Ammo Depot"
                    | "Farp"
                    | "Command Center"
                    | "Power Plant"
                    | "Fuel Storage"
                    | "Hospital"
                    | "Prison";
                  position: {
                    x: number;
                    y: number;
                  };
                  state: "active" | "destroyed" | "deactivated";
                  objectiveName: string;
                  groupId: number;
                  buildings: {
                    name: string;
                    type: string;
                    alive: boolean;
                    category: "Fortifications" | "Heliports";
                    offset: {
                      x: number;
                      y: number;
                    };
                    heading: number;
                    shapeName: string;
                    destroyedTime?: number | undefined;
                    repairScore?: number | undefined;
                  }[];
                }
              | {
                  id: string;
                  name: string;
                  type: "Barrack" | "Depot";
                  position: {
                    x: number;
                    y: number;
                  };
                  state: "active" | "destroyed" | "deactivated";
                  objectiveName: string;
                  groupId: number;
                  buildings: {
                    name: string;
                    type: string;
                    alive: boolean;
                    category: "Fortifications" | "Heliports";
                    offset: {
                      x: number;
                      y: number;
                    };
                    heading: number;
                    shapeName: string;
                    destroyedTime?: number | undefined;
                    repairScore?: number | undefined;
                  }[];
                  deploymentScore: number;
                }
            >;
            reinforcementTimer: number;
            reinforcementDelay: number;
            downedPilots: {
              id: string;
              name: string;
              time: number;
              position: {
                x: number;
                y: number;
              };
            }[];
            year?: number | undefined;
            carrierName?: string | undefined;
            created?: Date | undefined;
            shipGroups?:
              | {
                  name: string;
                  position: {
                    x: number;
                    y: number;
                  };
                }[]
              | undefined;
          }
        | undefined;
      allowNightMissions?: boolean | undefined;
      allowBadWeather?: boolean | undefined;
      winner?: "blue" | "red" | "neutrals" | undefined;
      hardcore?: boolean | "killed" | undefined;
      training?: boolean | undefined;
      missionId?: string | undefined;
    }
  >;
}
type Coalition = z.infer<typeof Schema.coalition>;
type CampaignState = z.infer<typeof Schema.campaign>;
type Faction = z.infer<typeof Schema.faction>;
type CampaignFaction = z.infer<typeof Schema.campaignFaction>;
type Aircraft$1 = z.infer<typeof Schema.aircraft>;
type Loadout = z.infer<typeof Schema.loadout>;
type Task = z.infer<typeof Schema.task>;
type Structure = z.infer<typeof Schema.structure>;
type StructureType = z.infer<typeof Schema.structureType>;
type StructureTypeDefault = z.infer<typeof Schema.structureTypeDefault>;
type StructureTypeUnitCamp = z.infer<typeof Schema.structureTypeUnitCamp>;
type StructureUnitCamp = z.infer<typeof Schema.structureUnitCamp>;
type StructureDefault = z.infer<typeof Schema.structureDefault>;
type Building = z.infer<typeof Schema.building>;
type Objective = z.infer<typeof Schema.objective>;
type GroundGroup = z.infer<typeof Schema.groundGroup>;
type SamGroup = z.infer<typeof Schema.samGroup>;
type GroundUnit = z.infer<typeof Schema.groundUnit>;
type FlightPackage = z.infer<typeof Schema.flightPackage>;
type FlightGroupUnit = z.infer<typeof Schema.flightGroupUnit>;
type FlightGroup = z.infer<typeof Schema.flightGroup>;
type Position = z.infer<typeof Schema.position>;
type Pylon = z.infer<typeof Schema.pylon>;
type Weapon$1 = z.infer<typeof Schema.weapon>;
type A2AWeapon = z.infer<typeof Schema.a2AWeapon>;
type DownedPilot = z.infer<typeof Schema.downedPilot>;
type CampaignWeather = z.infer<typeof Schema.campaignWeather>;
type MapName = z.infer<typeof Schema.mapName>;

declare const Aircraft: Partial<Record<AircraftType, DCS.Aircraft>>;

declare const CallSigns: {
  aircraft: string[];
  helicopter: string[];
  awacs: string[];
};

declare const GroundUnitsTemplates: Array<GroundUnitsTemplate>;

type LauncherType =
  | {
      type: "Weapon";
      weapon: string;
    }
  | {
      type: "Fuel Tank" | "Targeting Pod" | "Gun Pod" | "ECM Pod" | "Other";
    };
type WeaponLauncher = {
  name: string;
  displayName: string;
  CLSID: string;
  total: number;
} & LauncherType;
declare const Launcher: Record<string, WeaponLauncher>;

type SAMConfig = {
  units: Array<GroundUnitName>;
  range: number;
  fireInterval: number;
};
declare const SAMTemplate: Partial<Record<SamType, SAMConfig>>;

declare const ships: Record<string, ShipGroup>;

declare const Structures: Partial<
  Record<
    StructureType,
    Array<{
      buildings: Array<StructureBuilding>;
    }>
  >
>;

declare const Vehicle: Partial<Record<GroundUnitName, Vehicle$1>>;

declare const Weapon: Record<string, Weapon$1>;

declare function getMapData$1(map: MapName): MapData;

declare const generateCampaignMission: (
  campaign: CampaignState,
  fileName: string,
  kneeboards?: Array<Buffer>
) => Promise<Buffer>;
type GetVehicles = typeof Vehicle;
declare const getVehicles: () => GetVehicles;
type GetGroundUnitsTemplates = typeof GroundUnitsTemplates;
declare const GetGroundUnitsTemplates: () => GroundUnitsTemplate[];
type GetAircrafts = typeof Aircraft;
declare const getAircrafts: () => GetAircrafts;
type GetStructures = typeof Structures;
declare const getStructures: () => GetStructures;
type GetSamTemplates = typeof SAMTemplate;
declare const getSamTemplates: () => GetSamTemplates;
type GetCallSigns = typeof CallSigns;
declare const getCallSigns: () => GetCallSigns;
type GetLaunchers = typeof Launcher;
declare const getLaunchers: () => GetLaunchers;
type GetWeapons = typeof Weapon;
declare const getWeapons: () => GetWeapons;
type GetShips = typeof ships;
declare const GetShips: () => GetShips;
type GetMapData = ReturnType<typeof getMapData$1>;
declare const getMapData: typeof getMapData$1;

export {
  A2AWeapon,
  AiSkill,
  Aircraft$1 as Aircraft,
  AircraftType,
  AirdromeName,
  AirdromeSlot,
  Airdromes,
  AltitudeType,
  AltitudeWind,
  Building,
  CampaignAircraftState,
  CampaignFaction,
  CampaignFlightGroupUnit,
  CampaignGroundGroupState,
  CampaignGroundGroupType,
  CampaignHomeBase,
  CampaignHomeBaseType,
  CampaignSam,
  CampaignState,
  CampaignStructure,
  CampaignStructureBase,
  CampaignStructureBuilding,
  CampaignStructureDefault,
  CampaignStructureState,
  CampaignStructureUnitCamp,
  CampaignUnit,
  CampaignUnitState,
  CampaignWaypoint,
  CampaignWeather,
  Carrier,
  Coalition,
  CountryName,
  CountryWithUnits,
  DCS,
  DownedPilot,
  Enum,
  Era,
  Faction,
  FactionDefinition,
  FarpStructure,
  FlightGroup,
  FlightGroupUnit,
  FlightPackage,
  GeneratedCoalition,
  GeneratedMission,
  GeneratedTriggerZone,
  GetAircrafts,
  GetCallSigns,
  GetGroundUnitsTemplates,
  GetLaunchers,
  GetMapData,
  GetSamTemplates,
  GetShips,
  GetStructures,
  GetVehicles,
  GetWeapons,
  GroundGroup,
  GroundGroupUnit,
  GroundRoutePointAction,
  GroundUnit,
  GroundUnitsTemplate,
  GroundWaypoint,
  Import,
  Loadout,
  MapData,
  MapName,
  Mission,
  MissionDate,
  MissionDefinition,
  Objective,
  ObjectiveType,
  Position,
  Pylon,
  Route,
  RoutePoint,
  RoutePointTask,
  RoutePointTaskAction,
  RoutePointTaskActionWithoutNumber,
  RouteType,
  SAMConfig,
  SamGroup,
  SamType,
  Schema,
  ShipGroup,
  ShipUnit,
  Skill,
  StartType,
  StaticCategory,
  StaticGroup,
  StaticShapeName,
  StaticType,
  StaticUnit,
  StrikeTarget,
  StrikeTargetType,
  Structure,
  StructureBuilding,
  StructureDefault,
  StructureType,
  StructureTypeDefault,
  StructureTypeUnitCamp,
  StructureUnitCamp,
  TakeOffAction,
  TakeOffPoint,
  TakeOffType,
  Task,
  Theatre,
  TriggerZone,
  UnitPosition,
  UsableAirdrome,
  UsableAirdromeSlot,
  Vehicle$1 as Vehicle,
  VehicleType,
  Warehouse,
  WarehouseAirport,
  Waypoint,
  Weapon$1 as Weapon,
  Weather,
  WeatherClouds,
  generateCampaignMission,
  getAircrafts,
  getCallSigns,
  getLaunchers,
  getMapData,
  getSamTemplates,
  getStructures,
  getVehicles,
  getWeapons,
};
