CounterTradeRunResult counterProposeTrade(const rules::GameState &state, rules::PlayerNumber player, const TradeProposalList ¤tTrade, const decision::CounterProposalPreflightInputs &inputs, const decision::CounterProposalPreflightConfig &preflightConfig, const decision::CounterProposalBalanceConfig &balanceConfig, decision::CounterProposalSession &session, CounterTradeRuntimeState &runtime, std::span< const FutureImmunityRecord > immunities) noexcept