- Offer to everyone or one player; asked in seat order, first accept wins
- Accept / decline / counter; offerer picks among counters or says no deal
- AI: fixed inverted accept test, picks best counter (never counters itself)
- No reply timer or cancel (engine has a single acting seat) — noted in docs
🤖 Generated with [Claude Code](https://claude.com/claude-code)
- Offers can go to the whole table (asked in seat order, empty hands skipped) or one seat.
- The asked seat may accept (trade happens at once), decline, or counter with new terms.
- If nobody accepts and there are counters, the offerer takes one or turns them all down (new TRADE_COUNTERS phase).
- AI: fixes an inverted accept test (it weighed what it gives against what it gets backwards), picks the best counter.
- UI: Everyone option in the offer dialog, Counter… in the reply dialog, a counter-choice dialog.
- Tests and docs updated.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_018njn2eMPAYqAoE49hGRg2X
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
🤖 Generated with Claude Code