# THIS FILE WAS AUTOMATICALLY GENERATED BY "generate_dicts_from_data_json.py" DO NOT CHANGE MANUALLY!
# ANY CHANGE WILL BE OVERWRITTEN

from sc2.ids.ability_id import AbilityId
from sc2.ids.unit_typeid import UnitTypeId

# from sc2.ids.buff_id import BuffId
# from sc2.ids.effect_id import EffectId


UNIT_ABILITIES: dict[UnitTypeId, set[AbilityId]] = {
    UnitTypeId.ADEPT: {
        AbilityId.ADEPTPHASESHIFT_ADEPTPHASESHIFT,
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.ADEPTPHASESHIFT: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.CANCEL_ADEPTSHADEPHASESHIFT,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.ARBITERMP: {
        AbilityId.ARBITERMPRECALL_ARBITERMPRECALL,
        AbilityId.ARBITERMPSTASISFIELD_ARBITERMPSTASISFIELD,
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.ARCHON: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.ARMORY: {
        AbilityId.ARMORYRESEARCH_TERRANSHIPWEAPONSLEVEL1,
        AbilityId.ARMORYRESEARCH_TERRANSHIPWEAPONSLEVEL2,
        AbilityId.ARMORYRESEARCH_TERRANSHIPWEAPONSLEVEL3,
        AbilityId.ARMORYRESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL1,
        AbilityId.ARMORYRESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL2,
        AbilityId.ARMORYRESEARCH_TERRANVEHICLEANDSHIPPLATINGLEVEL3,
        AbilityId.ARMORYRESEARCH_TERRANVEHICLEWEAPONSLEVEL1,
        AbilityId.ARMORYRESEARCH_TERRANVEHICLEWEAPONSLEVEL2,
        AbilityId.ARMORYRESEARCH_TERRANVEHICLEWEAPONSLEVEL3,
    },
    UnitTypeId.AUTOTURRET: {AbilityId.ATTACK_ATTACK, AbilityId.SMART, AbilityId.STOP_STOP},
    UnitTypeId.BANELING: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.BEHAVIOR_BUILDINGATTACKON,
        AbilityId.BURROWDOWN_BANELING,
        AbilityId.EXPLODE_EXPLODE,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.BANELINGBURROWED: {AbilityId.BURROWUP_BANELING, AbilityId.EXPLODE_EXPLODE},
    UnitTypeId.BANELINGCOCOON: {AbilityId.RALLY_BUILDING, AbilityId.SMART},
    UnitTypeId.BANELINGNEST: {AbilityId.RESEARCH_CENTRIFUGALHOOKS},
    UnitTypeId.BANSHEE: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.BEHAVIOR_CLOAKON_BANSHEE,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.BARRACKS: {
        AbilityId.BARRACKSTRAIN_GHOST,
        AbilityId.BARRACKSTRAIN_MARAUDER,
        AbilityId.BARRACKSTRAIN_MARINE,
        AbilityId.BARRACKSTRAIN_REAPER,
        AbilityId.BUILD_REACTOR_BARRACKS,
        AbilityId.BUILD_TECHLAB_BARRACKS,
        AbilityId.LIFT_BARRACKS,
        AbilityId.RALLY_BUILDING,
        AbilityId.SMART,
    },
    UnitTypeId.BARRACKSFLYING: {
        AbilityId.BUILD_REACTOR_BARRACKS,
        AbilityId.BUILD_TECHLAB_BARRACKS,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.LAND_BARRACKS,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.BARRACKSTECHLAB: {
        AbilityId.BARRACKSTECHLABRESEARCH_STIMPACK,
        AbilityId.RESEARCH_COMBATSHIELD,
        AbilityId.RESEARCH_CONCUSSIVESHELLS,
    },
    UnitTypeId.BATTLECRUISER: {
        AbilityId.ATTACK_BATTLECRUISER,
        AbilityId.EFFECT_TACTICALJUMP,
        AbilityId.HOLDPOSITION_BATTLECRUISER,
        AbilityId.MOVE_BATTLECRUISER,
        AbilityId.PATROL_BATTLECRUISER,
        AbilityId.SMART,
        AbilityId.STOP_BATTLECRUISER,
        AbilityId.YAMATO_YAMATOGUN,
    },
    UnitTypeId.BROODLING: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.BROODLORD: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.BUNKER: {
        AbilityId.LOAD_BUNKER,
        AbilityId.RALLY_BUILDING,
        AbilityId.SALVAGEEFFECT_SALVAGE,
        AbilityId.SMART,
    },
    UnitTypeId.BYPASSARMORDRONE: {AbilityId.ATTACK_ATTACK, AbilityId.MOVE_MOVE, AbilityId.SMART, AbilityId.STOP_STOP},
    UnitTypeId.CARRIER: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.BUILD_INTERCEPTORS,
        AbilityId.CANCEL_HANGARQUEUE5,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.CHANGELING: {
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.CHANGELINGMARINE: {
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.CHANGELINGMARINESHIELD: {
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.CHANGELINGZEALOT: {
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.CHANGELINGZERGLING: {
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.CHANGELINGZERGLINGWINGS: {
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.COLOSSUS: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.COMMANDCENTER: {
        AbilityId.COMMANDCENTERTRAIN_SCV,
        AbilityId.LIFT_COMMANDCENTER,
        AbilityId.LOADALL_COMMANDCENTER,
        AbilityId.RALLY_COMMANDCENTER,
        AbilityId.SMART,
        AbilityId.UPGRADETOORBITAL_ORBITALCOMMAND,
        AbilityId.UPGRADETOPLANETARYFORTRESS_PLANETARYFORTRESS,
    },
    UnitTypeId.COMMANDCENTERFLYING: {
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.LAND_COMMANDCENTER,
        AbilityId.LOADALL_COMMANDCENTER,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.CORRUPTOR: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.CAUSTICSPRAY_CAUSTICSPRAY,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MORPHTOBROODLORD_BROODLORD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.CORSAIRMP: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.CORSAIRMPDISRUPTIONWEB_CORSAIRMPDISRUPTIONWEB,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.CREEPTUMORBURROWED: {AbilityId.BUILD_CREEPTUMOR, AbilityId.BUILD_CREEPTUMOR_TUMOR, AbilityId.SMART},
    UnitTypeId.CYBERNETICSCORE: {
        AbilityId.CYBERNETICSCORERESEARCH_PROTOSSAIRARMORLEVEL1,
        AbilityId.CYBERNETICSCORERESEARCH_PROTOSSAIRARMORLEVEL2,
        AbilityId.CYBERNETICSCORERESEARCH_PROTOSSAIRARMORLEVEL3,
        AbilityId.CYBERNETICSCORERESEARCH_PROTOSSAIRWEAPONSLEVEL1,
        AbilityId.CYBERNETICSCORERESEARCH_PROTOSSAIRWEAPONSLEVEL2,
        AbilityId.CYBERNETICSCORERESEARCH_PROTOSSAIRWEAPONSLEVEL3,
        AbilityId.RESEARCH_WARPGATE,
    },
    UnitTypeId.CYCLONE: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.LOCKON_LOCKON,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.DARKSHRINE: {AbilityId.RESEARCH_SHADOWSTRIKE},
    UnitTypeId.DARKTEMPLAR: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.EFFECT_SHADOWSTRIDE,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MORPH_ARCHON,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.DEFILERMP: {
        AbilityId.DEFILERMPBURROW_BURROWDOWN,
        AbilityId.DEFILERMPCONSUME_DEFILERMPCONSUME,
        AbilityId.DEFILERMPDARKSWARM_DEFILERMPDARKSWARM,
        AbilityId.DEFILERMPPLAGUE_DEFILERMPPLAGUE,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.DEFILERMPBURROWED: {AbilityId.DEFILERMPUNBURROW_BURROWUP},
    UnitTypeId.DEVOURERMP: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.DISRUPTOR: {
        AbilityId.EFFECT_PURIFICATIONNOVA,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.DISRUPTORPHASED: {
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.DRONE: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.BUILD_LURKERDEN,
        AbilityId.BURROWDOWN_DRONE,
        AbilityId.EFFECT_SPRAY_ZERG,
        AbilityId.HARVEST_GATHER_DRONE,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
        AbilityId.ZERGBUILD_BANELINGNEST,
        AbilityId.ZERGBUILD_EVOLUTIONCHAMBER,
        AbilityId.ZERGBUILD_EXTRACTOR,
        AbilityId.ZERGBUILD_HATCHERY,
        AbilityId.ZERGBUILD_HYDRALISKDEN,
        AbilityId.ZERGBUILD_INFESTATIONPIT,
        AbilityId.ZERGBUILD_NYDUSNETWORK,
        AbilityId.ZERGBUILD_ROACHWARREN,
        AbilityId.ZERGBUILD_SPAWNINGPOOL,
        AbilityId.ZERGBUILD_SPINECRAWLER,
        AbilityId.ZERGBUILD_SPIRE,
        AbilityId.ZERGBUILD_SPORECRAWLER,
        AbilityId.ZERGBUILD_ULTRALISKCAVERN,
    },
    UnitTypeId.DRONEBURROWED: {AbilityId.BURROWUP_DRONE},
    UnitTypeId.EGG: {AbilityId.RALLY_BUILDING, AbilityId.SMART},
    UnitTypeId.ELSECARO_COLONIST_HUT: {AbilityId.RALLY_BUILDING, AbilityId.SMART},
    UnitTypeId.ENGINEERINGBAY: {
        AbilityId.ENGINEERINGBAYRESEARCH_TERRANINFANTRYARMORLEVEL1,
        AbilityId.ENGINEERINGBAYRESEARCH_TERRANINFANTRYARMORLEVEL2,
        AbilityId.ENGINEERINGBAYRESEARCH_TERRANINFANTRYARMORLEVEL3,
        AbilityId.ENGINEERINGBAYRESEARCH_TERRANINFANTRYWEAPONSLEVEL1,
        AbilityId.ENGINEERINGBAYRESEARCH_TERRANINFANTRYWEAPONSLEVEL2,
        AbilityId.ENGINEERINGBAYRESEARCH_TERRANINFANTRYWEAPONSLEVEL3,
        AbilityId.RESEARCH_HISECAUTOTRACKING,
        AbilityId.RESEARCH_TERRANSTRUCTUREARMORUPGRADE,
    },
    UnitTypeId.EVOLUTIONCHAMBER: {
        AbilityId.RESEARCH_ZERGGROUNDARMORLEVEL1,
        AbilityId.RESEARCH_ZERGGROUNDARMORLEVEL2,
        AbilityId.RESEARCH_ZERGGROUNDARMORLEVEL3,
        AbilityId.RESEARCH_ZERGMELEEWEAPONSLEVEL1,
        AbilityId.RESEARCH_ZERGMELEEWEAPONSLEVEL2,
        AbilityId.RESEARCH_ZERGMELEEWEAPONSLEVEL3,
        AbilityId.RESEARCH_ZERGMISSILEWEAPONSLEVEL1,
        AbilityId.RESEARCH_ZERGMISSILEWEAPONSLEVEL2,
        AbilityId.RESEARCH_ZERGMISSILEWEAPONSLEVEL3,
    },
    UnitTypeId.FACTORY: {
        AbilityId.BUILD_REACTOR_FACTORY,
        AbilityId.BUILD_TECHLAB_FACTORY,
        AbilityId.FACTORYTRAIN_HELLION,
        AbilityId.FACTORYTRAIN_SIEGETANK,
        AbilityId.FACTORYTRAIN_THOR,
        AbilityId.FACTORYTRAIN_WIDOWMINE,
        AbilityId.LIFT_FACTORY,
        AbilityId.RALLY_BUILDING,
        AbilityId.SMART,
        AbilityId.TRAIN_CYCLONE,
        AbilityId.TRAIN_HELLBAT,
    },
    UnitTypeId.FACTORYFLYING: {
        AbilityId.BUILD_REACTOR_FACTORY,
        AbilityId.BUILD_TECHLAB_FACTORY,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.LAND_FACTORY,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.FACTORYTECHLAB: {
        AbilityId.RESEARCH_CYCLONELOCKONDAMAGE,
        AbilityId.RESEARCH_DRILLINGCLAWS,
        AbilityId.RESEARCH_INFERNALPREIGNITER,
        AbilityId.RESEARCH_SMARTSERVOS,
    },
    UnitTypeId.FLEETBEACON: {
        AbilityId.FLEETBEACONRESEARCH_RESEARCHVOIDRAYSPEEDUPGRADE,
        AbilityId.FLEETBEACONRESEARCH_TEMPESTRESEARCHGROUNDATTACKUPGRADE,
        AbilityId.RESEARCH_PHOENIXANIONPULSECRYSTALS,
    },
    UnitTypeId.FORGE: {
        AbilityId.FORGERESEARCH_PROTOSSGROUNDARMORLEVEL1,
        AbilityId.FORGERESEARCH_PROTOSSGROUNDARMORLEVEL2,
        AbilityId.FORGERESEARCH_PROTOSSGROUNDARMORLEVEL3,
        AbilityId.FORGERESEARCH_PROTOSSGROUNDWEAPONSLEVEL1,
        AbilityId.FORGERESEARCH_PROTOSSGROUNDWEAPONSLEVEL2,
        AbilityId.FORGERESEARCH_PROTOSSGROUNDWEAPONSLEVEL3,
        AbilityId.FORGERESEARCH_PROTOSSSHIELDSLEVEL1,
        AbilityId.FORGERESEARCH_PROTOSSSHIELDSLEVEL2,
        AbilityId.FORGERESEARCH_PROTOSSSHIELDSLEVEL3,
    },
    UnitTypeId.FUSIONCORE: {
        AbilityId.FUSIONCORERESEARCH_RESEARCHBALLISTICRANGE,
        AbilityId.FUSIONCORERESEARCH_RESEARCHMEDIVACENERGYUPGRADE,
        AbilityId.RESEARCH_BATTLECRUISERWEAPONREFIT,
    },
    UnitTypeId.GATEWAY: {
        AbilityId.GATEWAYTRAIN_DARKTEMPLAR,
        AbilityId.GATEWAYTRAIN_HIGHTEMPLAR,
        AbilityId.GATEWAYTRAIN_SENTRY,
        AbilityId.GATEWAYTRAIN_STALKER,
        AbilityId.GATEWAYTRAIN_ZEALOT,
        AbilityId.MORPH_WARPGATE,
        AbilityId.RALLY_BUILDING,
        AbilityId.SMART,
        AbilityId.TRAIN_ADEPT,
    },
    UnitTypeId.GHOST: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.BEHAVIOR_CLOAKON_GHOST,
        AbilityId.BEHAVIOR_HOLDFIREON_GHOST,
        AbilityId.EFFECT_GHOSTSNIPE,
        AbilityId.EMP_EMP,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.GHOSTACADEMY: {AbilityId.BUILD_NUKE, AbilityId.RESEARCH_PERSONALCLOAKING},
    UnitTypeId.GHOSTNOVA: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.BEHAVIOR_CLOAKON_GHOST,
        AbilityId.BEHAVIOR_HOLDFIREON_GHOST,
        AbilityId.EFFECT_GHOSTSNIPE,
        AbilityId.EMP_EMP,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.GREATERSPIRE: {
        AbilityId.RESEARCH_ZERGFLYERARMORLEVEL1,
        AbilityId.RESEARCH_ZERGFLYERARMORLEVEL2,
        AbilityId.RESEARCH_ZERGFLYERARMORLEVEL3,
        AbilityId.RESEARCH_ZERGFLYERATTACKLEVEL1,
        AbilityId.RESEARCH_ZERGFLYERATTACKLEVEL2,
        AbilityId.RESEARCH_ZERGFLYERATTACKLEVEL3,
    },
    UnitTypeId.GUARDIANMP: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.HATCHERY: {
        AbilityId.RALLY_HATCHERY_UNITS,
        AbilityId.RALLY_HATCHERY_WORKERS,
        AbilityId.RESEARCH_BURROW,
        AbilityId.RESEARCH_PNEUMATIZEDCARAPACE,
        AbilityId.SMART,
        AbilityId.TRAINQUEEN_QUEEN,
        AbilityId.UPGRADETOLAIR_LAIR,
    },
    UnitTypeId.HELLION: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MORPH_HELLBAT,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.HELLIONTANK: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MORPH_HELLION,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.HERC: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.HERCPLACEMENT: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.HIGHTEMPLAR: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.FEEDBACK_FEEDBACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MORPH_ARCHON,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.PSISTORM_PSISTORM,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.HIVE: {
        AbilityId.RALLY_HATCHERY_UNITS,
        AbilityId.RALLY_HATCHERY_WORKERS,
        AbilityId.RESEARCH_BURROW,
        AbilityId.RESEARCH_PNEUMATIZEDCARAPACE,
        AbilityId.SMART,
        AbilityId.TRAINQUEEN_QUEEN,
    },
    UnitTypeId.HYDRALISK: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.BURROWDOWN_HYDRALISK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.HYDRALISKFRENZY_HYDRALISKFRENZY,
        AbilityId.MORPH_LURKER,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.HYDRALISKBURROWED: {AbilityId.BURROWUP_HYDRALISK},
    UnitTypeId.HYDRALISKDEN: {
        AbilityId.HYDRALISKDENRESEARCH_RESEARCHFRENZY,
        AbilityId.RESEARCH_GROOVEDSPINES,
        AbilityId.RESEARCH_MUSCULARAUGMENTS,
    },
    UnitTypeId.IMMORTAL: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.INFESTATIONPIT: {AbilityId.RESEARCH_NEURALPARASITE},
    UnitTypeId.INFESTOR: {
        AbilityId.AMORPHOUSARMORCLOUD_AMORPHOUSARMORCLOUD,
        AbilityId.BURROWDOWN_INFESTOR,
        AbilityId.BURROWDOWN_INFESTORTERRAN,
        AbilityId.FUNGALGROWTH_FUNGALGROWTH,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.NEURALPARASITE_NEURALPARASITE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.INFESTORBURROWED: {
        AbilityId.BURROWUP_INFESTOR,
        AbilityId.BURROWUP_INFESTORTERRAN,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.NEURALPARASITE_NEURALPARASITE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.INFESTORTERRAN: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.BURROWDOWN_INFESTORTERRAN,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.INFESTORTERRANBURROWED: {AbilityId.BURROWUP_INFESTORTERRAN},
    UnitTypeId.INTERCEPTOR: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.LAIR: {
        AbilityId.RALLY_HATCHERY_UNITS,
        AbilityId.RALLY_HATCHERY_WORKERS,
        AbilityId.RESEARCH_BURROW,
        AbilityId.RESEARCH_PNEUMATIZEDCARAPACE,
        AbilityId.SMART,
        AbilityId.TRAINQUEEN_QUEEN,
        AbilityId.UPGRADETOHIVE_HIVE,
    },
    UnitTypeId.LARVA: {
        AbilityId.LARVATRAIN_CORRUPTOR,
        AbilityId.LARVATRAIN_DRONE,
        AbilityId.LARVATRAIN_HYDRALISK,
        AbilityId.LARVATRAIN_INFESTOR,
        AbilityId.LARVATRAIN_MUTALISK,
        AbilityId.LARVATRAIN_OVERLORD,
        AbilityId.LARVATRAIN_ROACH,
        AbilityId.LARVATRAIN_ULTRALISK,
        AbilityId.LARVATRAIN_VIPER,
        AbilityId.LARVATRAIN_ZERGLING,
        AbilityId.TRAIN_SWARMHOST,
    },
    UnitTypeId.LIBERATOR: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MORPH_LIBERATORAGMODE,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.LIBERATORAG: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.MORPH_LIBERATORAAMODE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.LOCUSTMP: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.LOCUSTMPFLYING: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.EFFECT_LOCUSTSWOOP,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.LURKERDENMP: {AbilityId.LURKERDENRESEARCH_RESEARCHLURKERRANGE, AbilityId.RESEARCH_ADAPTIVETALONS},
    UnitTypeId.LURKERMP: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.BURROWDOWN_LURKER,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.LURKERMPBURROWED: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.BEHAVIOR_HOLDFIREON_LURKER,
        AbilityId.BURROWUP_LURKER,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.LURKERMPEGG: {AbilityId.RALLY_BUILDING, AbilityId.SMART},
    UnitTypeId.MARAUDER: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.EFFECT_STIM_MARAUDER,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.MARINE: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.EFFECT_STIM_MARINE,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.MEDIVAC: {
        AbilityId.EFFECT_MEDIVACIGNITEAFTERBURNERS,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.LOAD_MEDIVAC,
        AbilityId.MEDIVACHEAL_HEAL,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.MISSILETURRET: {AbilityId.ATTACK_ATTACK, AbilityId.SMART, AbilityId.STOP_STOP},
    UnitTypeId.MOTHERSHIP: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.EFFECT_MASSRECALL_STRATEGICRECALL,
        AbilityId.EFFECT_TIMEWARP,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOTHERSHIPCLOAK_ORACLECLOAKFIELD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.MOTHERSHIPCORE: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.EFFECT_MASSRECALL_MOTHERSHIPCORE,
        AbilityId.EFFECT_PHOTONOVERCHARGE,
        AbilityId.EFFECT_TIMEWARP,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MORPH_MOTHERSHIP,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.MULE: {
        AbilityId.EFFECT_REPAIR_MULE,
        AbilityId.HARVEST_GATHER_MULE,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.MUTALISK: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.NEXUS: {
        AbilityId.EFFECT_CHRONOBOOSTENERGYCOST,
        AbilityId.EFFECT_MASSRECALL_NEXUS,
        AbilityId.ENERGYRECHARGE_ENERGYRECHARGE,
        AbilityId.NEXUSTRAINMOTHERSHIP_MOTHERSHIP,
        AbilityId.NEXUSTRAIN_PROBE,
        AbilityId.RALLY_NEXUS,
        AbilityId.SMART,
    },
    UnitTypeId.NYDUSCANAL: {AbilityId.LOAD_NYDUSWORM, AbilityId.RALLY_BUILDING, AbilityId.SMART, AbilityId.STOP_STOP},
    UnitTypeId.NYDUSCANALATTACKER: {AbilityId.ATTACK_ATTACK, AbilityId.SMART, AbilityId.STOP_STOP},
    UnitTypeId.NYDUSCANALCREEPER: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.DIGESTERCREEPSPRAY_DIGESTERCREEPSPRAY,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.NYDUSNETWORK: {
        AbilityId.BUILD_NYDUSWORM,
        AbilityId.LOAD_NYDUSNETWORK,
        AbilityId.RALLY_BUILDING,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.OBSERVER: {
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MORPH_SURVEILLANCEMODE,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.OBSERVERSIEGEMODE: {AbilityId.MORPH_OBSERVERMODE, AbilityId.STOP_STOP},
    UnitTypeId.ORACLE: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.BEHAVIOR_PULSARBEAMON,
        AbilityId.BUILD_STASISTRAP,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.ORACLEREVELATION_ORACLEREVELATION,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.ORBITALCOMMAND: {
        AbilityId.CALLDOWNMULE_CALLDOWNMULE,
        AbilityId.COMMANDCENTERTRAIN_SCV,
        AbilityId.LIFT_ORBITALCOMMAND,
        AbilityId.RALLY_COMMANDCENTER,
        AbilityId.SCANNERSWEEP_SCAN,
        AbilityId.SMART,
        AbilityId.SUPPLYDROP_SUPPLYDROP,
    },
    UnitTypeId.ORBITALCOMMANDFLYING: {
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.LAND_ORBITALCOMMAND,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.OVERLORD: {
        AbilityId.BEHAVIOR_GENERATECREEPON,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MORPH_OVERLORDTRANSPORT,
        AbilityId.MORPH_OVERSEER,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.OVERLORDTRANSPORT: {
        AbilityId.BEHAVIOR_GENERATECREEPON,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.LOAD_OVERLORD,
        AbilityId.MORPH_OVERSEER,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.OVERSEER: {
        AbilityId.CONTAMINATE_CONTAMINATE,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MORPH_OVERSIGHTMODE,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.SPAWNCHANGELING_SPAWNCHANGELING,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.OVERSEERSIEGEMODE: {
        AbilityId.CONTAMINATE_CONTAMINATE,
        AbilityId.MORPH_OVERSEERMODE,
        AbilityId.SMART,
        AbilityId.SPAWNCHANGELING_SPAWNCHANGELING,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.PHOENIX: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.GRAVITONBEAM_GRAVITONBEAM,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.PHOTONCANNON: {AbilityId.ATTACK_ATTACK, AbilityId.SMART, AbilityId.STOP_STOP},
    UnitTypeId.PLANETARYFORTRESS: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.COMMANDCENTERTRAIN_SCV,
        AbilityId.LOADALL_COMMANDCENTER,
        AbilityId.RALLY_COMMANDCENTER,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.PROBE: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.BUILD_SHIELDBATTERY,
        AbilityId.EFFECT_SPRAY_PROTOSS,
        AbilityId.HARVEST_GATHER_PROBE,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.PROTOSSBUILD_ASSIMILATOR,
        AbilityId.PROTOSSBUILD_CYBERNETICSCORE,
        AbilityId.PROTOSSBUILD_DARKSHRINE,
        AbilityId.PROTOSSBUILD_FLEETBEACON,
        AbilityId.PROTOSSBUILD_FORGE,
        AbilityId.PROTOSSBUILD_GATEWAY,
        AbilityId.PROTOSSBUILD_NEXUS,
        AbilityId.PROTOSSBUILD_PHOTONCANNON,
        AbilityId.PROTOSSBUILD_PYLON,
        AbilityId.PROTOSSBUILD_ROBOTICSBAY,
        AbilityId.PROTOSSBUILD_ROBOTICSFACILITY,
        AbilityId.PROTOSSBUILD_STARGATE,
        AbilityId.PROTOSSBUILD_TEMPLARARCHIVE,
        AbilityId.PROTOSSBUILD_TWILIGHTCOUNCIL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.QUEEN: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.BUILD_CREEPTUMOR,
        AbilityId.BUILD_CREEPTUMOR_QUEEN,
        AbilityId.BURROWDOWN_QUEEN,
        AbilityId.EFFECT_INJECTLARVA,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
        AbilityId.TRANSFUSION_TRANSFUSION,
    },
    UnitTypeId.QUEENBURROWED: {AbilityId.BURROWUP_QUEEN},
    UnitTypeId.QUEENMP: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.QUEENMPENSNARE_QUEENMPENSNARE,
        AbilityId.QUEENMPINFESTCOMMANDCENTER_QUEENMPINFESTCOMMANDCENTER,
        AbilityId.QUEENMPSPAWNBROODLINGS_QUEENMPSPAWNBROODLINGS,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.RAVAGER: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.BURROWDOWN_RAVAGER,
        AbilityId.EFFECT_CORROSIVEBILE,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.RAVAGERBURROWED: {AbilityId.BURROWUP_RAVAGER},
    UnitTypeId.RAVAGERCOCOON: {AbilityId.RALLY_BUILDING, AbilityId.SMART},
    UnitTypeId.RAVEN: {
        AbilityId.BUILDAUTOTURRET_AUTOTURRET,
        AbilityId.EFFECT_ANTIARMORMISSILE,
        AbilityId.EFFECT_INTERFERENCEMATRIX,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.RAVENREPAIRDRONE: {AbilityId.EFFECT_REPAIR_REPAIRDRONE, AbilityId.SMART, AbilityId.STOP_STOP},
    UnitTypeId.REAPER: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.KD8CHARGE_KD8CHARGE,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.REPLICANT: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.ROACH: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.BURROWDOWN_ROACH,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MORPHTORAVAGER_RAVAGER,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.ROACHBURROWED: {
        AbilityId.BURROWUP_ROACH,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.ROACHWARREN: {AbilityId.RESEARCH_GLIALREGENERATION, AbilityId.RESEARCH_TUNNELINGCLAWS},
    UnitTypeId.ROBOTICSBAY: {
        AbilityId.RESEARCH_EXTENDEDTHERMALLANCE,
        AbilityId.RESEARCH_GRAVITICBOOSTER,
        AbilityId.RESEARCH_GRAVITICDRIVE,
    },
    UnitTypeId.ROBOTICSFACILITY: {
        AbilityId.RALLY_BUILDING,
        AbilityId.ROBOTICSFACILITYTRAIN_COLOSSUS,
        AbilityId.ROBOTICSFACILITYTRAIN_IMMORTAL,
        AbilityId.ROBOTICSFACILITYTRAIN_OBSERVER,
        AbilityId.ROBOTICSFACILITYTRAIN_WARPPRISM,
        AbilityId.SMART,
        AbilityId.TRAIN_DISRUPTOR,
    },
    UnitTypeId.SCOURGEMP: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.SCOUTMP: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.SCV: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.EFFECT_REPAIR_SCV,
        AbilityId.EFFECT_SPRAY_TERRAN,
        AbilityId.HARVEST_GATHER_SCV,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
        AbilityId.TERRANBUILD_ARMORY,
        AbilityId.TERRANBUILD_BARRACKS,
        AbilityId.TERRANBUILD_BUNKER,
        AbilityId.TERRANBUILD_COMMANDCENTER,
        AbilityId.TERRANBUILD_ENGINEERINGBAY,
        AbilityId.TERRANBUILD_FACTORY,
        AbilityId.TERRANBUILD_FUSIONCORE,
        AbilityId.TERRANBUILD_GHOSTACADEMY,
        AbilityId.TERRANBUILD_MISSILETURRET,
        AbilityId.TERRANBUILD_REFINERY,
        AbilityId.TERRANBUILD_SENSORTOWER,
        AbilityId.TERRANBUILD_STARPORT,
        AbilityId.TERRANBUILD_SUPPLYDEPOT,
    },
    UnitTypeId.SENSORTOWER: {AbilityId.SALVAGEEFFECT_SALVAGE},
    UnitTypeId.SENTRY: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.FORCEFIELD_FORCEFIELD,
        AbilityId.GUARDIANSHIELD_GUARDIANSHIELD,
        AbilityId.HALLUCINATION_ADEPT,
        AbilityId.HALLUCINATION_ARCHON,
        AbilityId.HALLUCINATION_COLOSSUS,
        AbilityId.HALLUCINATION_DISRUPTOR,
        AbilityId.HALLUCINATION_HIGHTEMPLAR,
        AbilityId.HALLUCINATION_IMMORTAL,
        AbilityId.HALLUCINATION_ORACLE,
        AbilityId.HALLUCINATION_PHOENIX,
        AbilityId.HALLUCINATION_PROBE,
        AbilityId.HALLUCINATION_STALKER,
        AbilityId.HALLUCINATION_VOIDRAY,
        AbilityId.HALLUCINATION_WARPPRISM,
        AbilityId.HALLUCINATION_ZEALOT,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.SHIELDBATTERY: {AbilityId.SHIELDBATTERYRECHARGEEX5_SHIELDBATTERYRECHARGE, AbilityId.SMART},
    UnitTypeId.SIEGETANK: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SIEGEMODE_SIEGEMODE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.SIEGETANKSIEGED: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
        AbilityId.UNSIEGE_UNSIEGE,
    },
    UnitTypeId.SPAWNINGPOOL: {AbilityId.RESEARCH_ZERGLINGADRENALGLANDS, AbilityId.RESEARCH_ZERGLINGMETABOLICBOOST},
    UnitTypeId.SPINECRAWLER: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.SMART,
        AbilityId.SPINECRAWLERUPROOT_SPINECRAWLERUPROOT,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.SPINECRAWLERUPROOTED: {
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.SPINECRAWLERROOT_SPINECRAWLERROOT,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.SPIRE: {
        AbilityId.RESEARCH_ZERGFLYERARMORLEVEL1,
        AbilityId.RESEARCH_ZERGFLYERARMORLEVEL2,
        AbilityId.RESEARCH_ZERGFLYERARMORLEVEL3,
        AbilityId.RESEARCH_ZERGFLYERATTACKLEVEL1,
        AbilityId.RESEARCH_ZERGFLYERATTACKLEVEL2,
        AbilityId.RESEARCH_ZERGFLYERATTACKLEVEL3,
        AbilityId.UPGRADETOGREATERSPIRE_GREATERSPIRE,
    },
    UnitTypeId.SPORECRAWLER: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.SMART,
        AbilityId.SPORECRAWLERUPROOT_SPORECRAWLERUPROOT,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.SPORECRAWLERUPROOTED: {
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.SPORECRAWLERROOT_SPORECRAWLERROOT,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.STALKER: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.EFFECT_BLINK_STALKER,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.STARGATE: {
        AbilityId.RALLY_BUILDING,
        AbilityId.SMART,
        AbilityId.STARGATETRAIN_CARRIER,
        AbilityId.STARGATETRAIN_ORACLE,
        AbilityId.STARGATETRAIN_PHOENIX,
        AbilityId.STARGATETRAIN_TEMPEST,
        AbilityId.STARGATETRAIN_VOIDRAY,
    },
    UnitTypeId.STARPORT: {
        AbilityId.BUILD_REACTOR_STARPORT,
        AbilityId.BUILD_TECHLAB_STARPORT,
        AbilityId.LIFT_STARPORT,
        AbilityId.RALLY_BUILDING,
        AbilityId.SMART,
        AbilityId.STARPORTTRAIN_BANSHEE,
        AbilityId.STARPORTTRAIN_BATTLECRUISER,
        AbilityId.STARPORTTRAIN_LIBERATOR,
        AbilityId.STARPORTTRAIN_MEDIVAC,
        AbilityId.STARPORTTRAIN_RAVEN,
        AbilityId.STARPORTTRAIN_VIKINGFIGHTER,
    },
    UnitTypeId.STARPORTFLYING: {
        AbilityId.BUILD_REACTOR_STARPORT,
        AbilityId.BUILD_TECHLAB_STARPORT,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.LAND_STARPORT,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.STARPORTTECHLAB: {
        AbilityId.RESEARCH_BANSHEECLOAKINGFIELD,
        AbilityId.RESEARCH_BANSHEEHYPERFLIGHTROTORS,
        AbilityId.STARPORTTECHLABRESEARCH_RESEARCHRAVENINTERFERENCEMATRIX,
    },
    UnitTypeId.SUPPLYDEPOT: {AbilityId.MORPH_SUPPLYDEPOT_LOWER},
    UnitTypeId.SUPPLYDEPOTLOWERED: {AbilityId.MORPH_SUPPLYDEPOT_RAISE},
    UnitTypeId.SWARMHOSTBURROWEDMP: {AbilityId.EFFECT_SPAWNLOCUSTS, AbilityId.SMART},
    UnitTypeId.SWARMHOSTMP: {
        AbilityId.BURROWDOWN_SWARMHOST,
        AbilityId.EFFECT_SPAWNLOCUSTS,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.TECHLAB: {
        AbilityId.BARRACKSTECHLABRESEARCH_STIMPACK,
        AbilityId.RESEARCH_BANSHEECLOAKINGFIELD,
        AbilityId.RESEARCH_COMBATSHIELD,
        AbilityId.RESEARCH_CONCUSSIVESHELLS,
        AbilityId.RESEARCH_DRILLINGCLAWS,
        AbilityId.RESEARCH_INFERNALPREIGNITER,
        AbilityId.RESEARCH_RAVENCORVIDREACTOR,
    },
    UnitTypeId.TEMPEST: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.TEMPLARARCHIVE: {AbilityId.RESEARCH_PSISTORM},
    UnitTypeId.THOR: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MORPH_THORHIGHIMPACTMODE,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.THORAP: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MORPH_THOREXPLOSIVEMODE,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.TWILIGHTCOUNCIL: {
        AbilityId.RESEARCH_ADEPTRESONATINGGLAIVES,
        AbilityId.RESEARCH_BLINK,
        AbilityId.RESEARCH_CHARGE,
    },
    UnitTypeId.ULTRALISK: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.BURROWDOWN_ULTRALISK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.ULTRALISKBURROWED: {AbilityId.BURROWUP_ULTRALISK},
    UnitTypeId.ULTRALISKCAVERN: {AbilityId.RESEARCH_ANABOLICSYNTHESIS, AbilityId.RESEARCH_CHITINOUSPLATING},
    UnitTypeId.VIKINGASSAULT: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MORPH_VIKINGFIGHTERMODE,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.VIKINGFIGHTER: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MORPH_VIKINGASSAULTMODE,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.VIPER: {
        AbilityId.BLINDINGCLOUD_BLINDINGCLOUD,
        AbilityId.EFFECT_ABDUCT,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PARASITICBOMB_PARASITICBOMB,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
        AbilityId.VIPERCONSUMESTRUCTURE_VIPERCONSUME,
    },
    UnitTypeId.VOIDMPIMMORTALREVIVECORPSE: {
        AbilityId.RALLY_BUILDING,
        AbilityId.SMART,
        AbilityId.VOIDMPIMMORTALREVIVEREBUILD_IMMORTAL,
    },
    UnitTypeId.VOIDRAY: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.EFFECT_VOIDRAYPRISMATICALIGNMENT,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.WARHOUND: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
        AbilityId.TORNADOMISSILE_TORNADOMISSILE,
    },
    UnitTypeId.WARPGATE: {
        AbilityId.MORPH_GATEWAY,
        AbilityId.SMART,
        AbilityId.TRAINWARP_ADEPT,
        AbilityId.WARPGATETRAIN_DARKTEMPLAR,
        AbilityId.WARPGATETRAIN_HIGHTEMPLAR,
        AbilityId.WARPGATETRAIN_SENTRY,
        AbilityId.WARPGATETRAIN_STALKER,
        AbilityId.WARPGATETRAIN_ZEALOT,
    },
    UnitTypeId.WARPPRISM: {
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.LOAD_WARPPRISM,
        AbilityId.MORPH_WARPPRISMPHASINGMODE,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.WARPPRISMPHASING: {
        AbilityId.LOAD_WARPPRISM,
        AbilityId.MORPH_WARPPRISMTRANSPORTMODE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.WIDOWMINE: {
        AbilityId.BURROWDOWN_WIDOWMINE,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SCAN_MOVE,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.WIDOWMINEBURROWED: {
        AbilityId.BURROWUP_WIDOWMINE,
        AbilityId.SMART,
        AbilityId.WIDOWMINEATTACK_WIDOWMINEATTACK,
    },
    UnitTypeId.ZEALOT: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.EFFECT_CHARGE,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.ZERGLING: {
        AbilityId.ATTACK_ATTACK,
        AbilityId.BURROWDOWN_ZERGLING,
        AbilityId.HOLDPOSITION_HOLD,
        AbilityId.MORPHTOBANELING_BANELING,
        AbilityId.MOVE_MOVE,
        AbilityId.PATROL_PATROL,
        AbilityId.SMART,
        AbilityId.STOP_STOP,
    },
    UnitTypeId.ZERGLINGBURROWED: {AbilityId.BURROWUP_ZERGLING},
}
