# moves

game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.309729
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "8", "suit": "hearts"}, {"rank": "Q", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Priya": [{"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.315742
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 4 for 6 at pos 0
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "8", "suit": "hearts"}, {"rank": "Q", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Priya": [{"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.321821
player_id: cpu_3
player_name: Priya
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "8", "suit": "hearts"}, {"rank": "Q", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.327749
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 6 for 8 at pos 2
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "8", "suit": "hearts"}, {"rank": "Q", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.333823
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "8", "suit": "hearts"}, {"rank": "Q", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Priya": [{"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.346663
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Priya": [{"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.352667
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 3 for Q at pos 4
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Priya": [{"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.359610
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "8", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Priya": [{"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.372097
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "8", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.377901
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 4 for 7 at pos 0
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "8", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.385893
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 7 from discard
visible_opponents_json:
{"Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "8", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.392405
player_id: cpu_0
player_name: River
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped 7 for J at pos 1
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "8", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.398737
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "7", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.404771
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped K for 8 at pos 1
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "7", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.410974
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "7", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.416944
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: swapped 9 for 2 at pos 5
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "7", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.423400
player_id: cpu_3
player_name: Priya
action: take_discard
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "7", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "9", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.429514
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 2 for 6 at pos 2
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "7", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "9", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.435407
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "9", "suit": "diamonds"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.441395
player_id: cpu_0
player_name: River
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 6 for 7 at pos 1
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "9", "suit": "diamonds"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.447187
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "9", "suit": "diamonds"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.453078
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 7 for 7 at pos 3
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "9", "suit": "diamonds"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.459512
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.465979
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 7 for 9 at pos 5
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.472356
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.478978
player_id: cpu_3
player_name: Priya
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped K for 6 at pos 5
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.485066
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.491149
player_id: cpu_0
player_name: River
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 6 for 10 at pos 5
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.497036
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.509132
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.521785
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.528024
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 3 for 5 at pos 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.534149
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.540669
player_id: cpu_0
player_name: River
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 5 for 6 at pos 1
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.547044
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 6 from discard
visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.553662
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 6 for 7 at pos 2
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}], "Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.559509
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 7 from discard
visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 86a55677-9a08-4b65-95dc-caaf7efb8c70
timestamp: 2026-01-25 00:10:07.565716
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 7 for Q at pos 2
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "9", "suit": "clubs"}, {"rank": "J", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.582716
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 4
card_suit: diamonds
decision_reason: took 4 from discard
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "10", "suit": "clubs"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}], "Kenji": [{"rank": "7", "suit": "spades"}, {"rank": "J", "suit": "clubs"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.588531
player_id: cpu_0
player_name: River
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 4 for 6 at pos 0
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "10", "suit": "clubs"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}], "Kenji": [{"rank": "7", "suit": "spades"}, {"rank": "J", "suit": "clubs"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.594630
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: clubs
decision_reason: took 6 from discard
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "4", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}], "Kenji": [{"rank": "7", "suit": "spades"}, {"rank": "J", "suit": "clubs"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.600920
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped 6 for 10 at pos 4
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "4", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}], "Kenji": [{"rank": "7", "suit": "spades"}, {"rank": "J", "suit": "clubs"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.607077
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "4", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}], "Kenji": [{"rank": "7", "suit": "spades"}, {"rank": "J", "suit": "clubs"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.613366
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 2 for 6 at pos 4
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "4", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}], "Kenji": [{"rank": "7", "suit": "spades"}, {"rank": "J", "suit": "clubs"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.620077
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "4", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.626142
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 6 for J at pos 3
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "4", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.632200
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "7", "suit": "spades"}, {"rank": "6", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.644436
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "4", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "7", "suit": "spades"}, {"rank": "6", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.656540
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "4", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}], "Kenji": [{"rank": "7", "suit": "spades"}, {"rank": "6", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.678281
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped K for 7 at pos 2
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}]


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.684866
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.697658
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "4", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.709388
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "4", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}], "Kenji": [{"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.727561
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: swapped 6 for A at pos 0
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}]


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.733853
player_id: cpu_0
player_name: River
action: take_discard
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took A from discard
visible_opponents_json:
{"Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.739884
player_id: cpu_0
player_name: River
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped A for 4 at pos 0
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.746993
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 4 from discard
visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.753359
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 4 for 6 at pos 4
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.759488
player_id: cpu_2
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 6 from discard
visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Kenji": [{"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.765889
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 6 for Q at pos 1
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Kenji": [{"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.772254
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.778721
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped K for 6 at pos 0
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.784856
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.791340
player_id: cpu_0
player_name: River
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 6 for 7 at pos 1
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.798127
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.810469
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.816349
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 5 for 6 at pos 1
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.822498
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.828662
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped A for 6 at pos 3
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.835171
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.847800
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.860898
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.878801
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped 2 for A at pos 3
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}]


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.884506
player_id: cpu_0
player_name: River
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took A from discard
visible_opponents_json:
{"Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.890443
player_id: cpu_0
player_name: River
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped A for 5 at pos 3
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.896844
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 5 from discard
visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.903160
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 5 for 4 at pos 3
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.909895
player_id: cpu_2
player_name: Marcus
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 4 from discard
visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.915775
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 4 for 5 at pos 1
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.924005
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.930055
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 5 for 5 at pos 5
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.936276
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.942043
player_id: cpu_0
player_name: River
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 5 for 6 at pos 1
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.947926
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.954336
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped 6 for 10 at pos 0
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.960331
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.966867
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 3 for 4 at pos 1
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.973282
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.980218
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 4 for 5 at pos 5
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.986975
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.993817
player_id: cpu_0
player_name: River
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: swapped 5 for A at pos 2
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:07.999764
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: A
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took A from discard
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:08.005626
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped A for 3 at pos 5
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:08.011640
player_id: cpu_2
player_name: Marcus
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:08.017481
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped 3 for 4 at pos 5
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:08.023415
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "spades"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:08.029489
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped Q for 8 at pos 1
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "spades"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:08.035529
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "spades"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:08.047875
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "spades"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:08.054415
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "K", "suit": "spades"}
decision_reason: swapped 5 for K at pos 1
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "spades"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:08.060767
player_id: cpu_2
player_name: Marcus
action: take_discard
card_rank: K
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took K from discard
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:08.066660
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped K for 3 at pos 1
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:08.074469
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "spades"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:08.081055
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 3 for Q at pos 1
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "spades"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:08.087549
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "spades"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: 05547575-0c76-4a9a-bc6d-e9faa1133ced
timestamp: 2026-01-25 00:10:08.094305
player_id: cpu_0
player_name: River
action: discard
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: discarded 8
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Marcus": [{"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "9", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "spades"}], "Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "9", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.113183
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "9", "suit": "hearts"}], "River": [{"rank": "4", "suit": "hearts"}, {"rank": "J", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.119448
player_id: cpu_0
player_name: Priya
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped A for Q at pos 5
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "9", "suit": "hearts"}], "River": [{"rank": "4", "suit": "hearts"}, {"rank": "J", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.126074
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Priya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "9", "suit": "hearts"}], "River": [{"rank": "4", "suit": "hearts"}, {"rank": "J", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.132878
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped 3 for A at pos 1
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Priya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "9", "suit": "hearts"}], "River": [{"rank": "4", "suit": "hearts"}, {"rank": "J", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.139212
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took A from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "4", "suit": "hearts"}, {"rank": "J", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.145721
player_id: cpu_2
player_name: Diego
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped A for 9 at pos 5
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "4", "suit": "hearts"}, {"rank": "J", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.152497
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.159068
player_id: cpu_3
player_name: River
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 3 for J at pos 5
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.166132
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.179541
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Priya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.194408
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.200911
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 7 for 4 at pos 4
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.207455
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.213899
player_id: cpu_3
player_name: River
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 4 for 6 at pos 3
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.220246
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "4", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.226771
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 2 for 5 at pos 4
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "4", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.233170
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: took 5 from discard
visible_opponents_json:
{"Priya": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "4", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.239811
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped 5 for 10 at pos 0
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Priya": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "4", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.246700
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "4", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.260766
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.267359
player_id: cpu_3
player_name: River
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped K for 4 at pos 0
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.273768
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Sage": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.280456
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 4 for Q at pos 1
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Sage": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.287778
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.301485
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.307924
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 6 for 6 at pos 2
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.314436
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.320732
player_id: cpu_3
player_name: River
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 6 for 5 at pos 1
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.326925
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Sage": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.333108
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 5 for 4 at pos 3
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Sage": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.339221
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 4 from discard
visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.345605
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 4 for 5 at pos 0
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Diego": [{"rank": "7", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.352492
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.359305
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 5 for 7 at pos 1
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.366109
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.372972
player_id: cpu_3
player_name: River
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped 7 for 4 at pos 4
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.379667
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.385870
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 4 for 5 at pos 3
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.392287
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.399341
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 5 for 10 at pos 5
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.405726
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.418872
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}], "Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.432786
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}], "Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.439433
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 2 for 4 at pos 1
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}], "Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.445758
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.454227
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 4 for 8 at pos 3
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.466359
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.482405
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}], "Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.489221
player_id: cpu_3
player_name: River
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped 7 for 9 at pos 2
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}], "Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.496471
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}], "Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "7", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}]}


