# AIParams across the whole disc
# Regenerate: python3 tools/re-capture/aiparams_census.py
# See docs/re/structures/stage-mission-tables.md

## CONTROL  the six language copies
   GP_MAIN_GAME_D.pak       23 AIParams objects
   GP_MAIN_GAME_E.pak       23 AIParams objects
   GP_MAIN_GAME_F.pak       23 AIParams objects
   GP_MAIN_GAME_I.pak       23 AIParams objects
   GP_MAIN_GAME_J.pak       23 AIParams objects
   GP_MAIN_GAME_S.pak       23 AIParams objects

## The roster
   objects: 23   distinct declared-name sets: 1   roster size: [34]
   declared names with no record in their own object: 0
   profile records total: 782  (= 23 objects x 34)

## Which object is which stage
   StageResource records: 29   carrying EnumerateAIParams: 28
   distinct table names declared: 23   AIParams objects: 23
   names that hash to an object key: 23 / 23  (prefix `stage\`, name_hash is case-insensitive)
   objects left unnamed: 0   declared names with no object: 0
   shared: AIParams_Tutorial.tbl    by 6 -> ['UnitGroup_S18.tbl', 'UnitGroup_S19.tbl', 'UnitGroup_S20.tbl', 'UnitGroup_S21.tbl', 'UnitGroup_S22.tbl', 'UnitGroup_S23.tbl']

## Does `Type` predict the field count?
   Fleet   6 fields  x253
   Squad   6 fields  x46
   Squad  20 fields  x483
   profiles breaking the rule, in full: 2  ['AI_CraftSquadron_Test', 'AI_Test']
   profiles whose (Type, field count) varies between objects: 0 []

## Field census over every profile record
   x782  AutoGuardLength
   x782  CounterLength
   x782  FiringLength
   x782  GuardLength
   x782  MusterLength
   x782  Type
   x483  BootDefManeuverRatio_Aimed
   x483  BootDefManeuverRatio_Fired
   x483  BootDefManeuverRatio_Missiled
   x483  CounterManeuverRatio
   x483  DefManeuverRatio_BarrelRoll
   x483  DefManeuverRatio_BoostAway
   x483  DefManeuverRatio_NoAction
   x483  DefManeuverRatio_SideRoll
   x483  DefManeuverRatio_TurnAttack
   x483  DefManeuverRatio_TurnAway
   x483  ManeuverRatio_Cutoff
   x483  OffManeuverRatio_HoldPosition
   x483  OffManeuverRatio_NoAction
   x483  OffManeuverRatio_Through
