{
  "build": 24032336,
  "coverage": {
    "reviewedAiClasses": 139,
    "expectedAiClasses": 139,
    "coveredBossVariants": 234,
    "expectedBossVariants": 234,
    "additionalReviewedAiClasses": 1,
    "additionalCoveredVariants": 6,
    "unreviewedAiIds": [],
    "unresolvedSkillNames": []
  },
  "bosses": {
    "407": {
      "variants": [
        [
          "Adrastea",
          407,
          16
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_407Adrastea_ ThinkInner offsets5-496; ExecuteInner offsets0-738; ExexuteActionResetInner0; 攻撃パターン3 offsets0-172; CDO3,0.6,0.4,2,0.5",
        "Research note: Charging is checked again at execution time; the underlying three-action counter continues during the burst override."
      ]
    },
    "409": {
      "variants": [
        [
          "Aether",
          409,
          18
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_409_HeavensVeritas ThinkInner offsets10-1201; ExecuteInner offsets10-588; 仲間呼び,仲間呼び2,仲間存在判定; CDO HP0.5 period4",
        "Research note: When both reinforcements are missing in the late phase, the two calls form the entire action sequence. The alone counter resets whenever another allied unit is present.",
        "Research note: Having a surviving ally restarts the two-action wait before it can call replacements."
      ]
    },
    "2063": {
      "variants": [
        [
          "Aether",
          2063,
          46
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2063_Heavens2.bytecode.json: ThinkInner @0-585",
        "BP_BtlUnitAI_2063_Heavens2.bytecode.json: ExecuteInner @0-133",
        "BP_BtlUnitAI_2063_Heavens2.bytecode.json: 仲間呼び2 @0-643",
        "BP_BtlUnitAI_2063_Heavens2.bytecode.json: 仲間存在判定 @0-230",
        "boss-ai-defaults.json: BP_BtlUnitAI_2063_Heavens2",
        "Editorial only; preserves the original conditions pending root's independent timing audit of BP_BtlUnitAI_2063_Heavens2."
      ]
    },
    "661": {
      "variants": [
        [
          "Aldhafera",
          661,
          50
        ],
        [
          "Aldhafera",
          911,
          75
        ]
      ],
      "sources": [
        "ThinkInner 880–2851; CDO HP割合=0.5",
        "ExecuteInner 754–1213",
        "ExecuteRecieveDamageInner; ExecuteSkillActionEndInner 337–580; ExecuteBreakRecoveryInner"
      ]
    },
    "662": {
      "variants": [
        [
          "Aldhafera",
          662,
          50
        ],
        [
          "Aldhafera",
          912,
          75
        ]
      ],
      "sources": [
        "ExecuteInner 0–1830, 1873–3104",
        "ThinkInner 159–2061, 2153–2552",
        "ノーマルフェイズ割合行動 80–1398; ラッシュフェイズ割合行動 80–1807",
        "ExecuteBreakRecoveryInner 0–91; CDO 4行動毎=4",
        "Native SetSkillStackList 0x144f609d6–0x144f609f4, 0x144f60a84–0x144f60b32; DT_SkillData 1167 rows, no ID 0"
      ]
    },
    "481": {
      "variants": [
        [
          "Alhena",
          481,
          50
        ],
        [
          "Alhena",
          482,
          50
        ],
        [
          "Alhena",
          821,
          75
        ],
        [
          "Alhena",
          822,
          75
        ]
      ],
      "sources": [
        "通常行動 37–1011; CDO 割合50=0.5, 3ターン毎=3, 4ターン毎=4",
        "ThinkInner 711–1246; ExecuteInner 15–850",
        "ExecuteRecieveDamageInner 349–1170; 属性流転処理 106–703",
        "ExecuteBreakRecoveryInner 0–138",
        "DT_EnemyAIParameter 481/482/821/822 or 483/484/823/824: Fire/Wind tables differ"
      ]
    },
    "482": {
      "variants": [
        [
          "Alhena",
          483,
          50
        ],
        [
          "Alhena",
          484,
          50
        ],
        [
          "Alhena",
          823,
          75
        ],
        [
          "Alhena",
          824,
          75
        ]
      ],
      "sources": [
        "通常行動 37–1417; ThinkInner 177–1218",
        "ExecuteInner 5–1368; B使用対象判定 0–2284",
        "ExecuteRecieveDamageInner 803–1252; Ｂ使用対象策定 0–3172",
        "ExecuteSkillActionEndInner 108–327; 属性流転処理 111–1441",
        "DT_EnemyAIParameter 481/482/821/822 or 483/484/823/824: Fire/Wind tables differ"
      ]
    },
    "411": {
      "variants": [
        [
          "Alluvion",
          411,
          26
        ],
        [
          "Alluvion",
          2065,
          48
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_411Suika ThinkInner offsets5-1256; 大技使用 offsets0-558; 仲間呼び offsets21-411; ExecuteBreakRecoveryInner0-89; ExecuteInner178-437; ExecuteUbergraph26-94; CDO HP0.5 period5",
        "Research note: On the first low-HP transition, the cycle starts at the payoff if allies are present, otherwise at the summon.",
        "Variant research note: The Chapter 7 initialization raises the HP threshold to 110%, making the later four-action pattern active immediately. If allies are already present when that pattern begins, it starts at the payoff.",
        "Research note: When it first drops below 50% HP, it goes straight to its finishing attack if allies survive, or summons if it is alone."
      ]
    },
    "651": {
      "variants": [
        [
          "Alpherg",
          651,
          50
        ],
        [
          "Alpherg",
          901,
          75
        ]
      ],
      "sources": [
        "ThinkInner 34–1535; CDO ターン毎=6, HP割合=0.5, 連続リフレク=true",
        "ExecuteSkillActionEndInner 0–281",
        "攻撃パターン3 0–199",
        "バフ判定 24–623",
        "ExecuteRecieveDamageInner 34–221",
        "バフ判定 24–623: direct second-list index7 is reachable Shell, not an unused skill"
      ]
    },
    "652": {
      "variants": [
        [
          "Alpherg",
          652,
          50
        ],
        [
          "Alpherg",
          902,
          75
        ]
      ],
      "sources": [
        "ThinkInner 0–774; CDO ターン毎=8, 形態変化HP割合=0.7",
        "攻撃パターン3 0–144",
        "形態変化ＨＰ判定 49–135",
        "形態変化フロー 0–136",
        "ExecuteSkillActionEndInner 197–430"
      ]
    },
    "653": {
      "variants": [
        [
          "Alpherg",
          653,
          50
        ],
        [
          "Alpherg",
          903,
          75
        ]
      ],
      "sources": [
        "ThinkInner 37–599; CDO ターン毎=6, 形態変化HP割合=0.3",
        "攻撃パターン3 0–106",
        "形態変化HP判定 44–58",
        "ExecuteSkillActionEndInner 149–286"
      ]
    },
    "654": {
      "variants": [
        [
          "Alpherg",
          654,
          50
        ],
        [
          "Alpherg",
          904,
          75
        ]
      ],
      "sources": [
        "ThinkInner 37–675; CDO ターン毎=6",
        "ExecuteInner 114–139; バフ判定 24–581"
      ]
    },
    "405": {
      "variants": [
        [
          "Antlion",
          405,
          20
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_405Doodlebug ThinkInner offsets0-370; CDO period3"
      ]
    },
    "2058": {
      "variants": [
        [
          "Arch Gargoyle",
          2058,
          40
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2058ArkGargoyle.bytecode.json: ThinkInner @0-395",
        "boss-ai-defaults.json: BP_BtlUnitAI_2058ArkGargoyle"
      ]
    },
    "448": {
      "variants": [
        [
          "Archaeoaevis",
          448,
          40
        ],
        [
          "Archaeoaevis",
          2080,
          40
        ],
        [
          "Archaeoaevis",
          2081,
          40
        ],
        [
          "Archaeoaevis",
          2082,
          40
        ],
        [
          "Archaeoaevis",
          2083,
          40
        ],
        [
          "Archaeoaevis",
          2084,
          40
        ],
        [
          "Archaeoaevis",
          2085,
          40
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_448ArchaeoAvis ThinkInner offsets5-1156; ExecuteInner10-270; 攻撃パターン3,攻撃パターン4; CDO periods6/4 HP0.5 chance0.7 base2080",
        "Research note: The barrier/phase markers are stored in shared battle state, so they survive parameter-form changes."
      ]
    },
    "416": {
      "variants": [
        [
          "Archwitch Fina",
          416,
          38
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_416DarkFina ThinkInner offsets5-1021; ExecuteInner10-541; 攻撃パターン3,4,5; ExecuteRecieveDamageInner0-176; CDO period4 HP0.6",
        "Research note: For its supported single-target debuffs, it attempts to select an opponent without the relevant status, then falls back to the ordinary scheduled-skill targeting path."
      ]
    },
    "458": {
      "variants": [
        [
          "Bahamut",
          458,
          50
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_458Bahamut.bytecode.json: ThinkInner @0-1005",
        "BP_BtlUnitAI_458Bahamut.bytecode.json: ExecuteInner @0-1865",
        "BP_BtlUnitAI_458Bahamut.bytecode.json: ExecuteRecieveDamageInner @0-2278",
        "BP_BtlUnitAI_458Bahamut.bytecode.json: ExecuteSkillActionEndInner @0-2541",
        "BP_BtlUnitAI_458Bahamut.bytecode.json: ExecuteBreakRecoveryInner @0-277",
        "BP_BtlUnitAI_458Bahamut.bytecode.json: カウントリセット @0-204",
        "boss-ai-defaults.json: BP_BtlUnitAI_458Bahamut"
      ]
    },
    "4021": {
      "variants": [
        [
          "Beast of Ruin",
          4021,
          90
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_4021Col_Majyu.bytecode.json: ThinkInner @0-443",
        "BP_BtlUnitAI_4021Col_Majyu.bytecode.json: 攻撃パターン１ @0-271",
        "BP_BtlUnitAI_4021Col_Majyu.bytecode.json: 攻撃パターン２ @0-735",
        "BP_BtlUnitAI_4021Col_Majyu.bytecode.json: 攻撃パターン３ @0-405",
        "BP_BtlUnitAI_4021Col_Majyu.bytecode.json: ExecuteBeginCounterInner @0-1099",
        "BP_BtlUnitAI_4021Col_Majyu.bytecode.json: ExecuteInner @0-409",
        "BP_BtlUnitAI_4021Col_Majyu.bytecode.json: ExecuteBreakRecoveryInner @0-110",
        "boss-ai-defaults.json: BP_BtlUnitAI_4021Col_Majyu"
      ]
    },
    "422": {
      "variants": [
        [
          "Behemoth",
          422,
          52
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_422BehemothK ThinkInner offsets0-1507; ExecuteInner0-380; ExecuteRecieveDamageInner149-2230; 攻撃パターン3; CDO period4 chance0.4",
        "Research note: The exact trigger for the encounter-event markers is outside this AI class; mode changes must not be described as random or assigned an unsupported HP threshold.",
        "Research note: The attack patterns are clear, but the events that start the middle phases are controlled elsewhere in the battle."
      ]
    },
    "401": {
      "variants": [
        [
          "Belmodar",
          401,
          4
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_401bellmoder ThinkInner offsets0-377; CDO period3 and first-third-action flag=true"
      ]
    },
    "1": {
      "variants": [
        [
          "Bloodsaurus",
          272,
          45
        ],
        [
          "Cutting Edge Magitek Weapon",
          412,
          35
        ],
        [
          "Iron Giant",
          445,
          40
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_001Default.bytecode.json: ThinkInner @0",
        "BP_BtlUnitAI_001Default.bytecode.json: ExecuteInner @0",
        "boss-ai-defaults.json: BP_BtlUnitAI_001Default"
      ]
    },
    "621": {
      "variants": [
        [
          "Brachium",
          621,
          50
        ],
        [
          "Brachium",
          861,
          75
        ]
      ],
      "sources": [
        "ThinkInner 298–1450",
        "ExecuteInner 29–447",
        "ExecuteRecieveDamageInner 34–462",
        "ExecuteBeginCounterInner 38; CDO 3ターン毎=3, 割合50=0.5, 極刑フラグ=true"
      ]
    },
    "622": {
      "variants": [
        [
          "Brachium",
          622,
          50
        ],
        [
          "Brachium",
          862,
          75
        ]
      ],
      "sources": [
        "ThinkInner 263–1156",
        "ExecuteInner 29–447",
        "ExecuteRecieveDamageInner 34–462",
        "ExecuteBeginCounterInner 38; CDO 3ターン毎=3, 割合50=0.5, 極刑フラグ=true"
      ]
    },
    "623": {
      "variants": [
        [
          "Brachium",
          623,
          50
        ],
        [
          "Brachium",
          863,
          75
        ]
      ],
      "sources": [
        "ThinkInner 212–849; 審議処理 34–1154",
        "判決処理 38–1706; ExecuteBreakRecoveryInner 0–194",
        "CDO 割合50=0.5, 割合25=0.25, 割合10=0.1, 3ターン毎=3"
      ]
    },
    "428": {
      "variants": [
        [
          "Byblos",
          428,
          36
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_428Byblos ExecuteBeginCounterInner20-479; ExecuteSkillActionEndInner129-253; ExecuteBreakRecoveryInner0-39; ThinkInner5-846; 攻撃パターン3-6; CDO period4 HP0.3 Break0.5",
        "Research note: The counter IDs are an internal dummy used to stage the Rage response; they are not a separate damaging counter attack. The first enraged decision restarts the cycle at action 1."
      ]
    },
    "2048": {
      "variants": [
        [
          "Catacumba",
          2048,
          54
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2048SkullDragon.bytecode.json: ThinkInner @0-892",
        "BP_BtlUnitAI_2048SkullDragon.bytecode.json: ExecuteInner @0-616",
        "BP_BtlUnitAI_2048SkullDragon.bytecode.json: ExecuteSkillActionEndInner @0-157",
        "BP_BtlUnitAI_2048SkullDragon.bytecode.json: ExecuteBreakRecoveryInner @0-11",
        "boss-ai-defaults.json: BP_BtlUnitAI_2048SkullDragon"
      ]
    },
    "4002": {
      "variants": [
        [
          "Chaos Dragon",
          4002,
          41
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_4002Col_ChaosDragon.bytecode.json: ThinkInner @0-501",
        "BP_BtlUnitAI_4002Col_ChaosDragon.bytecode.json: ExecuteBeginCounterInner @0-1168",
        "BP_BtlUnitAI_4002Col_ChaosDragon.bytecode.json: ExecuteSkillActionEndInner @0-285",
        "BP_BtlUnitAI_4002Col_ChaosDragon.bytecode.json: 暴走化終了 @0-483",
        "BP_BtlUnitAI_4002Col_ChaosDragon.bytecode.json: 沈静化判断 @0-678",
        "boss-ai-defaults.json: BP_BtlUnitAI_4002Col_ChaosDragon",
        "Native damage-dispatch review: ai-damage-dispatch-audit.md. ReceiveDamage processes a target damage array before invoking the Blueprint once. Raw hits do not each imply a separate AI reaction; exact array grouping and BeginCounter frequency remain bounded uncertainties."
      ]
    },
    "424": {
      "variants": [
        [
          "Chaotic Darkness",
          424,
          55
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_424CoD1 ThinkInner5-1296; ExecuteInner15-613; バフ判定; 仲間存在判定; 大技パターン; 攻撃パターン3-4; CDO period6 HP0.6",
        "Unused 再生判定 helper requests out-of-range pool1 slot13; native accessor returns -1. Neither that helper nor 回復行動 is called by active decision/execution functions."
      ]
    },
    "425": {
      "variants": [
        [
          "Chaotic Darkness",
          425,
          55
        ],
        [
          "Chaotic Darkness",
          697,
          55
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_425CoD2 ThinkInner0-1551; ExecuteRecieveDamageInner0-485; ExecuteBreakRecoveryInner0-223; ExecuteSkillActionEndInner177-303; ExecuteInner10-247; 攻撃パターン3-4; 初回封印のターゲット取得; CDO periods6/9 HP0.5",
        "Research note: The special-slot helper contains an unused probability variable; its actual branch alternates deterministically. The native seal-order helper determines the other two initial seal targets."
      ]
    },
    "601": {
      "variants": [
        [
          "Dabih",
          601,
          50
        ],
        [
          "Dabih",
          841,
          75
        ]
      ],
      "sources": [
        "ThinkInner 42–936; CDO ターン毎=5, ターン毎2=4",
        "バフ判定 0–614; バフ行動2 0–144",
        "行動パターン3 0–199; 行動パターン4 0–199",
        "ExecuteRecieveDamageInner 34–221"
      ]
    },
    "602": {
      "variants": [
        [
          "Dabih",
          602,
          50
        ],
        [
          "Dabih",
          842,
          75
        ]
      ],
      "sources": [
        "ThinkInner 123–1528; CDO ターン毎=6, 祈り最大ターン数=3",
        "祈り判定 65–1182; カウント 132–226; 祈り発動 65–344",
        "ExecuteRecieveDamageInner 142–777",
        "ExecuteInner 114–244"
      ]
    },
    "446": {
      "variants": [
        [
          "Dad Bomb",
          446,
          40
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_446FatherBomb ThinkInner5-1165; ExecuteInner5-566; ExecuteRecieveDamageInner5-1235; 攻撃パターン3-4; CDO period4 HP0.5 rageMax30",
        "Research note: The explosion HP bands are resolved in order at execution; exactly 50% uses the 25-50% variant and exactly 25% uses the lowest band. No counter reset appears in this AI."
      ]
    },
    "460": {
      "variants": [
        [
          "Dark Bahamut",
          460,
          52
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_460DarkBahamut.bytecode.json: ThinkInner @0-282",
        "BP_BtlUnitAI_460DarkBahamut.bytecode.json: ExecuteInner @0-199",
        "BP_BtlUnitAI_460DarkBahamut.bytecode.json: 攻撃パターン3 @0-508",
        "BP_BtlUnitAI_460DarkBahamut.bytecode.json: カウントリセット @0-115",
        "boss-ai-defaults.json: BP_BtlUnitAI_460DarkBahamut"
      ]
    },
    "4000": {
      "variants": [
        [
          "Dark Fang",
          4001,
          40
        ],
        [
          "Wild Maneuverer",
          4000,
          40
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_4000Col_Antlion.bytecode.json: ThinkInner @0-1169",
        "BP_BtlUnitAI_4000Col_Antlion.bytecode.json: ExecuteInner @0-562",
        "BP_BtlUnitAI_4000Col_Antlion.bytecode.json: バフ判定_ダークファング @0-261",
        "BP_BtlUnitAI_4000Col_Antlion.bytecode.json: バフ判定_ワイルドヌーバー @0-261",
        "boss-ai-defaults.json: BP_BtlUnitAI_4000Col_Antlion"
      ]
    },
    "4017": {
      "variants": [
        [
          "Death Machine",
          4017,
          66
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_4017Col_DeathMachine.bytecode.json: ThinkInner @0-1106",
        "BP_BtlUnitAI_4017Col_DeathMachine.bytecode.json: ExecuteBeginCounterInner @0-2422",
        "BP_BtlUnitAI_4017Col_DeathMachine.bytecode.json: 属性シールド数の上限判定 @0-299",
        "BP_BtlUnitAI_4017Col_DeathMachine.bytecode.json: ExecuteRecieveDamageInner @0-251",
        "BP_BtlUnitAI_4017Col_DeathMachine.bytecode.json: ExecuteBreakRecoveryInner @0-263",
        "ai-native-level-filter-full.txt: GetUnitFromLevel 0x144f528e0, divisible comparison at 0x144f52a04",
        "boss-ai-defaults.json: BP_BtlUnitAI_4017Col_DeathMachine"
      ]
    },
    "4016": {
      "variants": [
        [
          "Donchu",
          4016,
          62
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_4016Col_Donchu.bytecode.json: ThinkInner @0-614",
        "BP_BtlUnitAI_4016Col_Donchu.bytecode.json: ExecuteInner @0-1238",
        "BP_BtlUnitAI_4016Col_Donchu.bytecode.json: カウント表示 @0-2076",
        "BP_BtlUnitAI_4016Col_Donchu.bytecode.json: カウントリセット @0-27",
        "BP_BtlUnitAI_4016Col_Donchu.bytecode.json: ExecuteBreakRecoveryInner @0-94",
        "boss-ai-defaults.json: BP_BtlUnitAI_4016Col_Donchu"
      ]
    },
    "443": {
      "variants": [
        [
          "Dragon",
          443,
          42
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_443Dragon ThinkInner5-500; ExecuteInner14-140; カウント表示; 大技連打; 攻撃パターン3-4; CDO countdown9 HP0.6 choices0.8/0.5",
        "Research note: The countdown starts at 9 and decreases on the first execution of each two-action pair. It is not a fresh random roll or an HP-triggered ultimate. The defined countdown-reset helper is not called by this class."
      ]
    },
    "418": {
      "variants": [
        [
          "Elfdrit",
          418,
          42
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_418DarkElf ThinkInner5-1841; CDO period4 HP0.6 recovery0.6 special0.3",
        "Research note: The HP-dependent cycle is selected from current HP, while the first low-HP counter reset happens only once."
      ]
    },
    "461": {
      "variants": [
        [
          "Elnath",
          461,
          50
        ],
        [
          "Elnath",
          801,
          75
        ]
      ],
      "sources": [
        "ThinkInner 37–417; ExecuteInner 104–840",
        "カウント表示 34–1318; 行動パターン3 0–199",
        "減少ブレイク判定 196–356; ExecuteUbergraph_BP_BtlUnitAI_461Elnath1 134–171",
        "CDO カウント=4, 最大カウント数=4, ターン毎=3"
      ]
    },
    "462": {
      "variants": [
        [
          "Elnath",
          462,
          50
        ],
        [
          "Elnath",
          802,
          75
        ]
      ],
      "sources": [
        "ThinkInner 51–716; CDO ターン毎=6, 形態変化HP割合=0.5",
        "HP減少割合判定 5–1069; ExecuteInner 114–292",
        "ExecuteSkillActionEndInner 197–556",
        "Replacement scheduling occurs in execution; it should not be described as a new unconditional healing cast."
      ]
    },
    "465": {
      "variants": [
        [
          "Elnath",
          465,
          50
        ],
        [
          "Elnath",
          805,
          75
        ]
      ],
      "sources": [
        "ThinkInner 29–721; CDO ターン毎=6",
        "大技パターン 0–144; 攻撃パターン3 0–199; 攻撃パターン4 0–199",
        "ExecuteInner 114–244; ExecuteSkillActionEndInner 109–313"
      ]
    },
    "426": {
      "variants": [
        [
          "Emperor of Zoldaad",
          426,
          30
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_426Sozhe ThinkInner10-532; ExecuteInner10-507; ExecuteBreakRecoveryInner0; 仲間呼び; 攻撃パターン3; CDO period4 HP0.5",
        "Research note: The delay counter advances only during alone checks and is cleared by a reinforcement call; merely having an ally does not clear it in this class.",
        "Research note: The wait only advances while it is alone. Summoning restarts the wait; having an ally briefly does not."
      ]
    },
    "414": {
      "variants": [
        [
          "Evan",
          414,
          30
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_414Evan ThinkInner0; ExecuteRecieveDamageInner20-518",
        "Research note: The stored three-turn variable is unused by the actual decision function."
      ]
    },
    "17": {
      "variants": [
        [
          "Fire Hydra",
          206,
          32
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_017Turn2.bytecode.json: ThinkInner @0-260",
        "boss-ai-defaults.json: BP_BtlUnitAI_017Turn2"
      ]
    },
    "4018": {
      "variants": [
        [
          "Gargantuan Gigantuar",
          4018,
          70
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_4018Col_SuperCactuar.bytecode.json: ThinkInner @0-986",
        "BP_BtlUnitAI_4018Col_SuperCactuar.bytecode.json: ExecuteInner @0-1011",
        "BP_BtlUnitAI_4018Col_SuperCactuar.bytecode.json: ExecuteBeginCounterInner @0-831",
        "boss-ai-defaults.json: BP_BtlUnitAI_4018Col_SuperCactuar"
      ]
    },
    "420": {
      "variants": [
        [
          "Gelidus",
          420,
          43
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_420Hyojin ThinkInner5-715; ターン１,ターン２,ターン３,大技; CDO period4 HP0.6 specialWeight1.0",
        "Research note: The final-stage random weight is 1.0, so that apparent random branch always selects the same attack when reached."
      ]
    },
    "596": {
      "variants": [
        [
          "Gilgamesh",
          596,
          11
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_596Gilgamesh1.bytecode.json: ThinkInner @0-254",
        "BP_BtlUnitAI_596Gilgamesh1.bytecode.json: ExecuteRecieveDamageInner @0-900",
        "BP_BtlUnitAI_596Gilgamesh1.bytecode.json: ExecuteInner @0-278",
        "BP_BtlUnitAI_596Gilgamesh1.bytecode.json: ExecuteSkillActionEndInner @0-297",
        "BP_BtlUnitAI_596Gilgamesh1.bytecode.json: レインライブライベント @0-542",
        "BP_BtlUnitAI_596Gilgamesh1.bytecode.json: ラスウェルライブライベント @0-542",
        "BP_BtlUnitAI_596Gilgamesh1.bytecode.json: ぬすむイベント @0-608",
        "boss-ai-defaults.json: BP_BtlUnitAI_596Gilgamesh1"
      ]
    },
    "597": {
      "variants": [
        [
          "Gilgamesh",
          597,
          40
        ]
      ],
      "sources": [
        "ThinkInner 42–532; CDO ターン毎=2",
        "ExecuteRecieveDamageInner 49–436",
        "ぜになげイベント 101–347; サボテンダーイベント 197–613; トンベリイベント 101–347; ボムイベント 101–347"
      ]
    },
    "598": {
      "variants": [
        [
          "Gilgamesh",
          598,
          45
        ]
      ],
      "sources": [
        "ThinkInner 37–329; CDO ターン毎=2",
        "ExecuteRecieveDamageInner 54–572; ExecuteInner 297–392",
        "エクスカリパーイベント 149–557; みだれうちイベント 293–1126; 土下座イベント 245–992"
      ]
    },
    "2033": {
      "variants": [
        [
          "Gogmagog",
          2033,
          34
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2033Gigas.bytecode.json: ThinkInner @5-875",
        "BP_BtlUnitAI_2033Gigas.bytecode.json: 攻撃パターン3 @0-218",
        "boss-ai-defaults.json: BP_BtlUnitAI_2033Gigas"
      ]
    },
    "406": {
      "variants": [
        [
          "Guardian",
          406,
          25
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_406Guardian ThinkInner10-230; ExecuteInner0-738; ExexuteActionResetInner0; CDO HP0.5 Break0.5 chargeMax2",
        "Research note: Charging is checked at execution, so it depends on the remaining Break gauge at that moment."
      ]
    },
    "159": {
      "variants": [
        [
          "Hell’s Rider",
          159,
          6
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_159HellsHarley.bytecode.json: ThinkInner @5-603",
        "boss-ai-defaults.json: BP_BtlUnitAI_159HellsHarley"
      ]
    },
    "4003": {
      "variants": [
        [
          "Hexadragon",
          4003,
          41
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_4003Col_MeltDragon.bytecode.json: ThinkInner @0-501",
        "BP_BtlUnitAI_4003Col_MeltDragon.bytecode.json: ExecuteBeginCounterInner @0-1168",
        "BP_BtlUnitAI_4003Col_MeltDragon.bytecode.json: ExecuteSkillActionEndInner @0-285",
        "BP_BtlUnitAI_4003Col_MeltDragon.bytecode.json: 暴走化終了 @0-483",
        "BP_BtlUnitAI_4003Col_MeltDragon.bytecode.json: 沈静化判断 @0-678",
        "boss-ai-defaults.json: BP_BtlUnitAI_4003Col_MeltDragon",
        "Native damage-dispatch review: ai-damage-dispatch-audit.md. ReceiveDamage processes a target damage array before invoking the Blueprint once. Raw hits do not each imply a separate AI reaction; exact array grouping and BeginCounter frequency remain bounded uncertainties."
      ]
    },
    "4015": {
      "variants": [
        [
          "Hidon",
          4015,
          58
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_4015Col_Hidon.bytecode.json: ThinkInner @0-1824",
        "boss-ai-defaults.json: BP_BtlUnitAI_4015Col_Hidon"
      ]
    },
    "4020": {
      "variants": [
        [
          "Holy Dragon",
          4020,
          80
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_4020Col_HolyDra.bytecode.json: ThinkInner @0-1656",
        "BP_BtlUnitAI_4020Col_HolyDra.bytecode.json: 基本攻撃パターン @0-206",
        "BP_BtlUnitAI_4020Col_HolyDra.bytecode.json: ExecuteInner @0-713",
        "BP_BtlUnitAI_4020Col_HolyDra.bytecode.json: ExecuteBeginCounterInner @0-503",
        "BP_BtlUnitAI_4020Col_HolyDra.bytecode.json: ExecuteBreakRecoveryInner @0-313",
        "BP_BtlUnitAI_4020Col_HolyDra.bytecode.json: カウント表示 @0-2076",
        "ai-native-level-filter-full.txt: GetUnitFromLevel 0x144f528e0, divisible comparison at 0x144f52a04",
        "boss-ai-defaults.json: BP_BtlUnitAI_4020Col_HolyDra"
      ]
    },
    "2050": {
      "variants": [
        [
          "Humbaba",
          2050,
          55
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2050Couerl.bytecode.json: ThinkInner @0-1114",
        "BP_BtlUnitAI_2050Couerl.bytecode.json: 1ターン目 @0-191",
        "BP_BtlUnitAI_2050Couerl.bytecode.json: ExecuteInner @0-478",
        "boss-ai-defaults.json: BP_BtlUnitAI_2050Couerl"
      ]
    },
    "452": {
      "variants": [
        [
          "Ifrit",
          452,
          33
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_452Ifrit.bytecode.json: ThinkInner @0-1548",
        "BP_BtlUnitAI_452Ifrit.bytecode.json: ExecuteInner @0-448",
        "BP_BtlUnitAI_452Ifrit.bytecode.json: ExecuteRecieveDamageInner @0-1709",
        "BP_BtlUnitAI_452Ifrit.bytecode.json: ExecuteSkillActionEndInner @0-924",
        "BP_BtlUnitAI_452Ifrit.bytecode.json: HP60以下の火系 @0-381",
        "BP_BtlUnitAI_452Ifrit.bytecode.json: ＨＰ判定で技段階変化 @0-277",
        "BP_BtlUnitAI_452Ifrit.bytecode.json: 冷静移行 @0-110",
        "boss-ai-defaults.json: BP_BtlUnitAI_452Ifrit",
        "Native damage-dispatch review: ai-damage-dispatch-audit.md. ReceiveDamage processes a target damage array before invoking the Blueprint once. Raw hits do not each imply a separate AI reaction; exact array grouping and BeginCounter frequency remain bounded uncertainties.",
        "Editorial proposal based on the existing profile's per-own-action and per-qualifying-drop baseline resets. Root should retain its validated event-cadence wording if the after-action execution timing differs; no new per-hit or counter multiplicity claim is intended."
      ]
    },
    "413": {
      "variants": [
        [
          "Ignis",
          413,
          27
        ],
        [
          "Ignis",
          2064,
          47
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_413Gouka ThinkInner offsets 0-429, 434-973",
        "BP_BtlUnitAI_413Gouka ExecuteInner offsets 10-350",
        "BP_BtlUnitAI_413Gouka ExecuteRecieveDamageInner offsets 5-330, 561-968",
        "BP_BtlUnitAI_413Gouka 怒り解除 offsets 0-272",
        "CDO own fields1=3,3=14,6=4; ignis-cdo-defaults.txt",
        "BP_BtlUnitAI SetScheduledSkillWithRandom offsets0-37; SetSkillAndTargetWithScheduledSkill offsets0-75",
        "Research note: Randomness applies to the two named pools, not the entire move list. The fixed attacks remain usable despite stored weight 0.",
        "Research note: Normal execution calls the shared random-target helper; no lowest-HP or highest-damage target preference appears in this AI.",
        "Research note: Rage counts damage checks, without checking attack type, attacker identity, or damage amount. The per-hit behavior of multi-hit skills is not established by this check.",
        "Research note: Breaking the boss before Rage is active does not clear accumulated rage in this handler. Ending Rage does not reset the action counter.",
        "Native damage-dispatch review: ai-damage-dispatch-audit.md. ReceiveDamage processes a target damage array before invoking the Blueprint once. Raw hits do not each imply a separate AI reaction; exact array grouping and BeginCounter frequency remain bounded uncertainties."
      ]
    },
    "2010": {
      "variants": [
        [
          "Ignis",
          2010,
          27
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2010Gouka_E1.bytecode.json: ThinkInner @0-106",
        "BP_BtlUnitAI_2010Gouka_E1.bytecode.json: ExecuteInner @5-418",
        "boss-ai-defaults.json: BP_BtlUnitAI_2010Gouka_E1"
      ]
    },
    "2011": {
      "variants": [
        [
          "Ignis",
          2011,
          27
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2011Gouka_E2.bytecode.json: ThinkInner @0-344",
        "boss-ai-defaults.json: BP_BtlUnitAI_2011Gouka_E2"
      ]
    },
    "436": {
      "variants": [
        [
          "Intangir",
          436,
          52
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_436SleepingLion ThinkInner5-1593; ExecuteInner5-459; ExecuteBeginCounterInner0-451; 攻撃パターン3-4; CDO period6 HP0.5",
        "Research note: The opening sleep action replaces the ordinary first-cycle pool-0 slot. Sleep status and an internal sleep counter gate the counter; merely using any attack against this boss does not always trigger it.",
        "Research note: The first attack of the fight is {{skill:1:1}}; on later repeats, that place in the pattern uses {{pool:0}}."
      ]
    },
    "2041": {
      "variants": [
        [
          "Iron Giant",
          2041,
          34
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2041IronGiant.bytecode.json: ThinkInner @5-981",
        "BP_BtlUnitAI_2041IronGiant.bytecode.json: ExecuteInner @5-1003",
        "BP_BtlUnitAI_2041IronGiant.bytecode.json: リフレク判定 @0-76",
        "BP_BtlUnitAI_2041IronGiant.bytecode.json: 攻撃パターン3 @0-158",
        "boss-ai-defaults.json: BP_BtlUnitAI_2041IronGiant"
      ]
    },
    "2045": {
      "variants": [
        [
          "Jotunn",
          2045,
          42
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2045IceGigas.bytecode.json: ThinkInner @0-806",
        "BP_BtlUnitAI_2045IceGigas.bytecode.json: HP50 @0-635",
        "BP_BtlUnitAI_2045IceGigas.bytecode.json: ExecuteRecieveDamageInner @0-231",
        "boss-ai-defaults.json: BP_BtlUnitAI_2045IceGigas"
      ]
    },
    "419": {
      "variants": [
        [
          "Lasswell",
          419,
          43
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_419Lasswell ThinkInner0-494; ExecuteRecieveDamageInner25-697; CDO period2 actionCount1 BlowNum4",
        "Research note: The action counter starts at 1 before the first increment, so the fight opens with the first fixed special, not a random draw."
      ]
    },
    "2069": {
      "variants": [
        [
          "Lasswell",
          2069,
          43
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2069_Evt_LassWell.bytecode.json: ThinkInner @0-232",
        "BP_BtlUnitAI_2069_Evt_LassWell.bytecode.json: ExecuteRecieveDamageInner @0-138",
        "boss-ai-defaults.json: BP_BtlUnitAI_2069_Evt_LassWell"
      ]
    },
    "415": {
      "variants": [
        [
          "Lazarov",
          415,
          30
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_415Lazarov ThinkInner5-1047; ExecuteInner5-957; 仲間呼び判定; 攻撃パターン1-4; セリフ728-754; CDO period3 HP0.5",
        "Research note: When selected, {{skillId:230080}} tries a target without ATK down, and {{skillId:230190}} tries one without DEF down. The fourth reinforcement call also removes effects 16025 and 16035 and stages a battle event. The unused local debuff helper references {{skill:1:0}} and {{skill:1:1}}, but the active execution path uses those two literal skill IDs.",
        "Research note: {{skillId:230080}} aims for someone without ATK down; {{skillId:230190}} aims for someone without DEF down."
      ]
    },
    "593": {
      "variants": [
        [
          "Left Hand",
          593,
          55
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_593LeftCoD1.bytecode.json: ThinkInner @0-388",
        "BP_BtlUnitAI_593LeftCoD1.bytecode.json: ExecuteInner @0-291",
        "BP_BtlUnitAI_593LeftCoD1.bytecode.json: 回復行動 @0-222",
        "boss-ai-defaults.json: BP_BtlUnitAI_593LeftCoD1"
      ]
    },
    "459": {
      "variants": [
        [
          "Leviathan",
          459,
          23
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_459Leviathan.bytecode.json: ThinkInner @0-610",
        "BP_BtlUnitAI_459Leviathan.bytecode.json: ExecuteInner @109-968",
        "BP_BtlUnitAI_459Leviathan.bytecode.json: 沈黙モード @0-573",
        "BP_BtlUnitAI_459Leviathan.bytecode.json: 仲間呼び選定 @0-265",
        "BP_BtlUnitAI_459Leviathan.bytecode.json: 攻撃パターン3 @0-347",
        "BP_BtlUnitAI_459Leviathan.bytecode.json: 攻撃パターン4 @0-232",
        "boss-ai-defaults.json: BP_BtlUnitAI_459Leviathan",
        "BP_BtlUnitAI_2015JingiEmy.bytecode.json: CounterTalkInner @20; summoned units 2015/2016/2017/2036/2037/2038 passive 1040 -> effect 1054 KO counter",
        "Editorial only; preserves the existing decoded summon order1:7,1:8,then repeated1:9,1:10,1:11."
      ]
    },
    "439": {
      "variants": [
        [
          "Liquid Flame",
          439,
          34
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_439Liquid_Flame ThinkInner5-1061; ExecuteInner15-829; リフレク判定; CDO period4 HP0.6",
        "Research note: The two conditional branches explicitly preserve their chosen targets."
      ]
    },
    "440": {
      "variants": [
        [
          "Liquid Thunder",
          440,
          13
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_440Liquid_Thunder ThinkInner5-880; ExecuteInner15-338; ExexuteActionResetInner0; 攻撃パターン3-4; CDO period3 HP0.6 chance0.4",
        "Research note: The first low-HP decision restarts at action 1. The stored 60% random-chance variable for the third late-phase slot is unused; the actual choice is a MAG-up status check."
      ]
    },
    "417": {
      "variants": [
        [
          "Lux",
          417,
          41
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_417Kouki ThinkInner5-934; スタック処理0-1006; バフ解除123-2042; 攻撃パターン1 20-433; 攻撃パターン2 0-322; 攻撃パターン3 53-696; CDO periods4/3 HP0.6 chance0.65",
        "Research note: The enemy-buff test counts different status types, not characters or total buff stacks. It checks ATK/DEF/MAG/SPR up, Break damage up, Regen, Reraise, Reflect, Haste, Boost, Honing Sense, Light Veil, Decoy, status protection, and the five formation statuses. The stored threshold is 3 but the comparison is strictly greater, so four types trigger it.",
        "Research note: The buff-removal test counts different buff types across the party. Four copies of the same buff count as one type. It checks main-stat boosts, Break damage up, Regen, Reraise, Reflect, Haste, and several special buffs and formations."
      ]
    },
    "404": {
      "variants": [
        [
          "Malboro Menace",
          2052,
          60
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_404G_Morbol ThinkInner5-1047; ExecuteRecieveDamageInner121-1251; ExecuteSkillActionEndInner5-330; ExecuteBreakRecoveryInner0-80; 攻撃パターン3/4; CDO period4 HP0.7 chance0.4 Break0.18",
        "Research note: The actual HP threshold is 70%, despite a variable name mentioning 60%. The two HP branches use the same four normal slots; the low-HP branch adds the Break-gauge reaction."
      ]
    },
    "4019": {
      "variants": [
        [
          "Malboro Queen",
          4019,
          75
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_4019Col_MorbolQueen.bytecode.json: ThinkInner @0-1447",
        "BP_BtlUnitAI_4019Col_MorbolQueen.bytecode.json: くさいいき変化判定 @0-457",
        "BP_BtlUnitAI_4019Col_MorbolQueen.bytecode.json: くさいいき分岐 @0-231",
        "BP_BtlUnitAI_4019Col_MorbolQueen.bytecode.json: くさいいき状態異常数 @0-545",
        "BP_BtlUnitAI_4019Col_MorbolQueen.bytecode.json: すんごくくさいいき状態異常数 @0-545",
        "BP_BtlUnitAI_4019Col_MorbolQueen.bytecode.json: 状態異常耐性判断 @0-545",
        "boss-ai-defaults.json: BP_BtlUnitAI_4019Col_MorbolQueen",
        "BP_BtlUnitAI_4019Col_MorbolQueen ThinkInner @5–42 increments before deciding. Opening selects1:0 without resetting count. At HP>=0.6, remainder0 selects adaptive breath @1049–1063; remainder1/2 pool0 @1078.",
        "First HP<0.6 transition resets 行動数=1 @491 and selects1:1 @525; later first HP<0.3 resets1 @957 and selects1:2 @991. The next action increments to2. Low pattern remainder2/3 pool0 @1369, remainder4 skill1:4 @1389, remainder0 buff condition @1098–1339, remainder1 adaptive breath @1340–1354. Thus the rotation immediately following threshold is [pool0,pool0,1:4,buff-dependent,adaptive], not [adaptive,pool0,pool0,1:4,buff-dependent]."
      ]
    },
    "2046": {
      "variants": [
        [
          "Malboro Varietas",
          2046,
          45
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2046Morbol.bytecode.json: ThinkInner @0-540",
        "BP_BtlUnitAI_2046Morbol.bytecode.json: ExecuteRecieveDamageInner @0-113",
        "BP_BtlUnitAI_2046Morbol.bytecode.json: パターン変化後 @0-648",
        "BP_BtlUnitAI_2046Morbol.bytecode.json: 1ターン目 @0-162",
        "BP_BtlUnitAI_2046Morbol.bytecode.json: 2ターン目 @0-292",
        "BP_BtlUnitAI_2046Morbol.bytecode.json: 3ターン目 @0-292",
        "boss-ai-defaults.json: BP_BtlUnitAI_2046Morbol"
      ]
    },
    "2019": {
      "variants": [
        [
          "Marauder",
          2019,
          15
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2019Ogre.bytecode.json: ThinkInner @0-411",
        "boss-ai-defaults.json: BP_BtlUnitAI_2019Ogre"
      ]
    },
    "2028": {
      "variants": [
        [
          "Mindflayer",
          2028,
          28
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2028MindFlayer.bytecode.json: ThinkInner @5-853",
        "BP_BtlUnitAI_2028MindFlayer.bytecode.json: 攻撃パターン3 @0-180",
        "boss-ai-defaults.json: BP_BtlUnitAI_2028MindFlayer"
      ]
    },
    "447": {
      "variants": [
        [
          "Mom Bomb",
          447,
          14
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_447MotherBomb ThinkInner0-259; ExecuteRecieveDamageInner10-263; ExecuteInner0-158; Initialize/Ubergraph effect19061; CDO period2 HP0.5",
        "Research note: The explosion flag has no reset in this class, so the explosion sequence continues to override execution if the unit remains able to act. The HP check is in the damage check, not the ordinary decision function."
      ]
    },
    "2049": {
      "variants": [
        [
          "Necromonarch",
          2049,
          55
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2049Bloodysaurus.bytecode.json: ThinkInner @0-246",
        "BP_BtlUnitAI_2049Bloodysaurus.bytecode.json: ExecuteInner @0-220",
        "boss-ai-defaults.json: BP_BtlUnitAI_2049Bloodysaurus"
      ]
    },
    "2031": {
      "variants": [
        [
          "No. 999",
          2031,
          32
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2031Subject10.bytecode.json: ThinkInner @0-370",
        "boss-ai-defaults.json: BP_BtlUnitAI_2031Subject10"
      ]
    },
    "671": {
      "variants": [
        [
          "Nunki",
          671,
          50
        ],
        [
          "Nunki",
          921,
          75
        ]
      ],
      "sources": [
        "ThinkInner 132–740; バフデバフ 159–633",
        "その他属性; 火パターン/土パターン/風パターン where present",
        "形態変化HP判定 49–135; 形態変化フロー 34–236",
        "ExecuteSkillActionEndInner 210–505; ExecuteBreakRecoveryInner 0–55",
        "CDO 形態変化HP割合=0.8"
      ]
    },
    "672": {
      "variants": [
        [
          "Nunki",
          672,
          50
        ],
        [
          "Nunki",
          922,
          75
        ]
      ],
      "sources": [
        "ThinkInner 132–740; バフデバフ 159–633",
        "その他属性; 火パターン/土パターン/風パターン where present",
        "形態変化HP判定 49–135; 形態変化フロー 34–236",
        "ExecuteSkillActionEndInner 210–505; ExecuteBreakRecoveryInner 0–55",
        "CDO 形態変化HP割合=0.6"
      ]
    },
    "673": {
      "variants": [
        [
          "Nunki",
          673,
          50
        ],
        [
          "Nunki",
          923,
          75
        ]
      ],
      "sources": [
        "ThinkInner 132–740; バフデバフ 159–633",
        "その他属性; 火パターン/土パターン/風パターン where present",
        "形態変化HP判定 49–135; 形態変化フロー 34–236",
        "ExecuteSkillActionEndInner 210–505; ExecuteBreakRecoveryInner 0–55",
        "CDO 形態変化HP割合=0.4"
      ]
    },
    "674": {
      "variants": [
        [
          "Nunki",
          674,
          50
        ],
        [
          "Nunki",
          924,
          75
        ]
      ],
      "sources": [
        "ThinkInner 132–601; バフデバフ 159–633",
        "形態変化HP判定 49–135; 形態変化フロー 34–236; ExecuteSkillActionEndInner 210–505",
        "CDO ターン毎=4, 形態変化HP割合=0.2"
      ]
    },
    "675": {
      "variants": [
        [
          "Nunki",
          675,
          50
        ],
        [
          "Nunki",
          925,
          75
        ]
      ],
      "sources": [
        "ThinkInner 37–417; CDO ターン毎=4",
        "ExecuteRecieveDamageInner 34–221"
      ]
    },
    "676": {
      "variants": [
        [
          "Nunki",
          676,
          50
        ],
        [
          "Nunki",
          926,
          75
        ]
      ],
      "sources": [
        "ThinkInner 56–1135; CDO HP割合=0.6, 形態変化HP割合=0.2, ターン毎=6",
        "大技パターン 27–171; 攻撃パターン3/4 85–199; 攻撃パターン5 38–223",
        "ExecuteBreakRecoveryInner 34–179; ExecuteSkillActionEndInner 187–286",
        "Native GetUnitFromLevel 0x144f528e0, mode6 0x144f52a04"
      ]
    },
    "677": {
      "variants": [
        [
          "Nunki",
          677,
          50
        ],
        [
          "Nunki",
          927,
          75
        ]
      ],
      "sources": [
        "ThinkInner 37–757; CDO ターン毎=9",
        "攻撃パターン3 85–199; 攻撃パターン4 27–171"
      ]
    },
    "4004": {
      "variants": [
        [
          "Ochu",
          4004,
          43
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_4004Col_Ochu.bytecode.json: ThinkInner @0-743",
        "BP_BtlUnitAI_4004Col_Ochu.bytecode.json: ExecuteInner @0-1317",
        "boss-ai-defaults.json: BP_BtlUnitAI_4004Col_Ochu"
      ]
    },
    "456": {
      "variants": [
        [
          "Odin’s Shadow",
          456,
          45
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_456Odin.bytecode.json: ThinkInner @0-404",
        "BP_BtlUnitAI_456Odin.bytecode.json: ExecuteInner @0-1167",
        "BP_BtlUnitAI_456Odin.bytecode.json: 斬鉄剣使用管理 @0-1144",
        "BP_BtlUnitAI_456Odin.bytecode.json: 行動サイクル制御 @0-1331",
        "BP_BtlUnitAI_456Odin.bytecode.json: ExecuteRecieveDamageInner @0-655",
        "BP_BtlUnitAI_456Odin.bytecode.json: ExecuteSkillActionEndInner @0-758",
        "BP_BtlUnitAI_456Odin.bytecode.json: ExecuteBreakRecoveryInner @0-125",
        "boss-ai-defaults.json: BP_BtlUnitAI_456Odin"
      ]
    },
    "4023": {
      "variants": [
        [
          "Omega",
          4023,
          99
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_4023Col_Omega.bytecode.json: ThinkInner @0-503",
        "BP_BtlUnitAI_4023Col_Omega.bytecode.json: ExecuteInner @0-2946",
        "BP_BtlUnitAI_4023Col_Omega.bytecode.json: 通常攻撃パターン @0-276",
        "BP_BtlUnitAI_4023Col_Omega.bytecode.json: 反撃攻撃パターン @0-606",
        "BP_BtlUnitAI_4023Col_Omega.bytecode.json: 属性攻撃カウント @0-1335",
        "BP_BtlUnitAI_4023Col_Omega.bytecode.json: ExecuteBeginCounterInner @0-672",
        "BP_BtlUnitAI_4023Col_Omega.bytecode.json: カウントリセット @0-181",
        "BP_BtlUnitAI_4023Col_Omega.bytecode.json: ExecuteBreakRecoveryInner @0-302",
        "boss-ai-defaults.json: BP_BtlUnitAI_4023Col_Omega",
        "BP_BtlUnitAI_4023Col_Omega 属性攻撃カウント @0–1335: recognized elements1..8 are tested in order; no recognized element returns without changing LastHitElementId or SameElementStreak. Same element increments streak0..2 unless 強化下降中 forces0. Different element resets0 unless 強化上昇中 preserves the maximum. Reaching maximum sets the upward lock; dropping from announced maximum sets the downward lock. ThinkInner @0–11 clears both locks before its next action.",
        "ExecuteBeginCounterInner @182–653 calls the element tracking then uses streak0/1/2 to select slots1:6/1:7/1:8 in counter stance. Each is assigned to both counter-list entries; this alone does not prove two sequential retaliations. Non-counter stance writes[-1,-1].",
        "ExecuteInner @675–1290: countdown parity alternates 0/1; announcement occupies the first active half, later active halves decrement ChargeCounter. ThinkInner @86–484 only chooses burst when the pair position is zero and ChargeCounter<=0. Therefore a charge reaches zero at the end of an action and the burst is chosen on the next or following action, unless reset by stance/stagger.",
        "Default uninterrupted attack stance: announcement action1; count5->4 at3,4->3 at5,3->2 at7,2->1 at9,1->0 at11; action12 ordinary; burst13. At HP>=70 throughout, subsequent bursts25,37 (12 actions apart). Later three-count cycles in an uninterrupted lower-HP attack stance last8 actions. Do not present these as universal battle-round numbers; stance changes and retained countdown parity during Break recovery alter timing.",
        "ExecuteInner @15–470 computes clamp(trunc(HP*5),0,4): attack bands4/2/0, counter bands3/1. This happens after ThinkInner has chosen the skill from the preceding stored stance. Counter entry @1682 calls カウントリセット and pauses updates; カウントリセット @0–181 sets5 ifHP>=0.7, otherwise3. Initial CDO ChargeCounter is5 independent of HP."
      ]
    },
    "2034": {
      "variants": [
        [
          "Phantom Train True Form",
          2034,
          32
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2034DreamEvil.bytecode.json: ThinkInner @5-884",
        "BP_BtlUnitAI_2034DreamEvil.bytecode.json: 攻撃パターン3 @5-533",
        "BP_BtlUnitAI_2034DreamEvil.bytecode.json: ExecuteInner @20-311",
        "boss-ai-defaults.json: BP_BtlUnitAI_2034DreamEvil"
      ]
    },
    "2032": {
      "variants": [
        [
          "Pyroviper",
          2032,
          37
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2032FireHydra.bytecode.json: ThinkInner @5-949",
        "BP_BtlUnitAI_2032FireHydra.bytecode.json: 攻撃パターン3 @0-218",
        "BP_BtlUnitAI_2032FireHydra.bytecode.json: 攻撃パターン4 @0-160",
        "boss-ai-defaults.json: BP_BtlUnitAI_2032FireHydra"
      ]
    },
    "454": {
      "variants": [
        [
          "Ramuh",
          454,
          20
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_454Ramuh.bytecode.json: ThinkInner @0-393",
        "BP_BtlUnitAI_454Ramuh.bytecode.json: ExecuteInner @0-541",
        "boss-ai-defaults.json: BP_BtlUnitAI_454Ramuh"
      ]
    },
    "594": {
      "variants": [
        [
          "Right Hand",
          594,
          55
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_594RightCoD1.bytecode.json: ThinkInner @0-321",
        "BP_BtlUnitAI_594RightCoD1.bytecode.json: 攻撃パターン3 @0-218",
        "boss-ai-defaults.json: BP_BtlUnitAI_594RightCoD1"
      ]
    },
    "2087": {
      "variants": [
        [
          "Rogue Magitek Weapon",
          2087,
          63
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2087RunawayMachine.bytecode.json: ThinkInner @0-1479",
        "BP_BtlUnitAI_2087RunawayMachine.bytecode.json: ExecuteInner @0-910",
        "BP_BtlUnitAI_2087RunawayMachine.bytecode.json: ExecuteBreakRecoveryInner @0-128",
        "BP_BtlUnitAI_2087RunawayMachine.bytecode.json: 攻撃パターン3 @0-218",
        "boss-ai-defaults.json: BP_BtlUnitAI_2087RunawayMachine"
      ]
    },
    "2026": {
      "variants": [
        [
          "Rukh",
          2026,
          26
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2026Avis.bytecode.json: ThinkInner @5-688",
        "BP_BtlUnitAI_2026Avis.bytecode.json: 攻撃パターン3 @0-218",
        "BP_BtlUnitAI_2026Avis.bytecode.json: 攻撃パターン4 @0-300",
        "BP_BtlUnitAI_2026Avis.bytecode.json: ExecuteInner @10-107",
        "boss-ai-defaults.json: BP_BtlUnitAI_2026Avis"
      ]
    },
    "631": {
      "variants": [
        [
          "Sadalsuud",
          631,
          50
        ],
        [
          "Sadalsuud",
          701,
          50
        ],
        [
          "Sadalsuud",
          702,
          50
        ],
        [
          "Sadalsuud",
          703,
          50
        ],
        [
          "Sadalsuud",
          704,
          50
        ],
        [
          "Sadalsuud",
          871,
          75
        ],
        [
          "Sadalsuud",
          878,
          75
        ],
        [
          "Sadalsuud",
          879,
          75
        ],
        [
          "Sadalsuud",
          880,
          75
        ],
        [
          "Sadalsuud",
          881,
          75
        ]
      ],
      "sources": [
        "ThinkInner 42–1241; CDO HP割合=0.7, 形態変化HP割合=0.5, ターン毎=6",
        "攻撃パターン3 34–231; 攻撃パターン4 0–199",
        "ExecuteInner 118–162; ExecuteSkillActionEndInner 10–243, 436–787",
        "DT_EnemyAIParameter destination-form rows; literal skill IDs preserve element changes"
      ]
    },
    "632": {
      "variants": [
        [
          "Sadalsuud",
          632,
          50
        ],
        [
          "Sadalsuud",
          705,
          50
        ],
        [
          "Sadalsuud",
          706,
          50
        ],
        [
          "Sadalsuud",
          707,
          50
        ],
        [
          "Sadalsuud",
          708,
          50
        ],
        [
          "Sadalsuud",
          872,
          75
        ],
        [
          "Sadalsuud",
          882,
          75
        ],
        [
          "Sadalsuud",
          883,
          75
        ],
        [
          "Sadalsuud",
          884,
          75
        ],
        [
          "Sadalsuud",
          885,
          75
        ]
      ],
      "sources": [
        "ThinkInner 37–632; 攻撃パターン3 34–231; CDO ターン毎=6, 大技ローテ=1",
        "ExecuteInner 118–249; ExecuteSkillActionEndInner 0–237",
        "ExecuteRecieveDamageInner 57–244",
        "DT_EnemyAIParameter destination-form rows; literal skill IDs preserve element changes"
      ]
    },
    "633": {
      "variants": [
        [
          "Sadalsuud",
          633,
          50
        ],
        [
          "Sadalsuud",
          709,
          50
        ],
        [
          "Sadalsuud",
          710,
          50
        ],
        [
          "Sadalsuud",
          711,
          50
        ],
        [
          "Sadalsuud",
          712,
          50
        ],
        [
          "Sadalsuud",
          873,
          75
        ],
        [
          "Sadalsuud",
          886,
          75
        ],
        [
          "Sadalsuud",
          887,
          75
        ],
        [
          "Sadalsuud",
          888,
          75
        ],
        [
          "Sadalsuud",
          889,
          75
        ]
      ],
      "sources": [
        "ThinkInner 56–1242; CDO ターン毎=6",
        "攻撃パターン3 0–199; 攻撃パターン4 27–171; 攻撃パターン5 0–199",
        "ExecuteInner 109–688; ExecuteSkillActionEndInner 109–485",
        "DT_EnemyAIParameter destination-form rows; literal skill IDs preserve element changes",
        "BP_BtlUnitAI_634/635/636/637 ExecuteRecieveDamageInner 34–284; ExecuteSkillActionEndInner 215 sets barrier after wing KO"
      ]
    },
    "2044": {
      "variants": [
        [
          "Salome",
          2044,
          39
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2044Media.bytecode.json: ThinkInner @5-812",
        "BP_BtlUnitAI_2044Media.bytecode.json: ExecuteInner @5-118",
        "boss-ai-defaults.json: BP_BtlUnitAI_2044Media"
      ]
    },
    "595": {
      "variants": [
        [
          "Sephiroth",
          595,
          45
        ],
        [
          "Sephiroth",
          2505,
          45
        ],
        [
          "Sephiroth",
          2510,
          45
        ],
        [
          "Sephiroth",
          2511,
          45
        ],
        [
          "Sephiroth",
          2512,
          45
        ],
        [
          "Sephiroth",
          2513,
          45
        ],
        [
          "Sephiroth",
          2514,
          45
        ],
        [
          "Sephiroth",
          2515,
          45
        ],
        [
          "Sephiroth",
          2516,
          45
        ],
        [
          "Sephiroth",
          2517,
          45
        ],
        [
          "Sephiroth",
          2518,
          45
        ],
        [
          "Sephiroth",
          2520,
          45
        ],
        [
          "Sephiroth",
          2521,
          45
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_595Sephiroth Phase1Think0-1103; Phase1Execute0-492; Phase2Think0-1865; Phase2Execute0-2487; Phase3Think0-966; Phase3Execute0-37; ExecuteInner20-618",
        "BP_BtlUnitAI_595Sephiroth DecisionElementMode20-1082; ExecuteBeginCounterInner0-865; ExecuteRecieveDamageInner10-562; ExecuteBreakRecoveryInner0-335; ExecuteSkillActionEndInner0-492; GetBufStatusCount92-2612",
        "CDO PhaseNo1 thresholds0.801/0.201 ActionsInTurn2 TurnsInPhase3 MeteorCountDown10; live form parameter rows595/2505/2510-2518/2520/2521 resolved to literal skill IDs",
        "Research note: The exact HP thresholds in the class defaults are 80.1% and 20.1%. Phase changes are checked at execution, so they can replace a move selected earlier.",
        "Research note: Infusion selection balances usage counts across Fire, Ice, Lightning, and Wind. It is random among tied candidates through a pairwise selection process, rather than a fixed elemental order.",
        "Research note: The four-buff test is per character and counts different listed statuses: ATK/DEF/MAG/SPR up, Break damage up, Regen, Reflect, Haste, Honing Sense, Light Veil, Decoy, Grand Magic, Mind Focus, Vital Point Attack, Hate Target, Swift, Sage Eye, and the six formation/tactics statuses checked by this AI.",
        "Research note: The final countdown begins at 10 internally and is reduced by the transition action, leaving the nine listed actions before repeated Divine Proclamation. The same skill is assigned to two counter-list entries. That assignment alone does not establish whether they cause two sequential retaliations.",
        "HEAT party-survival test proven by ai-native-party-list-alive-proof.txt: native list0x144fb26f0 aliveOnly flag at0x144fb27a7, IsDead virtual+0x2d0 excludes dead only when true; registration IsDead file0x8876af0 wrapper0x144ec1640."
      ]
    },
    "471": {
      "variants": [
        [
          "Shaula",
          471,
          50
        ],
        [
          "Shaula",
          811,
          75
        ]
      ],
      "sources": [
        "ThinkInner 37–353; ExecuteInner 29–1293",
        "物理モード 27–1236; 魔法モード 27–1236",
        "ExecuteRecieveDamageInner 328–692; ExecuteBreakRecoveryInner 0–499"
      ]
    },
    "472": {
      "variants": [
        [
          "Shaula",
          472,
          50
        ],
        [
          "Shaula",
          812,
          75
        ]
      ],
      "sources": [
        "ThinkInner 162–537; ExecuteInner 29–1148",
        "物理モード 27–822; 魔法モード 27–822; 物理リスト/魔法リスト 58–306",
        "物理モード移行処理/魔法モード移行処理 27–1468",
        "ExecuteRecieveDamageInner 91–490; ExecuteBreakRecoveryInner 0–349"
      ]
    },
    "641": {
      "variants": [
        [
          "Sheratan",
          641,
          50
        ],
        [
          "Sheratan",
          891,
          75
        ]
      ],
      "sources": [
        "ThinkInner 42–1723; CDO ターン毎=8, HP割合=0.5",
        "攻撃パターン3 0–199; 攻撃パターン4 0–199; 攻撃パターン5 0–161",
        "ExecuteRecieveDamageInner 34–221"
      ]
    },
    "642": {
      "variants": [
        [
          "Sheratan",
          642,
          50
        ],
        [
          "Sheratan",
          892,
          75
        ]
      ],
      "sources": [
        "ThinkInner 51–1189; CDO ターン毎=8, パッシブ最大数=5",
        "ExecuteInner 119–1449; ExecuteSkillActionEndInner 34–657",
        "捕食判定 0–541; 仲間呼び判定 38–267; 攻撃パターン3 0–199"
      ]
    },
    "4022": {
      "variants": [
        [
          "Shinryu",
          4022,
          95
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_4022Col_Shinryu.bytecode.json: ExecuteOnBeginBattleInner @0",
        "BP_BtlUnitAI_4022Col_Shinryu.bytecode.json: ExecuteUbergraph_BP_BtlUnitAI_4022Col_Shinryu @10-97",
        "BP_BtlUnitAI_4022Col_Shinryu.bytecode.json: ThinkInner @0-1475",
        "BP_BtlUnitAI_4022Col_Shinryu.bytecode.json: デバフ攻撃パターン @0-543",
        "BP_BtlUnitAI_4022Col_Shinryu.bytecode.json: ブレス攻撃パターン_1 @0-191",
        "BP_BtlUnitAI_4022Col_Shinryu.bytecode.json: ブレス攻撃パターン_2 @0-253",
        "BP_BtlUnitAI_4022Col_Shinryu.bytecode.json: ブレス攻撃パターン_3 @0-253",
        "BP_BtlUnitAI_4022Col_Shinryu.bytecode.json: ExecuteBeginCounterInner @0-791",
        "BP_BtlUnitAI_4022Col_Shinryu.bytecode.json: ExecuteBreakRecoveryInner @0-87",
        "ai-native-level-filter-full.txt: GetUnitFromLevel 0x144f528e0, divisible comparison at 0x144f52a04",
        "boss-ai-defaults.json: BP_BtlUnitAI_4022Col_Shinryu"
      ]
    },
    "453": {
      "variants": [
        [
          "Shiva",
          453,
          35
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_453Shiva.bytecode.json: ThinkInner @0-804",
        "BP_BtlUnitAI_453Shiva.bytecode.json: 成功回数で行動変化 @0-1752",
        "BP_BtlUnitAI_453Shiva.bytecode.json: 召喚技 @0-288",
        "BP_BtlUnitAI_453Shiva.bytecode.json: 召喚ターン @0-86",
        "BP_BtlUnitAI_453Shiva.bytecode.json: ExecuteInner @0-1060",
        "BP_BtlUnitAI_453Shiva.bytecode.json: ExecuteRecieveDamageInner @0-545",
        "BP_BtlUnitAI_453Shiva.bytecode.json: ExecuteSkillActionEndInner @0-265",
        "boss-ai-defaults.json: BP_BtlUnitAI_453Shiva",
        "BP_BtlUnitAI_2088ShivaOfElemental.bytecode.json: ExecuteInner @95-567; ExecuteRecieveDamageInner @63-326",
        "BP_BtlUnitAI_453Shiva: ThinkInner increments 行動数 at 0–37; opening selects 召喚技; ordinary later actions call 成功回数で行動変化. Combo actions instead call it exactly once in ExecuteInner before building their bonus-plus-normal queue (80–339, 443–514). Thus the summon wait updates once per own action, not once per three-action rotation or per individual queued bonus skill.",
        "成功回数で行動変化 @0–615: only when GetUnitNum(1,true)==1, HP>=0.7 increments 待機回数 while <2; 0.4<=HP<0.7 increments while <1; otherwise marks summon ready. It still proceeds to the normal pattern on the incrementing action, so the ready action is the third/second/first lone action respectively. The action remainder 1 calls 召喚ターン. Summoning resets wait to zero; HP changes can shorten the wait.",
        "召喚ターン @0–86: ready clears and resets wait, then calls 召喚技; otherwise SetScheduledSkillWithRandom(2) uses the second list by native accessor semantics. 召喚技 @0–288: >=0.7 slot1:6; else >=0.4 slot1:7; else slot1:8.",
        "Timing examples with the default opening: if all spirits disappear before Shiva's second action at >=70% HP, actions 2 and 3 wait, and action 4 summons. If they disappear before action 3, actions 3 and 4 wait, action 5 marks ready, and action 7 summons. These are own AI actions, not universal battle rounds.",
        "wiki.json skills 502280/502290/502300 explicitly describe summoning two/three/four Shiva Elementals. Their Summon Group effects 51019/51020/51021 point to groups 9135/9136/9137. These map to Shiva slots1:6/1:7/1:8.",
        "BP_BtlUnitAI_2088ShivaOfElemental: ExecuteInner @95–567 sets the self-destruct marker and increments shared0 and shared1 when the self-destruct action executes. ExecuteRecieveDamageInner @63–326 increments shared2 on death without that marker. Shiva snapshots cumulative shared0 into shared2 on a summon, so shared0-shared2<0 means more defeated than self-destructed in the latest wave."
      ]
    },
    "2020": {
      "variants": [
        [
          "Shoggoth",
          2020,
          25
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2020Eyemoeba.bytecode.json: ThinkInner @0-472",
        "BP_BtlUnitAI_2020Eyemoeba.bytecode.json: 攻撃パターン3 @0-218",
        "boss-ai-defaults.json: BP_BtlUnitAI_2020Eyemoeba"
      ]
    },
    "451": {
      "variants": [
        [
          "Siren",
          451,
          11
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_451Siren.bytecode.json: ThinkInner @0-1046",
        "BP_BtlUnitAI_451Siren.bytecode.json: 攻撃パターン3 @0-191",
        "BP_BtlUnitAI_451Siren.bytecode.json: 攻撃パターン4 @0-57",
        "BP_BtlUnitAI_451Siren.bytecode.json: 誘惑判定 @0-342",
        "BP_BtlUnitAI_451Siren.bytecode.json: ExecuteInner @15-209",
        "boss-ai-defaults.json: BP_BtlUnitAI_451Siren",
        "BP_BtlUnitAI_451Siren ThinkInner @0–1046: own count increments first. First HP<0.6 transition selects1:4 and resets count0. Later low-HP decisions call 誘惑判定 whenever count>=3; true selects1:4 and resets0, false follows remainder1 pool1/remainder2 pool0/remainder0 slot1:5. Thus exactly two ordinary AI actions intervene, with every later action eligible.",
        "誘惑判定 @0–342: with persistent p initially0.4, the first Bernoulli(p) sets p=0.4 on true, p+=0.2 on false; an independent Bernoulli(updated p) decides the attack. Effective q(p)=p*0.4+(1-p)*min(p+0.2,1). Reachable nominal p=0.4/0.6/0.8/1 yield q=0.52/0.56/0.52/0.40. Ordinary floating-point differences are rounded in public prose. p is not reset by actually using Temptation.",
        "boss-ai-defaults.json BP_BtlUnitAI_451Siren: HP threshold0.6, period3, 攻撃3確率0.7, 誘惑確率0.4. The unused 攻撃パターン4 probability is not the active Temptation probability."
      ]
    },
    "305": {
      "variants": [
        [
          "Slagworm",
          305,
          33
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_305SlagCrawler ThinkInner10-643; ExecuteInner25-970; ExecuteRecieveDamageInner0-384; ExecuteSkillActionEndInner10-352; ニコル以外対象判定10-916; 対象判定; カウンタリセット; CDO period3 grace2",
        "Capture eligibility uses absolute player-side list1 and excludes unit1005 (Nichol) and native eRace::Beast value15.",
        "Research note: The swallowed-target timeout counts its own later executions, not global battle rounds. Release resets the two-action grace interval; the ordinary attack-cycle counter continues."
      ]
    },
    "423": {
      "variants": [
        [
          "Sol",
          423,
          52
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_423Sol ThinkInner5-2147; リセットオーラ123-2042; CDO period4 initialCounter1 HP0.6 buffBorder3",
        "Research note: The dispel check counts different buff types, not total stacks or buffed characters. It checks ATK/DEF/MAG/SPR up, Break damage up, Regen, Reraise, Reflect, Haste, Boost, Honing Sense, Light Veil, Decoy, status protection, and five formation statuses. The 60% random-choice helper and separate alternating-attack helper exist but are not called by this decision flow.",
        "Research note: The buff-removal test counts different buff types across the party, including main-stat boosts, Break damage up, Regen, Reraise, Reflect, Haste, and several special buffs and formations. Four copies of one buff count as one type."
      ]
    },
    "2068": {
      "variants": [
        [
          "Sol",
          2068,
          55
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2068Evt_Sol.bytecode.json: ThinkInner @0-83",
        "BP_BtlUnitAI_2068Evt_Sol.bytecode.json: ExecuteInner @0-279",
        "BP_BtlUnitAI_2068Evt_Sol.bytecode.json: ExecuteRecieveDamageInner @0-246",
        "BP_BtlUnitAI_2068Evt_Sol.bytecode.json: Initialize @0",
        "boss-ai-defaults.json: BP_BtlUnitAI_2068Evt_Sol"
      ]
    },
    "2047": {
      "variants": [
        [
          "Tartarosaurus",
          2047,
          50
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2047Tyrannosaurus.bytecode.json: ThinkInner @0-747",
        "boss-ai-defaults.json: BP_BtlUnitAI_2047Tyrannosaurus"
      ]
    },
    "611": {
      "variants": [
        [
          "Tegmine",
          611,
          50
        ],
        [
          "Tegmine",
          851,
          75
        ]
      ],
      "sources": [
        "ThinkInner 128–1318",
        "ExecuteBeginCounterInner 91–343; ExecuteSkillActionEndInner 93–769",
        "ExecuteBreakRecoveryInner 0–64; ExecuteRecieveDamageInner 34–202"
      ]
    },
    "612": {
      "variants": [
        [
          "Tegmine",
          612,
          50
        ],
        [
          "Tegmine",
          852,
          75
        ]
      ],
      "sources": [
        "ThinkInner 62–852; CDO 4ターン毎=4",
        "ExecuteBeginCounterInner 91–563",
        "ExecuteSkillActionEndInner 441–1754",
        "ExecuteRecieveDamageInner 106–354; ExecuteBreakRecoveryInner 68–250"
      ]
    },
    "613": {
      "variants": [
        [
          "Tegmine",
          613,
          50
        ],
        [
          "Tegmine",
          853,
          75
        ]
      ],
      "sources": [
        "ThinkInner 37–600",
        "ExecuteBeginCounterInner 91–343",
        "ExecuteSkillActionEndInner 55–1999",
        "ExecuteBreakRecoveryInner 0–57"
      ]
    },
    "421": {
      "variants": [
        [
          "Tellus",
          421,
          39
        ],
        [
          "Tellus",
          2066,
          49
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_421Oudo ThinkInner5-1262; ExecuteInner5-743; 構え0-348; ExecuteBreakRecoveryInner0-328; ExecuteRecieveDamageInner62-179; CDO period6 HP0.6",
        "Research note: The attack phase changes strictly below 60%; appended stances are checked at 60% or below. Once the late attack pattern begins it remains selected even if HP rises, while the appended-stance test still checks current HP.",
        "Variant research note: The Chapter 7 initialization identifies unit 2066 and raises the phase threshold to 110%, making the later pattern active immediately. Stance changes also swap effects 16026 and 16036. Break recovery still changes the stance and suppresses a due extra stance on the next execution."
      ]
    },
    "2062": {
      "variants": [
        [
          "Tellus",
          2062,
          39
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2062Evt_Oudo.bytecode.json: ThinkInner @0-1006",
        "BP_BtlUnitAI_2062Evt_Oudo.bytecode.json: ExecuteInner @10-192",
        "BP_BtlUnitAI_2062Evt_Oudo.bytecode.json: ExecuteBreakRecoveryInner @0-153",
        "BP_BtlUnitAI_2062Evt_Oudo.bytecode.json: 攻撃パターン3 @0-191",
        "boss-ai-defaults.json: BP_BtlUnitAI_2062Evt_Oudo"
      ]
    },
    "160": {
      "variants": [
        [
          "Test Rider",
          160,
          40
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_160TrialRide.bytecode.json: ThinkInner @0-1085",
        "BP_BtlUnitAI_160TrialRide.bytecode.json: ExecuteInner @5-837",
        "BP_BtlUnitAI_160TrialRide.bytecode.json: 怒りフラグ設定 @0-46",
        "BP_BtlUnitAI_160TrialRide.bytecode.json: 怒り鎮静判定 @0-301",
        "BP_BtlUnitAI_160TrialRide.bytecode.json: 攻撃パターン3 @0-347",
        "boss-ai-defaults.json: BP_BtlUnitAI_160TrialRide"
      ]
    },
    "2030": {
      "variants": [
        [
          "Test Subject No. 9",
          2030,
          31
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2030subject9.bytecode.json: ThinkInner @0-327",
        "BP_BtlUnitAI_2030subject9.bytecode.json: 攻撃パターン3 @0-218",
        "BP_BtlUnitAI_2030subject9.bytecode.json: ExecuteInner @20-311",
        "boss-ai-defaults.json: BP_BtlUnitAI_2030subject9"
      ]
    },
    "113": {
      "variants": [
        [
          "The Hunger",
          113,
          9
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_113Hangar.bytecode.json: ThinkInner @0-504",
        "BP_BtlUnitAI_113Hangar.bytecode.json: ExecuteInner @0-117",
        "boss-ai-defaults.json: BP_BtlUnitAI_113Hangar"
      ]
    },
    "2004": {
      "variants": [
        [
          "The Hunger v2",
          2004,
          10
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2004HangarZouen.bytecode.json: ThinkInner @0-640",
        "boss-ai-defaults.json: BP_BtlUnitAI_2004HangarZouen"
      ]
    },
    "2029": {
      "variants": [
        [
          "The Hunger v5",
          2029,
          31
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2029Hangar5.bytecode.json: ThinkInner @0-370",
        "BP_BtlUnitAI_2029Hangar5.bytecode.json: ExecuteInner @15-209",
        "boss-ai-defaults.json: BP_BtlUnitAI_2029Hangar5"
      ]
    },
    "690": {
      "variants": [
        [
          "The Keen of Fury",
          690,
          53
        ]
      ],
      "sources": [
        "ThinkInner 37–602; CDO HP割合=0.5, 瀕死HP=0.3, 大技=true",
        "攻撃パターン3/4/5/6",
        "ExecuteRecieveDamageInner 44–313"
      ]
    },
    "457": {
      "variants": [
        [
          "Titan",
          457,
          30
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_457Titan.bytecode.json: ThinkInner @0-711",
        "BP_BtlUnitAI_457Titan.bytecode.json: ExecuteRecieveDamageInner @0-1181",
        "BP_BtlUnitAI_457Titan.bytecode.json: ExecuteInner @0-788",
        "BP_BtlUnitAI_457Titan.bytecode.json: ExecuteSkillActionEndInner @0-437",
        "BP_BtlUnitAI_457Titan.bytecode.json: 3ターン目 @0-378",
        "BP_BtlUnitAI_457Titan.bytecode.json: 圧壊転化 @0-344",
        "boss-ai-defaults.json: BP_BtlUnitAI_457Titan",
        "Editorial proposal for the existing profile's measured-loss resets; actual target effects can be resolved from wiki.json skills255160 and502390 without native inference."
      ]
    },
    "2051": {
      "variants": [
        [
          "Titanoraidos",
          2051,
          60
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2051Brachioraidos.bytecode.json: ThinkInner @0-2961",
        "BP_BtlUnitAI_2051Brachioraidos.bytecode.json: ExecuteInner @0-117",
        "boss-ai-defaults.json: BP_BtlUnitAI_2051Brachioraidos"
      ]
    },
    "408": {
      "variants": [
        [
          "Typhon",
          408,
          35
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_408_typhon ThinkInner0-528; ExecuteInner0-358; ExecuteBreakRecoveryInner0-176; 1人ターンカウント0-153; base 吸い込み対象判定21-702; CDO BlowNum4",
        "Inherited capture eligibility uses absolute player-side list1 and excludes native eRace::Beast value15.",
        "Research note: The solo counter starts advancing after the no-ATK-up branch is first taken, including that action, and then advances on later random attacks. Neither that counter nor its enabling flag is reset by snorting. The five-action spacing uses executions: the snort plus four intervening attacks.",
        "Research note: Once the wait while alone has finished, using Snort does not restart that wait."
      ]
    },
    "592": {
      "variants": [
        [
          "Ultima Weapon",
          592,
          70
        ],
        [
          "Ultima Weapon",
          2089,
          70
        ],
        [
          "Ultima Weapon",
          2090,
          70
        ],
        [
          "Ultima Weapon",
          2091,
          70
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_592UltimaWeapon ThinkInner10-791; ExecuteInner0-939; ExecuteRecieveDamageInner104-644; ExecuteBreakRecoveryInner0-360; ExecuteSkillActionEndInner0-928",
        "BP_BtlUnitAI_592UltimaWeapon モード・インフェルノ0-2615; モード・ケラウノス0-2885; モード・コキュートス0-2827; モード・ネメアー0-3565; スタック系統処理0-712; 連続アスピル186-243; ２連ブリザガ186-243",
        "CDO baseActions2 phase2HP0.7 phase3HP0.3 breakCount1 modeAdvance0.85; parameter rows592/2089/2090/2091 resolved to literal skill IDs",
        "Research note: The active moves come from the current mode’s parameter table. The shared class stores all mode changes, so these descriptions name the actual skills for each form.",
        "Research note: In Cocytus, selecting Faith as the second action of stage 1 does not advance the stage; the opening pair repeats. Selecting Syphon Barrage or Deshellga does advance it.",
        "Research note: Nemea’s dispel check covers ATK/DEF/MAG/SPR up, Break damage up, Regen, Reraise, Reflect, Haste, Honing Sense, and Offensive/Charge/Iron Wall/Breath Recovery formations. Its cleanse check covers Poison, Blind, Paralysis, ATK/DEF/MAG/SPR down, increased Break damage taken, and Tactical Assault.",
        "Research note: The separate generic attack and repeated Deprotega/Deshellga helpers are not called by the active mode decision flow. Final-phase mode choice can select the mode already active."
      ]
    },
    "400": {
      "variants": [
        [
          "Umbra",
          400,
          17
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_400Tokoyami ThinkInner20-213; ExecuteInner14-161; CDO threshold3 skill505010; native ThinkNum increment verified before Blueprint decision",
        "Research note: The condition is decision count at least 3, not every third action. If the scheduled move has not executed, the next qualifying decision selects it again.",
        "Research note: If the special attack is interrupted before it executes, it tries again on its next action."
      ]
    },
    "2067": {
      "variants": [
        [
          "Umbra",
          2067,
          50
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2067Tokoyami2.bytecode.json: ThinkInner @0-1280",
        "BP_BtlUnitAI_2067Tokoyami2.bytecode.json: ExecuteRecieveDamageInner @0-353",
        "BP_BtlUnitAI_2067Tokoyami2.bytecode.json: ExecuteInner @0-128",
        "BP_BtlUnitAI_2067Tokoyami2.bytecode.json: ExecuteSkillActionEndInner @0-112",
        "boss-ai-defaults.json: BP_BtlUnitAI_2067Tokoyami2"
      ]
    },
    "491": {
      "variants": [
        [
          "Vindemiatrix",
          491,
          50
        ],
        [
          "Vindemiatrix",
          831,
          75
        ]
      ],
      "sources": [
        "ThinkInner 132–end; 少女パターン 159–end; 本体パターン1 188–302",
        "少女攻撃パターン 85–199; 剣パターン/弓パターン/斧パターン where present",
        "ExecuteInner 119–380; 形態変化HP判定 49–135; ExecuteSkillActionEndInner 210–505",
        "CDO 形態変化HP割合=0.8"
      ]
    },
    "492": {
      "variants": [
        [
          "Vindemiatrix",
          492,
          50
        ],
        [
          "Vindemiatrix",
          832,
          75
        ]
      ],
      "sources": [
        "ThinkInner 132–end; 少女パターン 159–end; 本体パターン1 188–302",
        "少女攻撃パターン 85–199; 剣パターン/弓パターン/斧パターン where present",
        "ExecuteInner 119–380; 形態変化HP判定 49–135; ExecuteSkillActionEndInner 210–505",
        "CDO 形態変化HP割合=0.6"
      ]
    },
    "493": {
      "variants": [
        [
          "Vindemiatrix",
          493,
          50
        ],
        [
          "Vindemiatrix",
          833,
          75
        ]
      ],
      "sources": [
        "ThinkInner 132–end; 少女パターン 159–end; 本体パターン1 188–302",
        "少女攻撃パターン 85–199; 剣パターン/弓パターン/斧パターン where present",
        "ExecuteInner 119–380; 形態変化HP判定 49–135; ExecuteSkillActionEndInner 210–505",
        "CDO 形態変化HP割合=0.4"
      ]
    },
    "494": {
      "variants": [
        [
          "Vindemiatrix",
          494,
          50
        ],
        [
          "Vindemiatrix",
          834,
          75
        ]
      ],
      "sources": [
        "ThinkInner 132–end; 少女パターン 159–end; 本体パターン1 188–302",
        "少女攻撃パターン 85–199; 剣パターン/弓パターン/斧パターン where present",
        "ExecuteInner 119–380; 形態変化HP判定 49–135; ExecuteSkillActionEndInner 210–505",
        "CDO 形態変化HP割合=0.2"
      ]
    },
    "495": {
      "variants": [
        [
          "Vindemiatrix",
          495,
          50
        ],
        [
          "Vindemiatrix",
          835,
          75
        ]
      ],
      "sources": [
        "ThinkInner 37–302; 本体パターン1 118–232",
        "ExecuteRecieveDamageInner 34–221; CDO ターン毎=3"
      ]
    },
    "496": {
      "variants": [
        [
          "Vindemiatrix",
          496,
          50
        ],
        [
          "Vindemiatrix",
          836,
          75
        ]
      ],
      "sources": [
        "ThinkInner 56–1516; CDO HP割合=0.5, 詠唱までのカウンタ数=8",
        "ExecuteBeginCounterInner 37; ExecuteSkillActionEndInner 38–276",
        "ExecuteInner 25–831; デバフパターン 49–163; 攻撃パターン3/4 85–199",
        "魔法詠唱判定 14–148; ExecuteBreakRecoveryInner 0–79"
      ]
    },
    "2012": {
      "variants": [
        [
          "Water Dragon",
          2012,
          21
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2012WaterDragon.bytecode.json: ThinkInner @5-844",
        "BP_BtlUnitAI_2012WaterDragon.bytecode.json: 攻撃パターン3 @0-218",
        "BP_BtlUnitAI_2012WaterDragon.bytecode.json: ExecuteInner @5-238",
        "boss-ai-defaults.json: BP_BtlUnitAI_2012WaterDragon"
      ]
    },
    "2013": {
      "variants": [
        [
          "Wave Lopros",
          2013,
          20
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_2013Worm.bytecode.json: ThinkInner @0-860",
        "BP_BtlUnitAI_2013Worm.bytecode.json: ExecuteInner @0-981",
        "BP_BtlUnitAI_2013Worm.bytecode.json: バフ判定 @0-302",
        "boss-ai-defaults.json: BP_BtlUnitAI_2013Worm"
      ]
    },
    "250": {
      "variants": [
        [
          "Yakhanati",
          250,
          40
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_250Yakhanati.bytecode.json: ThinkInner @0-1024",
        "BP_BtlUnitAI_250Yakhanati.bytecode.json: ExecuteInner @0-580",
        "BP_BtlUnitAI_250Yakhanati.bytecode.json: ExecuteRecieveDamageInner @0-227",
        "BP_BtlUnitAI_250Yakhanati.bytecode.json: 初回バリア @0-204",
        "BP_BtlUnitAI_250Yakhanati.bytecode.json: 攻撃パターン3 @0-268",
        "BP_BtlUnitAI_250Yakhanati.bytecode.json: 攻撃パターン4 @0-218",
        "boss-ai-defaults.json: BP_BtlUnitAI_250Yakhanati",
        "Editorial only; preserves the existing decoded eight-action substitution. BP_BtlUnitAI_250Yakhanati 攻撃パターン4 and ThinkInner are the profile's evidence."
      ]
    },
    "4014": {
      "variants": [
        [
          "Zone Eater",
          4014,
          55
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_4014Col_ZoneEater.bytecode.json: ThinkInner @0-1108",
        "BP_BtlUnitAI_4014Col_ZoneEater.bytecode.json: ExecuteInner @0-881",
        "BP_BtlUnitAI_4014Col_ZoneEater.bytecode.json: ExecuteRecieveDamageInner @0-509",
        "BP_BtlUnitAI_4014Col_ZoneEater.bytecode.json: ExecuteBreakRecoveryInner @0-478",
        "BP_BtlUnitAI_4014Col_ZoneEater.bytecode.json: 攻撃パターン3 @0-191",
        "BP_BtlUnitAI_4014Col_ZoneEater.bytecode.json: 攻撃パターン4 @0-191",
        "BP_BtlUnitAI_4014Col_ZoneEater.bytecode.json: 攻撃パターン5 @0-191",
        "BP_BtlUnitAI_4014Col_ZoneEater.bytecode.json: 対象判定 @0-550; ExecuteSkillActionEndInner @0-162",
        "boss-ai-defaults.json: BP_BtlUnitAI_4014Col_ZoneEater"
      ]
    },
    "15": {
      "variants": [
        [
          "Zuu",
          94,
          26
        ],
        [
          "Chimera",
          126,
          28
        ],
        [
          "Chimera Brain",
          127,
          52
        ],
        [
          "Dhorme Chimera",
          128,
          16
        ],
        [
          "Chaos Dragon",
          203,
          48
        ],
        [
          "Hexadragon",
          204,
          52
        ]
      ],
      "sources": [
        "BP_BtlUnitAI_015Chimera ThinkInner0-418; ExecuteInner0-24",
        "boss-ai-defaults.json: BP_BtlUnitAI_015Chimera period3",
        "The owning action counter increments before ThinkInner; remainder1 chooses random list0, remainder2 direct list1 index0, remainder0 direct list1 index1.",
        "These six variants are not marked as bosses in DT_UnitParameter; they are additional coverage from the Chimera review."
      ]
    }
  }
}