game_id: b5ceca03-bf21-447c-8ef9-b351e3f851d1
timestamp: 2026-01-25 00:10:08.507828
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped 8 for 10 at pos 0
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "7", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.526172
player_id: cpu_0
player_name: Kenji
action: take_discard
card_rank: J
card_suit: diamonds
decision_reason: took J from discard
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "9", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.532911
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped J for 6 at pos 2
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "9", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.539462
player_id: cpu_1
player_name: Maya
action: take_discard
card_rank: 6
card_suit: clubs
decision_reason: took 6 from discard
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "8", "suit": "clubs"}, {"rank": "J", "suit": "diamonds"}, {"rank": "J", "suit": "clubs"}], "Diego": [{"rank": "9", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.545862
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 6 for 7 at pos 2
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "8", "suit": "clubs"}, {"rank": "J", "suit": "diamonds"}, {"rank": "J", "suit": "clubs"}], "Diego": [{"rank": "9", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.555906
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 7
card_suit: clubs
decision_reason: took 7 from discard
hand_json:
[{"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "8", "suit": "clubs"}, {"rank": "J", "suit": "diamonds"}, {"rank": "J", "suit": "clubs"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.562253
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped 7 for 9 at pos 0
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "8", "suit": "clubs"}, {"rank": "J", "suit": "diamonds"}, {"rank": "J", "suit": "clubs"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.568675
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "8", "suit": "clubs"}, {"rank": "J", "suit": "diamonds"}, {"rank": "J", "suit": "clubs"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.575001
player_id: cpu_3
player_name: Sage
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped A for 7 at pos 1
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "8", "suit": "clubs"}, {"rank": "J", "suit": "diamonds"}, {"rank": "J", "suit": "clubs"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.581198
player_id: cpu_0
player_name: Kenji
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.591014
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped 7 for J at pos 2
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.597576
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "8", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}, {"rank": "J", "suit": "clubs"}], "Diego": [{"rank": "7", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.604094
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 5 for 6 at pos 2
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "8", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}, {"rank": "J", "suit": "clubs"}], "Diego": [{"rank": "7", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.610439
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "8", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}, {"rank": "J", "suit": "clubs"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.616697
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 6 for 7 at pos 0
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "8", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}, {"rank": "J", "suit": "clubs"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.623129
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "8", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}, {"rank": "J", "suit": "clubs"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.636003
player_id: cpu_0
player_name: Kenji
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.642379
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 6 for J at pos 5
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.648666
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "8", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.661700
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "8", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.668050
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "K", "suit": "diamonds"}
decision_reason: swapped 5 for K at pos 4
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "8", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.674177
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took K from discard
visible_opponents_json:
{"Kenji": [{"rank": "8", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.680504
player_id: cpu_3
player_name: Sage
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: swapped K for 3 at pos 3
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "8", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.686436
player_id: cpu_0
player_name: Kenji
action: take_discard
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.692998
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 3 for 8 at pos 0
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.701209
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.715864
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.722469
player_id: cpu_2
player_name: Diego
action: swap
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped Q for 8 at pos 1
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.729774
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "Q", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.744148
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "Q", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.751381
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped Q for J at pos 3
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "Q", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.757743
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "Q", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "Q", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.764116
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 3 for 5 at pos 2
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "Q", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "Q", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.770251
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "Q", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.776336
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 5 for Q at pos 1
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "Q", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.782393
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "Q", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.788538
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "2", "suit": "spades"}
decision_reason: swapped 5 for 2 at pos 4
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "Q", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.795255
player_id: cpu_0
player_name: Kenji
action: take_discard
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.801159
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 2 for Q at pos 3
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.807335
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.813702
player_id: cpu_1
player_name: Maya
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped K for 3 at pos 2
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.819728
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.826159
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 3 for 6 at pos 0
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.832093
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.840105
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped 6 for 10 at pos 2
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.846389
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.852406
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 6 for 7 at pos 2
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.862450
player_id: cpu_1
player_name: Maya
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.868979
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 7 for 7 at pos 5
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.875119
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.881444
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 7 for 5 at pos 2
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.887232
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.893363
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 5 for 6 at pos 2
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.899480
player_id: cpu_0
player_name: Kenji
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.906042
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 6 for 9 at pos 4
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.914226
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.920484
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 2 for 7 at pos 5
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.927156
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.933712
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 7 for 9 at pos 3
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.940209
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.946494
player_id: cpu_3
player_name: Sage
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped A for 5 at pos 2
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.952630
player_id: cpu_0
player_name: Kenji
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.962483
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 5 for 6 at pos 2
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.968873
player_id: cpu_1
player_name: Maya
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 8222dd1c-8b4a-4984-9c7d-d3634c57c42b
timestamp: 2026-01-25 00:10:08.975432
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 6 for 8 at pos 0
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}], "Diego": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:08.993426
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: A
card_suit: hearts
decision_reason: took A from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "J", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:08.999821
player_id: cpu_0
player_name: Priya
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped A for 9 at pos 4
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "J", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.006245
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}], "River": [{"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.012365
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped J for 5 at pos 3
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}], "River": [{"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.018742
player_id: cpu_2
player_name: River
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}], "Marcus": [{"rank": "J", "suit": "clubs"}, {"rank": "J", "suit": "diamonds"}, {"rank": "Q", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.025141
player_id: cpu_2
player_name: River
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 5 for 7 at pos 0
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}], "Marcus": [{"rank": "J", "suit": "clubs"}, {"rank": "J", "suit": "diamonds"}, {"rank": "Q", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.031649
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}], "Marcus": [{"rank": "J", "suit": "clubs"}, {"rank": "J", "suit": "diamonds"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.044303
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "J", "suit": "clubs"}, {"rank": "J", "suit": "diamonds"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.057027
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.077788
player_id: cpu_2
player_name: River
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 3 for 7 at pos 5
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.084040
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}], "Marcus": [{"rank": "J", "suit": "clubs"}, {"rank": "J", "suit": "diamonds"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.090128
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 3 for Q at pos 2
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}], "Marcus": [{"rank": "J", "suit": "clubs"}, {"rank": "J", "suit": "diamonds"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.096355
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "J", "suit": "clubs"}, {"rank": "J", "suit": "diamonds"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.102464
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "K", "suit": "hearts"}
decision_reason: swapped 4 for K at pos 5
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Marcus": [{"rank": "J", "suit": "clubs"}, {"rank": "J", "suit": "diamonds"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.108317
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took K from discard
visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.114080
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped K for J at pos 0
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.119918
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "J", "suit": "diamonds"}, {"rank": "Q", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.131242
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "J", "suit": "diamonds"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.142761
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "J", "suit": "diamonds"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.149162
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 4 for 8 at pos 2
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "J", "suit": "diamonds"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.155136
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.161031
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped 8 for J at pos 3
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.167049
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "8", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.172933
player_id: cpu_2
player_name: River
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped A for 5 at pos 0
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "8", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.179292
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 5 from discard
visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "8", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.185191
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped 5 for 4 at pos 1
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "8", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.191113
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "8", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.196805
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 4 for 10 at pos 1
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "8", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.202755
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.208744
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped Q for 9 at pos 2
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.214158
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "Q", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.220511
player_id: cpu_2
player_name: River
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped 2 for 3 at pos 5
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "Q", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.226383
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "Q", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "spades"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.232574
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 3 for 5 at pos 1
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "Q", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "spades"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.238466
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "Q", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.244630
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 5 for 6 at pos 3
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "Q", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.251137
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.256695
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 6 for Q at pos 2
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.262572
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}, {"rank": "8", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.274419
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}, {"rank": "8", "suit": "clubs"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "spades"}]}


