XCOM 2
[WotC]LW2 Chosen Perk Pack
LW2 Chosen Perk Pack + A harder War Chosen
I was told it is easy to make those two fully compatible:

Assassin Original AHW:
+Behaviors=(BehaviorName=AssassinEngagedFirstActionSelector, NodeType=Selector, \\ Child[0]=TrySummonIfNotStealthed, \\ Child[1]=PostVanishingWindMoveFlanking, \\ Child[2]=PostDancingShadowsMoveFlanking, \\ Child[3]=ChosenDoIfFlankedAndDidNotMove, \\ Child[4]=TryMoveThenGrenadeWhenIdeal, \\ Child[5]=MaybeTryPartingSilk, \\ Child[6]=NeedsReload, \\ Child[7]=TryAssassinAbilityExpose, \\ Child[8]=TryNullLance, \\ Child[9]=TryDeadlyCadenceOver80, \\ Child[10]=TryDancingShadowsOver80, \\ Child[11]=ShootIfSSCOver80, \\ Child[12]=MaybeTryVanishingWind, \\ Child[13]=ShootIfSSCOver70, \\ Child[14]=ShootIfSSCOver60, \\ Child[15]=ShootIfSSCOver50, \\ Child[16]=ChosenMoveDefensiveIfWoundedAndSafe, \\ Child[17]=ChosenMoveFlankingIfSafe, \\ Child[18]=TryHarborwaveAHW, \\ Child[19]=ChosenShootOrReloadOrOverwatch, \\ Child[20]=HuntEnemyWithCover, \\ Child[21]=SkipMove) ; Last Action, Gun or Grenade or Harborwave if not stealthed. +Behaviors=(BehaviorName=AssassinEngagedLastActionSelector, NodeType=Selector, \\ Child[0]=PostVanishingWindMoveDefensive, \\ Child[1]=PostDancingShadowsMoveDefensive, \\ Child[2]=AssassinBendingReedBehavior, \\ Child[3]=TryVWRevealConditionally, \\ Child[4]=TryAssassinAbilityExpose, \\ Child[5]=TryDeadlyCadenceOver80, \\ Child[6]=TryNullLance, \\ Child[7]=TryDancingShadowsOver80, \\ Child[8]=ShootIfSSCOver80, \\ Child[9]=MaybeTryGrenade, \\ Child[10]=ShootIfSSCOver70, \\ Child[11]=TryAssassinAbilityDeadlyCadence, \\ Child[12]=TryAssassinAbilityDancingShadows, \\ Child[13]=TryHarborwaveAHW, \\ Child[14]=ShootIfSSCOver60, \\ Child[15]=ShootIfSSCOver50, \\ Child[16]=TryVanishingWindWhenNotFlanked, \\ Child[17]=ChosenShootOrReloadOrOverwatch, \\ Child[18]=HuntEnemyWithCover, \\ Child[19]=SkipMove)

change to:
+Behaviors=(BehaviorName=AssassinEngagedFirstActionSelector, NodeType=Selector, \\ Child[0]=TrySummonIfNotStealthed, \\ Child[1]=PostVanishingWindMoveFlanking, \\ Child[2]=PostDancingShadowsMoveFlanking, \\ Child[3]=ChosenDoIfFlankedAndDidNotMove, \\ Child[4]=TryMoveThenGrenadeWhenIdeal, \\ Child[5]=MaybeTryPartingSilk, \\ Child[6]=NeedsReload, \\ Child[7]=TryAssassinAbilityExpose, \\ Child[8]=TryNullLance, \\ Child[9]=TryDeadlyCadenceOver80, \\ Child[10]=TryDancingShadowsOver80, \\ Child[11]=ShootIfSSCOver80, \\ Child[12]=MaybeTryVanishingWind, \\ Child[13]=ShootIfSSCOver70, \\ Child[14]=ShootIfSSCOver60, \\ Child[15]=ShootIfSSCOver50, \\ Child[16]=ChosenMoveDefensiveIfWoundedAndSafe, \\ Child[17]=ChosenMoveFlankingIfSafe, \\ Child[18]=TryLW2WotC_StreetSweeper, \\ Child[19]=TryHarborwaveAHW, \\ Child[20]=ChosenShootOrReloadOrOverwatch, \\ Child[21]=HuntEnemyWithCover, \\ Child[22]=SkipMove) ; Last Action, Gun or Grenade or Harborwave if not stealthed. +Behaviors=(BehaviorName=AssassinEngagedLastActionSelector, NodeType=Selector, \\ Child[0]=PostVanishingWindMoveDefensive, \\ Child[1]=PostDancingShadowsMoveDefensive, \\ Child[2]=AssassinBendingReedBehavior, \\ Child[3]=TryVWRevealConditionally, \\ Child[4]=TryAssassinAbilityExpose, \\ Child[5]=TryDeadlyCadenceOver80, \\ Child[6]=TryNullLance, \\ Child[7]=TryDancingShadowsOver80, \\ Child[8]=ShootIfSSCOver80, \\ Child[9]=MaybeTryGrenade, \\ Child[10]=ShootIfSSCOver70, \\ Child[11]=TryAssassinAbilityDeadlyCadence, \\ Child[12]=TryAssassinAbilityDancingShadows, \\ Child[13]=TryLW2WotC_StreetSweeper, \\ Child[14]=TryHarborwaveAHW, \\ Child[15]=ShootIfSSCOver60, \\ Child[16]=ShootIfSSCOver50, \\ Child[17]=TryVanishingWindWhenNotFlanked, \\ Child[18]=ChosenShootOrReloadOrOverwatch, \\ Child[19]=HuntEnemyWithCover, \\ Child[20]=SkipMove)

