# moves

game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:29.135575
player_id: cpu_1
player_name: Priya
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:29.141744
player_id: cpu_1
player_name: Priya
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: swapped 7 for 2 at pos 1
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:29.147881
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:29.159931
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:29.166196
player_id: cpu_3
player_name: Sage
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped A for 4 at pos 2
hand_json:
[{"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:29.172496
player_id: cpu_0
player_name: Maya
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:29.179328
player_id: cpu_0
player_name: Maya
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 4 for 6 at pos 1
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.197283
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: K
card_suit: spades
decision_reason: took K from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "6", "suit": "diamonds"}, {"rank": "Q", "suit": "clubs"}], "River": [{"rank": "9", "suit": "spades"}, {"rank": "9", "suit": "clubs"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.203794
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped K for J at pos 2
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "6", "suit": "diamonds"}, {"rank": "Q", "suit": "clubs"}], "River": [{"rank": "9", "suit": "spades"}, {"rank": "9", "suit": "clubs"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.210398
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "9", "suit": "spades"}, {"rank": "9", "suit": "clubs"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.216876
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 4 for Q at pos 3
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "9", "suit": "spades"}, {"rank": "9", "suit": "clubs"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.222946
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}], "Marcus": [{"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.235135
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.247208
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.253283
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped 2 for 3 at pos 4
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.259340
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}], "River": [{"rank": "9", "suit": "spades"}, {"rank": "9", "suit": "clubs"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.265339
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 3 for 6 at pos 2
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}], "River": [{"rank": "9", "suit": "spades"}, {"rank": "9", "suit": "clubs"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.271880
player_id: cpu_2
player_name: River
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.277744
player_id: cpu_2
player_name: River
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 6 for 9 at pos 1
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.283396
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.294973
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.306811
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.325834
player_id: cpu_2
player_name: River
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped A for 9 at pos 3
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.332037
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}], "Marcus": [{"rank": "3", "suit": "spades"}, {"rank": "4", "suit": "hearts"}], "River": [{"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}]}


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.343831
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "spades"}, {"rank": "4", "suit": "hearts"}], "River": [{"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.355894
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}], "River": [{"rank": "6", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.413213
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped A for 4 at pos 3
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}]


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.419277
player_id: cpu_2
player_name: River
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: took 4 from discard
visible_opponents_json:
{"Sofia": [{"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}], "Marcus": [{"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.425178
player_id: cpu_2
player_name: River
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 4 for 6 at pos 1
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.431271
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}], "Marcus": [{"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}]}


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.443147
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.455273
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.461305
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 4 for 7 at pos 4
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.467686
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.473725
player_id: cpu_2
player_name: River
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped K for 4 at pos 1
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.479996
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: took 4 from discard
visible_opponents_json:
{"Sofia": [{"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}], "Marcus": [{"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}], "River": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}]}


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.486178
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 4 for 6 at pos 3
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.491935
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}], "River": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.497721
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped 6 for J at pos 1
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}], "River": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.504126
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.510678
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 2 for 4 at pos 4
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.516834
player_id: cpu_2
player_name: River
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.522666
player_id: cpu_2
player_name: River
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 4 for 9 at pos 0
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.528446
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.534460
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 5 for 6 at pos 5
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.540665
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.546542
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: swapped 6 for A at pos 0
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.552659
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took A from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.558574
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "K", "suit": "hearts"}
decision_reason: swapped A for K at pos 0
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.564571
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "K", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.570327
player_id: cpu_2
player_name: River
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 7 for 10 at pos 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.576292
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.587840
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.594908
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 2 for 6 at pos 0
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.601325
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.607738
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 6 for 5 at pos 1
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.614005
player_id: cpu_2
player_name: River
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": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.619793
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 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.625699
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 7 from discard
visible_opponents_json:
{"Sofia": [{"rank": "2", "suit": "hearts"}, {"rank": "6", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}], "Marcus": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}], "River": [{"rank": "4", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}]}


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.631934
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped 7 for A at pos 0
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.637972
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took A from discard
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.643889
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped A for 6 at pos 1
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.649988
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.655878
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 6 for 8 at pos 5
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.661813
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.667719
player_id: cpu_2
player_name: River
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "2", "suit": "spades"}
decision_reason: swapped 5 for 2 at pos 5
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.673400
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.679281
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 2 for 7 at pos 0
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.685145
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 7e5d4b3d-bb15-433b-bec8-e713f7f0a7fd
timestamp: 2026-01-25 00:10:29.691314
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 7 for 7 at pos 3
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.707839
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 2
card_suit: spades
decision_reason: took 2 from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"Marcus": [{"rank": "10", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}], "Sofia": [{"rank": "3", "suit": "hearts"}, {"rank": "9", "suit": "spades"}], "River": [{"rank": "9", "suit": "clubs"}, {"rank": "9", "suit": "hearts"}]}


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.713860
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 2 for Q at pos 5
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"Marcus": [{"rank": "10", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}], "Sofia": [{"rank": "3", "suit": "hearts"}, {"rank": "9", "suit": "spades"}], "River": [{"rank": "9", "suit": "clubs"}, {"rank": "9", "suit": "hearts"}]}


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.720249
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.726036
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped 2 for 10 at pos 2
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.732152
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.737864
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 5 for 9 at pos 5
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.743844
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 9 from discard
hand_json:
[{"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.750017
player_id: cpu_3
player_name: River
action: swap
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 9 for Q at pos 0
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.755917
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.771432
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.777634
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "K", "suit": "clubs"}
decision_reason: swapped 6 for K at pos 0
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.784376
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took K from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.791162
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped K for 5 at pos 5
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.797556
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.803439
player_id: cpu_3
player_name: River
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 2 for 9 at pos 0
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.811095
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "6", "suit": "spades"}, {"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Sofia": [{"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "River": [{"rank": "2", "suit": "clubs"}, {"rank": "9", "suit": "clubs"}, {"rank": "9", "suit": "hearts"}]}


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.817047
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 1
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.822946
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took K from discard
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.828997
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped K for 6 at pos 0
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.835149
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.841306
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped 6 for 3 at pos 3
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.847607
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.853787
player_id: cpu_3
player_name: River
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped 3 for 9 at pos 2
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.860094
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.866130
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 2 for 4 at pos 1
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.872510
player_id: cpu_1
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
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.878564
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: swapped 4 for A at pos 5
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.884555
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took A from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.890028
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped A for 6 at pos 3
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.895750
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.901334
player_id: cpu_3
player_name: River
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 6 for 9 at pos 3
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.907014
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.912767
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 7 for 4 at pos 2
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.918680
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.925228
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 4 for 10 at pos 3
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.931624
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.938135
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped 3 for J at pos 4
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.944484
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.950430
player_id: cpu_3
player_name: River
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "K", "suit": "spades"}
decision_reason: swapped 6 for K at pos 5
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.956354
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: K
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took K from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.962265
player_id: cpu_0
player_name: Priya
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped K for 7 at pos 2
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.968418
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.974317
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped 7 for 10 at pos 1
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.980281
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.991943
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:29.998194
player_id: cpu_3
player_name: River
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: swapped 7 for A at pos 1
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:30.004475
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: A
card_suit: spades
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took A from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 43417c6e-04ea-4b74-838f-3961e70aed2c
timestamp: 2026-01-25 00:10:30.010458
player_id: cpu_0
player_name: Priya
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped A for J at pos 3
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.027869
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: 7
card_suit: spades
decision_reason: took 7 from discard
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "9", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}], "Kenji": [{"rank": "J", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.033979
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 7 for 8 at pos 3
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "9", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}], "Kenji": [{"rank": "J", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.039872
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Sofia": [{"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "10", "suit": "diamonds"}], "Sage": [{"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}], "Kenji": [{"rank": "J", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.045409
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 4 for 9 at pos 0
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Sofia": [{"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "10", "suit": "diamonds"}], "Sage": [{"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}], "Kenji": [{"rank": "J", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.051616
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.064180
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: J
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took J from discard
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "10", "suit": "diamonds"}], "Marcus": [{"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}]}


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.070457
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: J
card_suit: spades
discard_top_json: {"rank": "K", "suit": "hearts"}
decision_reason: swapped J for K at pos 4
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Sofia": [{"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "10", "suit": "diamonds"}], "Marcus": [{"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}]}


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.076785
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took K from discard
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.083090
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped K for 10 at pos 4
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.089096
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Sofia": [{"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Sage": [{"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}], "Kenji": [{"rank": "J", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "J", "suit": "spades"}]}


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.095621
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped A for 4 at pos 0
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Sofia": [{"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Sage": [{"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}], "Kenji": [{"rank": "J", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "J", "suit": "spades"}]}


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.101622
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"Sofia": [{"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "Kenji": [{"rank": "J", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "J", "suit": "spades"}]}


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.108160
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 4 for 9 at pos 4
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"Sofia": [{"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "Kenji": [{"rank": "J", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "J", "suit": "spades"}]}


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.114777
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.122512
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped 2 for J at pos 1
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.128705
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.140799
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Sofia": [{"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Sage": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}], "Kenji": [{"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "J", "suit": "spades"}]}


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.146951
player_id: cpu_1
player_name: Marcus
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": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"Sofia": [{"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Sage": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}], "Kenji": [{"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "J", "suit": "spades"}]}


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.153158
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.159189
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 3 for 4 at pos 4
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.165070
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.171304
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped 4 for J at pos 4
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.178043
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "spades"}], "Kenji": [{"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "spades"}]}


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.184213
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 2 for 7 at pos 0
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.190441
player_id: cpu_1
player_name: Marcus
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": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.202668
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 3
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": "J", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.213114
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped 3 for J at pos 1
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.219380
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.225763
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 3 for 5 at pos 0
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.231834
player_id: cpu_0
player_name: Sofia
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": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.238249
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 5 for 7 at pos 3
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.244624
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 7 from discard
visible_opponents_json:
{"Sofia": [{"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Sage": [{"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "spades"}], "Kenji": [{"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "spades"}]}


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.250454
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 7 for 7 at pos 4
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.256692
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.262879
player_id: cpu_2
player_name: Sage
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": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.269057
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.275027
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 5 for 8 at pos 5
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.281148
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.293313
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.300211
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 6 for 7 at pos 4
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.306779
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.312732
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 7 for 10 at pos 2
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.319300
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.325432
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 7 for 6 at pos 2
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.331382
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Marcus": [{"rank": "A", "suit": "spades"}, {"rank": "6", "suit": "spades"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "spades"}], "Kenji": [{"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}]}


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.337399
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 6 for J at pos 2
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.343871
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 9bd3d8ae-3c92-43a4-82a8-a8de46d7e9c1
timestamp: 2026-01-25 00:10:30.350778
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped A for A at pos 3
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.368414
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 4
card_suit: diamonds
decision_reason: took 4 from discard
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.374591
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 4 for 10 at pos 2
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.380725
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.387199
player_id: cpu_1
player_name: Priya
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 4 for Q at pos 3
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.393249
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.405495
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.411226
player_id: cpu_3
player_name: River
action: swap
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: swapped 9 for 3 at pos 2
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.417512
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Priya": [{"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "5", "suit": "hearts"}, {"rank": "10", "suit": "clubs"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "9", "suit": "diamonds"}, {"rank": "9", "suit": "hearts"}]}


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.423638
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 3 for 4 at pos 2
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Priya": [{"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "5", "suit": "hearts"}, {"rank": "10", "suit": "clubs"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "9", "suit": "diamonds"}, {"rank": "9", "suit": "hearts"}]}


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.431162
player_id: cpu_1
player_name: Priya
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.437362
player_id: cpu_1
player_name: Priya
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": "6", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.443279
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.449391
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped 6 for 10 at pos 3
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.455438
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.461259
player_id: cpu_3
player_name: River
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped K for 9 at pos 2
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.467175
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.479442
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.491234
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.497741
player_id: cpu_2
player_name: Maya
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped K for 6 at pos 3
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.504156
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.510431
player_id: cpu_3
player_name: River
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 6 for 9 at pos 5
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.516772
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}]}


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.529630
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Maya": [{"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}]}


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.535489
player_id: cpu_1
player_name: Priya
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 5 for 6 at pos 1
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.541485
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.547197
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped 6 for 3 at pos 1
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.552950
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.558749
player_id: cpu_3
player_name: River
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 3 for 6 at pos 5
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.564604
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Maya": [{"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "3", "suit": "spades"}]}


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.570853
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 6 for 8 at pos 0
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.577338
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.583368
player_id: cpu_1
player_name: Priya
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped 6 for 3 at pos 2
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.589648
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.595723
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 3 for 6 at pos 1
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.602204
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.608534
player_id: cpu_3
player_name: River
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "2", "suit": "clubs"}
decision_reason: swapped 6 for 2 at pos 0
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.617277
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.623708
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 2 for 6 at pos 0
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.630068
player_id: cpu_1
player_name: Priya
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": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.636116
player_id: cpu_1
player_name: Priya
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped 6 for 3 at pos 5
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.642245
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.648341
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 3 for 7 at pos 4
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.655564
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.661923
player_id: cpu_3
player_name: River
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 7 for J at pos 3
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.668037
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.681014
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.687268
player_id: cpu_1
player_name: Priya
action: swap
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: swapped 9 for A at pos 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.693628
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took A from discard
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.700219
player_id: cpu_2
player_name: Maya
action: swap
card_rank: A
card_suit: diamonds
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": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.706696
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.712846
player_id: cpu_3
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 3
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.719333
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 7 from discard
visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "9", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "hearts"}], "River": [{"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "spades"}]}


game_id: c0af5de5-473f-45ea-9731-9c182f3c97c1
timestamp: 2026-01-25 00:10:30.725612
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 7 for 7 at pos 5
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.743532
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.749814
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 3 for 9 at pos 3
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.756143
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "9", "suit": "spades"}], "Maya": [{"rank": "7", "suit": "diamonds"}, {"rank": "J", "suit": "diamonds"}], "Sofia": [{"rank": "7", "suit": "spades"}, {"rank": "Q", "suit": "clubs"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.769379
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "9", "suit": "spades"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "spades"}], "Sofia": [{"rank": "7", "suit": "spades"}, {"rank": "Q", "suit": "clubs"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.775656
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped 8 for J at pos 5
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "9", "suit": "spades"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "spades"}], "Sofia": [{"rank": "7", "suit": "spades"}, {"rank": "Q", "suit": "clubs"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.781962
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "9", "suit": "spades"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "spades"}], "Maya": [{"rank": "7", "suit": "diamonds"}, {"rank": "8", "suit": "spades"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.787980
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 6 for Q at pos 3
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "9", "suit": "spades"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "spades"}], "Maya": [{"rank": "7", "suit": "diamonds"}, {"rank": "8", "suit": "spades"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.793873
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "spades"}], "Maya": [{"rank": "7", "suit": "diamonds"}, {"rank": "8", "suit": "spades"}], "Sofia": [{"rank": "7", "suit": "spades"}, {"rank": "6", "suit": "clubs"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.806002
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "9", "suit": "spades"}], "Maya": [{"rank": "7", "suit": "diamonds"}, {"rank": "8", "suit": "spades"}], "Sofia": [{"rank": "7", "suit": "spades"}, {"rank": "6", "suit": "clubs"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.818862
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.850862
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 5 for 9 at pos 4
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}]


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.857493
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}], "Maya": [{"rank": "7", "suit": "diamonds"}, {"rank": "8", "suit": "spades"}], "Sofia": [{"rank": "7", "suit": "spades"}, {"rank": "6", "suit": "clubs"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.870084
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "spades"}], "Sofia": [{"rank": "7", "suit": "spades"}, {"rank": "6", "suit": "clubs"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.882061
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "spades"}], "Maya": [{"rank": "7", "suit": "diamonds"}, {"rank": "8", "suit": "spades"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.887819
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 2 for 7 at pos 1
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.893441
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "spades"}], "Maya": [{"rank": "7", "suit": "diamonds"}, {"rank": "8", "suit": "spades"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.905773
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}], "Maya": [{"rank": "7", "suit": "diamonds"}, {"rank": "8", "suit": "spades"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.912338
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 2 for 6 at pos 5
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}], "Maya": [{"rank": "7", "suit": "diamonds"}, {"rank": "8", "suit": "spades"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.918659
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.924756
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 6 for 8 at pos 5
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.931204
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.943534
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "diamonds"}, {"rank": "6", "suit": "spades"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.949611
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 3 for 5 at pos 4
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.955716
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.961635
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 5 for 7 at pos 1
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.967339
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.973677
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "K", "suit": "spades"}
decision_reason: swapped 7 for K at pos 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.980670
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: K
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took K from discard
visible_opponents_json:
{"Kenji": [{"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "5", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "spades"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.987225
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped K for 6 at pos 3
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:30.994371
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.007648
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.020458
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.028157
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 2 for 7 at pos 1
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.034772
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.040941
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped A for A at pos 0
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.047438
player_id: cpu_0
player_name: Kenji
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: took A from discard
visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "5", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}], "Maya": [{"rank": "2", "suit": "hearts"}, {"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "spades"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "spades"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.053346
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped A for 3 at pos 0
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.060102
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: took 3 from discard
visible_opponents_json:
{"Kenji": [{"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}], "Maya": [{"rank": "2", "suit": "hearts"}, {"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "spades"}], "Sofia": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "spades"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.066634
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 3 for 5 at pos 1
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.073137
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.079128
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 5 for 7 at pos 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.085634
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.098294
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.104706
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: swapped 2 for 3 at pos 3
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.111127
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.117245
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "K", "suit": "clubs"}
decision_reason: swapped 3 for K at pos 4
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.123954
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took K from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.130244
player_id: cpu_2
player_name: Maya
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped K for 6 at pos 5
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.136640
player_id: cpu_3
player_name: Sofia
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:
{"Kenji": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}], "Maya": [{"rank": "2", "suit": "hearts"}, {"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "clubs"}]}


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.143019
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: swapped 6 for A at pos 4
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.149600
player_id: cpu_0
player_name: Kenji
action: take_discard
card_rank: A
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took A from discard
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.155729
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped A for 3 at pos 4
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.161616
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.167782
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 3 for 4 at pos 0
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.174170
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.180371
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 4 for 5 at pos 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.186504
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.192945
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "K", "suit": "diamonds"}
decision_reason: swapped 5 for K at pos 2
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.199556
player_id: cpu_0
player_name: Kenji
action: take_discard
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took K from discard
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.205881
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped K for A at pos 0
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.212150
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took A from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.218344
player_id: cpu_1
player_name: Diego
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped A for 3 at pos 0
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.224767
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.231297
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 3 for 4 at pos 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.237874
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.244395
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 4 for 6 at pos 4
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.250872
player_id: cpu_0
player_name: Kenji
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.257101
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 6 for 5 at pos 5
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.263218
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.269446
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 5 for 10 at pos 3
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.275779
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.281960
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 5 for 6 at pos 3
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.288302
player_id: cpu_3
player_name: Sofia
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": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.294931
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 6 for 6 at pos 5
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.301409
player_id: cpu_0
player_name: Kenji
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.308063
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 6 for 8 at pos 2
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.314225
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.320235
player_id: cpu_1
player_name: Diego
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped K for 5 at pos 3
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.326410
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 2b783a6c-ec0d-4344-b263-6b0123c16ad6
timestamp: 2026-01-25 00:10:31.332403
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 5 for 4 at pos 0
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.349911
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 6
card_suit: hearts
decision_reason: took 6 from discard
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "3", "suit": "hearts"}, {"rank": "J", "suit": "spades"}], "Sage": [{"rank": "4", "suit": "spades"}, {"rank": "8", "suit": "diamonds"}], "Marcus": [{"rank": "7", "suit": "clubs"}, {"rank": "J", "suit": "hearts"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.356031
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped 6 for 10 at pos 0
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "3", "suit": "hearts"}, {"rank": "J", "suit": "spades"}], "Sage": [{"rank": "4", "suit": "spades"}, {"rank": "8", "suit": "diamonds"}], "Marcus": [{"rank": "7", "suit": "clubs"}, {"rank": "J", "suit": "hearts"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.362185
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "Sage": [{"rank": "4", "suit": "spades"}, {"rank": "8", "suit": "diamonds"}], "Marcus": [{"rank": "7", "suit": "clubs"}, {"rank": "J", "suit": "hearts"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.374244
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "Priya": [{"rank": "3", "suit": "hearts"}, {"rank": "J", "suit": "spades"}], "Marcus": [{"rank": "7", "suit": "clubs"}, {"rank": "J", "suit": "hearts"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.380306
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 7 for 8 at pos 3
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}], "Priya": [{"rank": "3", "suit": "hearts"}, {"rank": "J", "suit": "spades"}], "Marcus": [{"rank": "7", "suit": "clubs"}, {"rank": "J", "suit": "hearts"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.386962
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.393114
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped 8 for J at pos 4
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.399766
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "3", "suit": "hearts"}, {"rank": "J", "suit": "spades"}], "Sage": [{"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}], "Marcus": [{"rank": "7", "suit": "clubs"}, {"rank": "8", "suit": "diamonds"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.406189
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped 8 for 9 at pos 4
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "3", "suit": "hearts"}, {"rank": "J", "suit": "spades"}], "Sage": [{"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}], "Marcus": [{"rank": "7", "suit": "clubs"}, {"rank": "8", "suit": "diamonds"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.412133
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "hearts"}, {"rank": "8", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Sage": [{"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}], "Marcus": [{"rank": "7", "suit": "clubs"}, {"rank": "8", "suit": "diamonds"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.424902
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "hearts"}, {"rank": "8", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Priya": [{"rank": "3", "suit": "hearts"}, {"rank": "J", "suit": "spades"}], "Marcus": [{"rank": "7", "suit": "clubs"}, {"rank": "8", "suit": "diamonds"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.433721
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 2 for 7 at pos 3
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "hearts"}, {"rank": "8", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Priya": [{"rank": "3", "suit": "hearts"}, {"rank": "J", "suit": "spades"}], "Marcus": [{"rank": "7", "suit": "clubs"}, {"rank": "8", "suit": "diamonds"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.440221
player_id: cpu_3
player_name: Marcus
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": "J", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "hearts"}, {"rank": "8", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Priya": [{"rank": "3", "suit": "hearts"}, {"rank": "J", "suit": "spades"}], "Sage": [{"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "hearts"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.446516
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 7 for Q at pos 5
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "hearts"}, {"rank": "8", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Priya": [{"rank": "3", "suit": "hearts"}, {"rank": "J", "suit": "spades"}], "Sage": [{"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "hearts"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.452565
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.458961
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 5 for 8 at pos 4
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.465276
player_id: cpu_1
player_name: Priya
action: take_discard
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 8 from discard
visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Sage": [{"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "hearts"}], "Marcus": [{"rank": "7", "suit": "clubs"}, {"rank": "8", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.471079
player_id: cpu_1
player_name: Priya
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped 8 for J at pos 4
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.477466
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Priya": [{"rank": "3", "suit": "hearts"}, {"rank": "8", "suit": "clubs"}], "Marcus": [{"rank": "7", "suit": "clubs"}, {"rank": "8", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.487331
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: swapped 4 for 2 at pos 4
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Priya": [{"rank": "3", "suit": "hearts"}, {"rank": "8", "suit": "clubs"}], "Marcus": [{"rank": "7", "suit": "clubs"}, {"rank": "8", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.493393
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.499264
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 2 for 8 at pos 4
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.504990
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.517150
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.523195
player_id: cpu_1
player_name: Priya
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped K for 8 at pos 4
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.528934
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.540653
player_id: cpu_3
player_name: Marcus
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.546626
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 3 for 7 at pos 2
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.552860
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Sage": [{"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.559188
player_id: cpu_0
player_name: Diego
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped A for 6 at pos 0
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.565118
player_id: cpu_1
player_name: Priya
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": "3", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.571301
player_id: cpu_1
player_name: Priya
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 6 for 9 at pos 1
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.578351
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Priya": [{"rank": "3", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Marcus": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.584523
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 4 for 10 at pos 5
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.590334
player_id: cpu_3
player_name: Marcus
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.602399
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.608437
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 8 for 8 at pos 3
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.614374
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.620632
player_id: cpu_1
player_name: Priya
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "K", "suit": "spades"}
decision_reason: swapped 3 for K at pos 3
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.626552
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "K", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.632749
player_id: cpu_2
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 0
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.638435
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "K", "suit": "spades"}
decision_reason: took 2 from discard
visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "8", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Priya": [{"rank": "3", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.644507
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 2 for 7 at pos 5
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.650570
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "K", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.656795
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 7 for 8 at pos 3
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.662952
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.669018
player_id: cpu_1
player_name: Priya
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 6 for 9 at pos 2
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.675284
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.687620
player_id: cpu_3
player_name: Marcus
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.693719
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped 6 for J at pos 0
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.699915
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.705644
player_id: cpu_0
player_name: Diego
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped A for 7 at pos 3
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.712020
player_id: cpu_1
player_name: Priya
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.718307
player_id: cpu_1
player_name: Priya
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "K", "suit": "hearts"}
decision_reason: swapped 7 for K at pos 5
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.724493
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took K from discard
visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Priya": [{"rank": "3", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}, {"rank": "6", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}], "Marcus": [{"rank": "6", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}]}


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.730811
player_id: cpu_2
player_name: Sage
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped K for 5 at pos 0
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.736924
player_id: cpu_3
player_name: Marcus
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": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.743008
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 5 for 6 at pos 0
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.749353
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": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 14e848ac-cf37-4c3b-a976-e7793ae89cb8
timestamp: 2026-01-25 00:10:31.755970
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 6 for 7 at pos 2
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.777099
player_id: cpu_0
player_name: Marcus
action: take_discard
card_rank: K
card_suit: clubs
decision_reason: took K from discard
hand_json:
[{"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "spades"}, {"rank": "6", "suit": "clubs"}], "Sage": [{"rank": "9", "suit": "spades"}, {"rank": "2", "suit": "hearts"}], "Priya": [{"rank": "10", "suit": "hearts"}, {"rank": "2", "suit": "spades"}]}


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.782974
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped K for Q at pos 0
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "spades"}, {"rank": "6", "suit": "clubs"}], "Sage": [{"rank": "9", "suit": "spades"}, {"rank": "2", "suit": "hearts"}], "Priya": [{"rank": "10", "suit": "hearts"}, {"rank": "2", "suit": "spades"}]}


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.788643
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "9", "suit": "spades"}, {"rank": "2", "suit": "hearts"}], "Priya": [{"rank": "10", "suit": "hearts"}, {"rank": "2", "suit": "spades"}]}


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.800397
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.806616
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 7 for 9 at pos 0
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.812891
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.819036
player_id: cpu_3
player_name: Priya
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped A for 10 at pos 1
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.825205
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 6
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": "4", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.839759
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.846034
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 6 for 8 at pos 1
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.851920
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.858181
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 6 for 7 at pos 0
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.865862
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}], "Diego": [{"rank": "6", "suit": "hearts"}, {"rank": "6", "suit": "spades"}, {"rank": "6", "suit": "clubs"}], "Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}]}


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.872053
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 7 for Q at pos 4
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}], "Diego": [{"rank": "6", "suit": "hearts"}, {"rank": "6", "suit": "spades"}, {"rank": "6", "suit": "clubs"}], "Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}]}


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.878303
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "hearts"}, {"rank": "6", "suit": "spades"}, {"rank": "6", "suit": "clubs"}], "Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Priya": [{"rank": "A", "suit": "hearts"}, {"rank": "7", "suit": "clubs"}, {"rank": "2", "suit": "spades"}]}


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.884137
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 3 for Q at pos 4
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.890188
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.901508
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.907342
player_id: cpu_2
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": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.912938
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.919225
player_id: cpu_3
player_name: Priya
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped K for 7 at pos 4
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.925194
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.937569
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "spades"}, {"rank": "2", "suit": "hearts"}], "Priya": [{"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}]}


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.950014
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.956343
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 3 for 5 at pos 0
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.964708
player_id: cpu_3
player_name: Priya
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": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.970535
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 5 for Q at pos 2
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.977175
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "hearts"}, {"rank": "6", "suit": "spades"}, {"rank": "6", "suit": "clubs"}], "Sage": [{"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "hearts"}], "Priya": [{"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}]}


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.984389
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped 2 for 3 at pos 4
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.990295
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 3 from discard
visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "hearts"}], "Priya": [{"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}]}


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:31.996068
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 3 for 6 at pos 1
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.002029
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.007923
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped 6 for 10 at pos 3
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.013861
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.025988
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.032172
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped A for J at pos 2
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.038956
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.045369
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "K", "suit": "hearts"}
decision_reason: swapped 8 for K at pos 5
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.051545
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took K from discard
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.057043
player_id: cpu_2
player_name: Sage
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped K for 6 at pos 3
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.062845
player_id: cpu_3
player_name: Priya
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}], "Diego": [{"rank": "3", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}], "Sage": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}]}


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.069004
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 6 for 7 at pos 3
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.074878
player_id: cpu_0
player_name: Marcus
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.081251
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped 7 for 4 at pos 1
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.087350
player_id: cpu_1
player_name: Diego
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": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.093610
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped 4 for 3 at pos 0
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.099821
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.105993
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 3 for 8 at pos 5
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.112475
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.118567
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 4 for 6 at pos 3
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.124743
player_id: cpu_0
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.130497
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 6 for 7 at pos 1
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.136323
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.142474
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 7 for 8 at pos 5
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.148033
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.153732
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 4 for 5 at pos 1
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.159443
player_id: cpu_3
player_name: Priya
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.165704
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 5 for 4 at pos 0
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.171414
player_id: cpu_0
player_name: Marcus
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.177291
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 4 for 6 at pos 1
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.183900
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.189717
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 6 for 7 at pos 5
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.196103
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: c77066ca-ef80-4878-b258-7406dd9e0f44
timestamp: 2026-01-25 00:10:32.201972
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "K", "suit": "diamonds"}
decision_reason: swapped 7 for K at pos 2
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 4053ffe8-8094-453b-9df8-2cb95a3fd94d
timestamp: 2026-01-25 00:10:32.219268
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: K
card_suit: clubs
decision_reason: took K from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sage": [{"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Maya": [{"rank": "8", "suit": "clubs"}, {"rank": "9", "suit": "spades"}], "River": [{"rank": "Q", "suit": "hearts"}, {"rank": "4", "suit": "spades"}]}