game_id: 8694e0a0-9e71-4a0e-ba56-40c42d6e47c0
timestamp: 2026-01-25 00:10:09.280331
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 6 for 7 at pos 4
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "8", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "Q", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "J", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.297234
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "8", "suit": "diamonds"}, {"rank": "10", "suit": "hearts"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "River": [{"rank": "9", "suit": "diamonds"}, {"rank": "Q", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.303815
player_id: cpu_0
player_name: Diego
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped K for 9 at pos 3
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "8", "suit": "diamonds"}, {"rank": "10", "suit": "hearts"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "River": [{"rank": "9", "suit": "diamonds"}, {"rank": "Q", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.312444
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "River": [{"rank": "9", "suit": "diamonds"}, {"rank": "Q", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.318530
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: swapped 8 for 2 at pos 5
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "River": [{"rank": "9", "suit": "diamonds"}, {"rank": "Q", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.324631
player_id: cpu_2
player_name: Marcus
action: take_discard
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "8", "suit": "diamonds"}, {"rank": "10", "suit": "hearts"}, {"rank": "8", "suit": "hearts"}], "River": [{"rank": "9", "suit": "diamonds"}, {"rank": "Q", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.330880
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 2 for 4 at pos 3
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "8", "suit": "diamonds"}, {"rank": "10", "suit": "hearts"}, {"rank": "8", "suit": "hearts"}], "River": [{"rank": "9", "suit": "diamonds"}, {"rank": "Q", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.336957
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "8", "suit": "diamonds"}, {"rank": "10", "suit": "hearts"}, {"rank": "8", "suit": "hearts"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.343016
player_id: cpu_3
player_name: River
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 4 for Q at pos 3
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "8", "suit": "diamonds"}, {"rank": "10", "suit": "hearts"}, {"rank": "8", "suit": "hearts"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.349148
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "8", "suit": "diamonds"}, {"rank": "10", "suit": "hearts"}, {"rank": "8", "suit": "hearts"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "River": [{"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.354760
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 8 for 9 at pos 1
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "8", "suit": "diamonds"}, {"rank": "10", "suit": "hearts"}, {"rank": "8", "suit": "hearts"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "River": [{"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.361174
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "8", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "River": [{"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.367286
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 2 for 10 at pos 4
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "8", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "River": [{"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.373338
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "8", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "8", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "8", "suit": "hearts"}], "River": [{"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.386106
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "8", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "8", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "8", "suit": "hearts"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.399062
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "8", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "8", "suit": "hearts"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "River": [{"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.405220
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 6 for 8 at pos 1
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "8", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "8", "suit": "hearts"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "River": [{"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.411131
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "River": [{"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.417414
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 3 for 8 at pos 2
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "River": [{"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.422952
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "8", "suit": "hearts"}], "River": [{"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.428963
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped A for 6 at pos 4
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "8", "suit": "hearts"}], "River": [{"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.435361
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "8", "suit": "hearts"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.441421
player_id: cpu_3
player_name: River
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: swapped 6 for A at pos 1
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "8", "suit": "hearts"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.448260
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took A from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "8", "suit": "hearts"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.454053
player_id: cpu_0
player_name: Diego
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped A for 6 at pos 1
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "8", "suit": "hearts"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.460236
player_id: cpu_1
player_name: Maya
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.466782
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 6 for 8 at pos 5
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.472673
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.484272
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.490329
player_id: cpu_3
player_name: River
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 6 for 9 at pos 4
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.496467
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.502152
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 2 for 5 at pos 2
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.508191
player_id: cpu_1
player_name: Maya
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.514608
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 5 for 6 at pos 5
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Marcus": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.520470
player_id: cpu_2
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "hearts"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.527222
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 6 for 5 at pos 0
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "hearts"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "9", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.534670
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "hearts"}], "Marcus": [{"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.540649
player_id: cpu_3
player_name: River
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 5 for 9 at pos 2
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "hearts"}], "Marcus": [{"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.547078
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "hearts"}], "Marcus": [{"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.552684
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "K", "suit": "hearts"}
decision_reason: swapped 10 for K at pos 0
hand_json:
[{"rank": "10", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "hearts"}], "Marcus": [{"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.558650
player_id: cpu_1
player_name: Maya
action: take_discard
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took K from discard
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "10", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Marcus": [{"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.564598
player_id: cpu_1
player_name: Maya
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped K for 5 at pos 5
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "10", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Marcus": [{"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.570709
player_id: cpu_2
player_name: Marcus
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "10", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.576782
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 5 for 6 at pos 0
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "10", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.582849
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "10", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.588958
player_id: cpu_3
player_name: River
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 6 for 4 at pos 5
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "10", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.595365
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.601915
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped 4 for J at pos 4
hand_json:
[{"rank": "10", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.607978
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "10", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Marcus": [{"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.614351
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: swapped 4 for 3 at pos 3
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "10", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Marcus": [{"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.620441
player_id: cpu_2
player_name: Marcus
action: take_discard
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "10", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.626366
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 3 for 5 at pos 0
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "10", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.632240
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "10", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.638620
player_id: cpu_3
player_name: River
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 5 for 6 at pos 1
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "10", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.645000
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.651182
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 6 for 10 at pos 0
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.657375
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Marcus": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.663318
player_id: cpu_1
player_name: Maya
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped K for 4 at pos 3
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Marcus": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.669974
player_id: cpu_2
player_name: Marcus
action: take_discard
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.676723
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped 4 for A at pos 5
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.682734
player_id: cpu_3
player_name: River
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: took A from discard
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.688605
player_id: cpu_3
player_name: River
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped A for 6 at pos 4
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.694436
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.700262
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 6 for 7 at pos 5
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.708829
player_id: cpu_1
player_name: Maya
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "diamonds"}], "Marcus": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.715306
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped 7 for 3 at pos 1
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "diamonds"}], "Marcus": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.720957
player_id: cpu_2
player_name: Marcus
action: take_discard
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.726699
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped 3 for 4 at pos 5
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "River": [{"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.733123
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "hearts"}]}


game_id: eea755d8-e9a5-44a6-950b-206b0e6f553b
timestamp: 2026-01-25 00:10:09.739156
player_id: cpu_3
player_name: River
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped 4 for 10 at pos 0
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "spades"}, {"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.758485
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "Q", "suit": "hearts"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "10", "suit": "spades"}, {"rank": "Q", "suit": "spades"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.764457
player_id: cpu_0
player_name: River
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 2 for 7 at pos 1
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "Q", "suit": "hearts"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "10", "suit": "spades"}, {"rank": "Q", "suit": "spades"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.770191
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}], "Maya": [{"rank": "10", "suit": "spades"}, {"rank": "Q", "suit": "spades"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.776291
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 7 for Q at pos 0
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}], "Maya": [{"rank": "10", "suit": "spades"}, {"rank": "Q", "suit": "spades"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.782163
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took Q from discard
hand_json:
[{"rank": "3", "suit": "spades", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.788109
player_id: cpu_2
player_name: Maya
action: swap
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped Q for 4 at pos 2
hand_json:
[{"rank": "3", "suit": "spades", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.793938
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "10", "suit": "spades"}, {"rank": "Q", "suit": "hearts"}, {"rank": "Q", "suit": "spades"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.799935
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 4 for 6 at pos 4
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "10", "suit": "spades"}, {"rank": "Q", "suit": "hearts"}, {"rank": "Q", "suit": "spades"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.805837
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "10", "suit": "spades"}, {"rank": "Q", "suit": "hearts"}, {"rank": "Q", "suit": "spades"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.811869
player_id: cpu_0
player_name: River
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: swapped 6 for A at pos 2
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "10", "suit": "spades"}, {"rank": "Q", "suit": "hearts"}, {"rank": "Q", "suit": "spades"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.817900
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took A from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Maya": [{"rank": "10", "suit": "spades"}, {"rank": "Q", "suit": "hearts"}, {"rank": "Q", "suit": "spades"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.823765
player_id: cpu_1
player_name: Diego
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped A for 7 at pos 0
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Maya": [{"rank": "10", "suit": "spades"}, {"rank": "Q", "suit": "hearts"}, {"rank": "Q", "suit": "spades"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.829687
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "3", "suit": "spades", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.835299
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 7 for 10 at pos 1
hand_json:
[{"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.841210
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "clubs"}, {"rank": "Q", "suit": "hearts"}, {"rank": "Q", "suit": "spades"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.853241
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "clubs"}, {"rank": "Q", "suit": "hearts"}, {"rank": "Q", "suit": "spades"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.864984
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "clubs"}, {"rank": "Q", "suit": "hearts"}, {"rank": "Q", "suit": "spades"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.871097
player_id: cpu_1
player_name: Diego
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped K for 6 at pos 4
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "clubs"}, {"rank": "Q", "suit": "hearts"}, {"rank": "Q", "suit": "spades"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.877368
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.883591
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 6 for Q at pos 2
hand_json:
[{"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.889514
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "Q", "suit": "spades"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.895186
player_id: cpu_3
player_name: Sage
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped K for 5 at pos 2
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "Q", "suit": "spades"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.901114
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 5 from discard
visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "Q", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.907009
player_id: cpu_0
player_name: River
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 5 for 6 at pos 2
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "Q", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.913012
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "Q", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.918781
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped 6 for 4 at pos 1
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "Q", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.924900
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.930843
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 4 for Q at pos 5
hand_json:
[{"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.937163
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.950100
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.962175
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.968825
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 3 for 6 at pos 1
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.975065
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.980888
player_id: cpu_2
player_name: Maya
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped K for 7 at pos 1
hand_json:
[{"rank": "3", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.986850
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Maya": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.992818
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 3 for 4 at pos 4
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Maya": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:09.999193
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: took 4 from discard
visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Maya": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.005570
player_id: cpu_0
player_name: River
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 4 for 5 at pos 2
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Maya": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.011756
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Maya": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.017785
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: swapped 5 for 2 at pos 5
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Maya": [{"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.023828
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "3", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.029863
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 2 for 6 at pos 2
hand_json:
[{"rank": "3", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.035696
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}], "Maya": [{"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.041219
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "K", "suit": "hearts"}
decision_reason: swapped 6 for K at pos 0
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}], "Maya": [{"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.046878
player_id: cpu_0
player_name: River
action: take_discard
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: took K from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}], "Maya": [{"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.052637
player_id: cpu_0
player_name: River
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped K for 4 at pos 2
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}], "Maya": [{"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.058399
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Maya": [{"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.064733
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 4 for 5 at pos 5
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Maya": [{"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.070984
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "3", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.076726
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped 5 for 3 at pos 0
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.086888
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.093061
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 3 for 4 at pos 1
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.099246
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.107441
player_id: cpu_0
player_name: River
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 4 for 8 at pos 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.113557
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Maya": [{"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.119653
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: swapped 7 for A at pos 3
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Maya": [{"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.125784
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: A
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took A from discard
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.131610
player_id: cpu_2
player_name: Maya
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped A for 5 at pos 0
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.137539
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.143897
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 5 for 6 at pos 0
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.150305
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.156624
player_id: cpu_0
player_name: River
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 6 for 4 at pos 0
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.162970
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.169121
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped 4 for J at pos 2
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.174881
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.181347
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped 2 for 4 at pos 5
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.187201
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.193318
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 4 for 5 at pos 0
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.199493
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Sage": [{"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 1d53017e-2d28-407b-ba7b-6bc781515f7f
timestamp: 2026-01-25 00:10:10.205335
player_id: cpu_0
player_name: River
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 5 for 6 at pos 0
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "J", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}], "Sage": [{"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "10", "suit": "diamonds"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.222457
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "10", "suit": "clubs"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "spades"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.228455
player_id: cpu_0
player_name: River
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 4 for 6 at pos 3
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "10", "suit": "clubs"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "spades"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.234514
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "10", "suit": "clubs"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "spades"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.246623
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "spades"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.252561
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped 7 for 10 at pos 3
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "spades"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.258244
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.264177
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "2", "suit": "hearts"}
decision_reason: swapped 9 for 2 at pos 5
hand_json:
[{"rank": "8", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.270112
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "spades"}, {"rank": "9", "suit": "spades"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.275991
player_id: cpu_0
player_name: River
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 2 for 5 at pos 1
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "spades"}, {"rank": "9", "suit": "spades"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.281777
player_id: cpu_1
player_name: Maya
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "spades"}, {"rank": "9", "suit": "spades"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.287614
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 5 for Q at pos 1
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "spades"}, {"rank": "9", "suit": "spades"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.293350
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "spades"}, {"rank": "9", "suit": "spades"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.299390
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped K for 7 at pos 3
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "spades"}, {"rank": "9", "suit": "spades"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.305178
player_id: cpu_3
player_name: Priya
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "8", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.311165
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped 7 for 9 at pos 1
hand_json:
[{"rank": "8", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.317595
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "9", "suit": "spades"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.323218
player_id: cpu_0
player_name: River
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 2 for 4 at pos 3
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "9", "suit": "spades"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.328965
player_id: cpu_1
player_name: Maya
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "spades"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "9", "suit": "spades"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.334563
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 4 for 8 at pos 2
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "spades"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "9", "suit": "spades"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.340055
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "spades"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "9", "suit": "spades"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.346407
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped 4 for A at pos 4
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "spades"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "9", "suit": "spades"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.352310
player_id: cpu_3
player_name: Priya
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took A from discard
hand_json:
[{"rank": "8", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "spades"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.358757
player_id: cpu_3
player_name: Priya
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped A for 9 at pos 5
hand_json:
[{"rank": "8", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "spades"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.364553
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "A", "suit": "clubs"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.370802
player_id: cpu_0
player_name: River
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: swapped 2 for A at pos 5
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "A", "suit": "clubs"}]}


game_id: b667bf55-da8b-4cb9-b3f0-20a39ce59ecf
timestamp: 2026-01-25 00:10:10.376470
player_id: cpu_1
player_name: Maya
action: take_discard
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took A from discard
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Priya": [{"rank": "8", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "A", "suit": "clubs"}]}