Hunter Original
+Behaviors=(BehaviorName=ChosenHunterEngagedFirstActionSelector, NodeType=Selector, \\ Child[0]=TryTrackingShotIfFirstAction, \\ Child[1]=TryGrappleTowardDazed, \\ Child[2]=TryChosenSummon, \\ Child[3]=ChosenDoIfFlankedAndDidNotMove, \\ Child[4]=TryMoveThenGrenadeWhenIdeal, \\ Child[5]=TryGrappleForOffense, \\ Child[6]=NeedsReload, \\ Child[7]=TryHunterAbilityLethalTempoSSCOver60, \\ Child[8]=TryHunterAbilityShowdown, \\ Child[9]=TryHunterAbilityHeartseeker, \\ Child[10]=TryHunterAbilitySadismSSCOver80, \\ Child[11]=TryLethalDoseBloodied, \\ Child[12]=TryGrenadeAny, \\ Child[13]=ChosenMoveDefensiveIfWoundedAndSafe, \\ Child[14]=ChosenMoveFlankingIfSafe, \\ Child[15]=ChosenShootOrReloadOrOverwatch, \\ Child[16]=TryQuickDraw, \\ Child[17]=HuntEnemyWithCover, \\ Child[18]=SkipMove) +Behaviors=(BehaviorName=ChosenHunterEngagedLastActionSelector, NodeType=Selector, \\ Child[0]=TryHunterAbilityLethalTempo, \\ Child[1]=TryHunterAbilityHeartseeker, \\ Child[2]=TryHunterAbilityShowdown, \\ Child[3]=TryHunterAbilitySadismSSCOver80, \\ Child[4]=ShootIfSSCOver80, \\ Child[5]=ShootIfSSCOver70, \\ Child[6]=TryHunterAbilitySadism, \\ Child[7]=TryLethalDoseBloodied, \\ Child[8]=ShootIfSSCOver60, \\ Child[9]=TryGrenadeAny, \\ Child[10]=ShootIfSSCOver50, \\ Child[11]=TryLethalDose, \\ Child[12]=TryQuickDraw, \\ Child[13]=ChosenShootOrReloadOrOverwatch, \\ Child[14]=HuntEnemyWithCover, \\ Child[15]=SkipMove)

replace with
+Behaviors=(BehaviorName=ChosenHunterEngagedFirstActionSelector, NodeType=Selector, \\ Child[0]=TryTrackingShotIfFirstAction, \\ Child[1]=TryGrappleTowardDazed, \\ Child[2]=TryChosenSummon, \\ Child[3]=ChosenDoIfFlankedAndDidNotMove, \\ Child[4]=TryMoveThenGrenadeWhenIdeal, \\ Child[5]=TryGrappleForOffense, \\ Child[6]=NeedsReload, \\ Child[7]=TryHunterAbilityLethalTempoSSCOver60, \\ Child[8]=TryHunterAbilityShowdown, \\ Child[9]=TryHunterAbilityHeartseeker, \\ Child[10]=TryHunterAbilitySadismSSCOver80, \\ Child[11]=TryHunterFuse, \\ Child[12]=TryLethalDoseBloodied, \\ Child[13]=TryGrenadeAny, \\ Child[14]=ChosenMoveDefensiveIfWoundedAndSafe, \\ Child[15]=ChosenMoveFlankingIfSafe, \\ Child[16]=ChosenShootOrReloadOrOverwatch, \\ Child[17]=TryQuickDraw, \\ Child[18]=HuntEnemyWithCover, \\ Child[19]=SkipMove) +Behaviors=(BehaviorName=ChosenHunterEngagedLastActionSelector, NodeType=Selector, \\ Child[0]=TryHunterAbilityLethalTempo, \\ Child[1]=TryHunterAbilityHeartseeker, \\ Child[2]=TryHunterAbilityShowdown, \\ Child[3]=TryHunterAbilitySadismSSCOver80, \\ Child[4]=ShootIfSSCOver80, \\ Child[5]=ShootIfSSCOver70, \\ Child[6]=TryHunterAbilitySadism, \\ Child[7]=TryLethalDoseBloodied, \\ Child[8]=TryHunterFuse, \\ Child[9]=ShootIfSSCOver60, \\ Child[10]=TryGrenadeAny, \\ Child[11]=ShootIfSSCOver50, \\ Child[12]=TryLethalDose, \\ Child[13]=TryQuickDraw, \\ Child[14]=ChosenShootOrReloadOrOverwatch, \\ Child[15]=HuntEnemyWithCover, \\ Child[16]=SkipMove)