So, I'm still away but have access to the jsons I emailed myself and am working on an excel sheet to make comparing the variables between roles and global easier.
In addition to the base, Brawler, Sniper and likely Scout dynamic roles can be called on. But I haven't had the time to confirm this. Personally roles might not be active either.
Scout seems to be unused or irrelevant in the code. In BattleTech.AIRoleAssistant.getAbstractRoleTagMultiplier, UnitRole.Brawler and UnitRole.Sniper have tag multiplier applied from their DynamicAIRole constants, but UnitRole.Scout does not. In EvaluateAssignmentForUnit, UnitRole.Scout gets the same value as Unit.IsDead.
Brawler and Sniper do seem to be doing something.