game_id: 4053ffe8-8094-453b-9df8-2cb95a3fd94d
timestamp: 2026-01-25 00:10:32.225002
player_id: cpu_0
player_name: Diego
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped K for J at pos 2
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sage": [{"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Maya": [{"rank": "8", "suit": "clubs"}, {"rank": "9", "suit": "spades"}], "River": [{"rank": "Q", "suit": "hearts"}, {"rank": "4", "suit": "spades"}]}


game_id: 4053ffe8-8094-453b-9df8-2cb95a3fd94d
timestamp: 2026-01-25 00:10:32.231512
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: 4053ffe8-8094-453b-9df8-2cb95a3fd94d
timestamp: 2026-01-25 00:10:32.241781
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: swapped 3 for A at pos 5
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 4053ffe8-8094-453b-9df8-2cb95a3fd94d
timestamp: 2026-01-25 00:10:32.247967
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: A
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took A from discard
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 4053ffe8-8094-453b-9df8-2cb95a3fd94d
timestamp: 2026-01-25 00:10:32.253510
player_id: cpu_2
player_name: Maya
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped A for 9 at pos 3
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 4053ffe8-8094-453b-9df8-2cb95a3fd94d
timestamp: 2026-01-25 00:10:32.259020
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 4053ffe8-8094-453b-9df8-2cb95a3fd94d
timestamp: 2026-01-25 00:10:32.264900
player_id: cpu_3
player_name: River
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 2 for Q at pos 1
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 4053ffe8-8094-453b-9df8-2cb95a3fd94d
timestamp: 2026-01-25 00:10:32.270728
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}]

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


game_id: 4053ffe8-8094-453b-9df8-2cb95a3fd94d
timestamp: 2026-01-25 00:10:32.276758
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped 8 for J at pos 3
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}]

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


game_id: 4053ffe8-8094-453b-9df8-2cb95a3fd94d
timestamp: 2026-01-25 00:10:32.282970
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


