# moves

game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.032794
player_id: cpu_2
player_name: Diego
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped A for 6 at pos 0
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.039215
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 6 from discard
visible_opponents_json:
{"River": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sage": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}]}


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.048930
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 6 for 9 at pos 5
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.054987
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.065892
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}], "Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "6", "suit": "spades"}]}


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.077377
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.132595
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 4 for 6 at pos 3
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.138869
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sage": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "clubs"}]}


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.144434
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 5 for 6 at pos 2
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.150194
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "clubs"}], "Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "6", "suit": "spades"}]}


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.161917
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "clubs"}], "Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "6", "suit": "spades"}]}


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.173999
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.265110
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 5 for J at pos 1
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.270710
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sage": [{"rank": "3", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}], "Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "6", "suit": "spades"}]}


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.276734
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "2", "suit": "hearts"}
decision_reason: swapped 4 for 2 at pos 5
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.282350
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: took 2 from discard
visible_opponents_json:
{"River": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Sage": [{"rank": "3", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.287926
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 2 for 6 at pos 5
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.294122
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "3", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}]}


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.306754
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.319162
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.325568
player_id: cpu_2
player_name: Diego
action: swap
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped J for 8 at pos 2
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.331941
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.343794
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "3", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "J", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}]}


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.355937
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "J", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}], "Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}]}


game_id: 89cd6774-f2a8-43c0-8725-dd495bc4c68e
timestamp: 2026-01-24 18:51:53.362428
player_id: cpu_1
player_name: Sage
action: discard
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: discarded 9
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.380089
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": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "8", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}], "Kenji": [{"rank": "J", "suit": "diamonds"}, {"rank": "Q", "suit": "clubs"}], "Sage": [{"rank": "9", "suit": "spades"}, {"rank": "A", "suit": "hearts"}]}


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.385859
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped K for J at pos 5
hand_json:
[{"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "8", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}], "Kenji": [{"rank": "J", "suit": "diamonds"}, {"rank": "Q", "suit": "clubs"}], "Sage": [{"rank": "9", "suit": "spades"}, {"rank": "A", "suit": "hearts"}]}


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.392216
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.398142
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 2 for 8 at pos 2
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.403992
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.409631
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped 8 for J at pos 0
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.415298
player_id: cpu_3
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": "8", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Diego": [{"rank": "2", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Kenji": [{"rank": "8", "suit": "diamonds"}, {"rank": "Q", "suit": "clubs"}]}


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.421102
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 3 for 9 at pos 2
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Diego": [{"rank": "2", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Kenji": [{"rank": "8", "suit": "diamonds"}, {"rank": "Q", "suit": "clubs"}]}


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.427097
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.434012
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 4 for Q at pos 0
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.439927
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.445681
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 5 for 7 at pos 4
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.452308
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.457785
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 7 for Q at pos 4
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.464199
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.471252
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 4 for 7 at pos 3
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.478438
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.484548
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped K for 4 at pos 0
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.490210
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.502401
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.508422
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 8 for 5 at pos 3
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.514274
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.520147
player_id: cpu_3
player_name: Sage
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped A for 6 at pos 1
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.525841
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.531129
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped 3 for J at pos 4
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.536801
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}], "Kenji": [{"rank": "8", "suit": "diamonds"}, {"rank": "8", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "hearts"}]}


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.542653
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 2 for 5 at pos 4
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.548679
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.554991
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 5 for 8 at pos 0
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.561185
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.572574
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.584025
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.590167
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "2", "suit": "spades"}
decision_reason: swapped 5 for 2 at pos 0
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.596488
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.602662
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 2 for 8 at pos 3
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.609271
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}], "Diego": [{"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Kenji": [{"rank": "5", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}]}


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.615262
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 2 for 4 at pos 3
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.621404
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Kenji": [{"rank": "5", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}]}


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.632816
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.638765
player_id: cpu_1
player_name: Diego
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped A for 5 at pos 0
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.644800
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.651327
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 4 for 7 at pos 4
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.657827
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.670397
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Kenji": [{"rank": "5", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "hearts"}], "Sage": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}]}


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.676932
player_id: cpu_0
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": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.683572
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.694758
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.706322
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Kenji": [{"rank": "5", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.712216
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped 5 for 9 at pos 5
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.718223
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.730111
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}], "Kenji": [{"rank": "5", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "hearts"}], "Sage": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}]}


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.737041
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 6 for 7 at pos 5
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.743544
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}]}


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.755612
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.767700
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}], "Kenji": [{"rank": "5", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "hearts"}], "Sage": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}]}


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.857165
player_id: cpu_3
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 5
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.863448
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}], "Kenji": [{"rank": "5", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "hearts"}], "Sage": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "spades"}]}


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.877896
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}], "Kenji": [{"rank": "5", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "hearts"}], "Sage": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "spades"}]}


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.889221
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "spades"}]}


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.918254
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "K", "suit": "diamonds"}
decision_reason: swapped 5 for K at pos 3
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.923924
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "K", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}], "Kenji": [{"rank": "5", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "hearts"}], "Sage": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "spades"}]}


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.935518
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "spades"}]}


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.941426
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 6 for 7 at pos 2
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.947259
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}], "Kenji": [{"rank": "5", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: b624dd9a-1163-4268-846b-83e21c3af3b0
timestamp: 2026-01-24 18:51:53.953396
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 4 for 8 at pos 0
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:53.972445
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Sage": [{"rank": "10", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "River": [{"rank": "2", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}], "Sofia": [{"rank": "J", "suit": "clubs"}, {"rank": "7", "suit": "clubs"}]}


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:53.978744
player_id: cpu_0
player_name: Maya
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 6 for 4 at pos 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Sage": [{"rank": "10", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "River": [{"rank": "2", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}], "Sofia": [{"rank": "J", "suit": "clubs"}, {"rank": "7", "suit": "clubs"}]}


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:53.985009
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:53.990657
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped 4 for J at pos 3
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:53.996192
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.002008
player_id: cpu_2
player_name: River
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 2 for 7 at pos 5
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.007749
player_id: cpu_3
player_name: Sofia
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": "J", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.014044
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped 7 for 3 at pos 1
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.019827
player_id: cpu_0
player_name: Maya
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.025682
player_id: cpu_0
player_name: Maya
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 3 for 6 at pos 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.031484
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.037332
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped 6 for 10 at pos 0
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.043315
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.055851
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.062025
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 8 for J at pos 0
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.068503
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.080299
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.092411
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "spades"}], "Sage": [{"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "4", "suit": "hearts"}], "Sofia": [{"rank": "8", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "clubs"}]}


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.110146
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 2 for 8 at pos 0
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.115899
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "4", "suit": "hearts"}], "River": [{"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "clubs"}]}


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.122150
player_id: cpu_0
player_name: Maya
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 5 for 5 at pos 2
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.128060
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "clubs"}]}


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.134063
player_id: cpu_1
player_name: Sage
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped A for 6 at pos 0
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.140004
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "4", "suit": "hearts"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "clubs"}]}


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.152390
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.164171
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.170124
player_id: cpu_0
player_name: Maya
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped K for 5 at pos 2
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.176769
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.182739
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 3 for 4 at pos 3
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.188953
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}, {"rank": "7", "suit": "clubs"}]}


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.195366
player_id: cpu_2
player_name: River
action: swap
card_rank: 5
card_suit: clubs
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": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.201614
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "River": [{"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}]}


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.207461
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 5 for 7 at pos 1
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.213140
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.219359
player_id: cpu_0
player_name: Maya
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped K for 4 at pos 1
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.225243
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.230855
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 4 for 9 at pos 2
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.236633
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.248863
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.262555
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.268618
player_id: cpu_0
player_name: Maya
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped K for 3 at pos 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.275166
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.287333
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "7", "suit": "clubs"}]}


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.294488
player_id: cpu_2
player_name: River
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped A for 5 at pos 3
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.301245
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 5 from discard
visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "River": [{"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}]}


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.307107
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 5 for 7 at pos 4
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.313798
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.323861
player_id: cpu_0
player_name: Maya
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped A for Q at pos 5
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.329800
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}]}


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.341328
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.347432
player_id: cpu_2
player_name: River
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped 3 for 10 at pos 4
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.352934
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.358296
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped K for 5 at pos 1
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.363714
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.379427
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}]}


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.391523
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.520631
player_id: cpu_0
player_name: Maya
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 5 for 4 at pos 0
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}]


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.526949
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}]}


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.532769
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped 3 for 4 at pos 2
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.539431
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}]}


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.552161
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}], "River": [{"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}]}


game_id: 06240fe3-5723-465e-9e47-d98841807231
timestamp: 2026-01-24 18:51:54.558133
player_id: cpu_3
player_name: Sofia
action: discard
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: discarded 9
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.574930
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Priya": [{"rank": "8", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Marcus": [{"rank": "8", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "J", "suit": "hearts"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.580892
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 5 for 6 at pos 0
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"Priya": [{"rank": "8", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Marcus": [{"rank": "8", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "J", "suit": "hearts"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.586745
player_id: cpu_1
player_name: Priya
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.592956
player_id: cpu_1
player_name: Priya
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 6 for 8 at pos 0
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.598843
player_id: cpu_2
player_name: Marcus
action: take_discard
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.604482
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 8 for J at pos 3
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.614263
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: took J from discard
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.620686
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped J for J at pos 0
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.626821
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.632597
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 5 for 9 at pos 3
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.638340
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.644207
player_id: cpu_1
player_name: Priya
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped 6 for 4 at pos 3
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.649924
player_id: cpu_2
player_name: Marcus
action: take_discard
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.655617
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 4 for 8 at pos 0
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.663524
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.669328
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 8 for J at pos 0
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.675011
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.680474
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 9 for 4 at pos 1
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.686074
player_id: cpu_1
player_name: Priya
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.691948
player_id: cpu_1
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 0
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.697649
player_id: cpu_2
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.703425
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 6 for 8 at pos 3
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.712776
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.718566
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped 8 for J at pos 3
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.724389
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.736373
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.743036
player_id: cpu_1
player_name: Priya
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped K for 6 at pos 3
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.749364
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.755281
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped A for 6 at pos 3
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.760949
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.767001
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 6 for 8 at pos 0
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.772642
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "Marcus": [{"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sofia": [{"rank": "6", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "8", "suit": "diamonds"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.784235
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.795685
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.801351
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped 3 for 4 at pos 0
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.806910
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.812359
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 4 for 8 at pos 3
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.817858
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "Marcus": [{"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sofia": [{"rank": "6", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "clubs"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.824255
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 3 for 9 at pos 1
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.830575
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "5", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "Marcus": [{"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sofia": [{"rank": "6", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "clubs"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.843171
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.855367
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.873151
player_id: cpu_0
player_name: Diego
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped K for 5 at pos 0
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.878753
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "Marcus": [{"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sofia": [{"rank": "6", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "clubs"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.884153
player_id: cpu_1
player_name: Priya
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 3 for 4 at pos 0
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.889528
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "Priya": [{"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "Sofia": [{"rank": "6", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "clubs"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.895106
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped K for 3 at pos 0
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.901017
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: took 3 from discard
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "Priya": [{"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.906795
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 3 for 6 at pos 0
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.912732
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.918720
player_id: cpu_0
player_name: Diego
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped A for 5 at pos 3
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.924226
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.936050
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 4
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": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.942083
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 4 for 7 at pos 4
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.948579
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.964651
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.971007
player_id: cpu_0
player_name: Diego
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": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.977137
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}], "Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}], "Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "clubs"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.988811
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:54.994457
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped K for 4 at pos 4
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.000137
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}], "Priya": [{"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.017009
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.022609
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: swapped 5 for 2 at pos 2
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.028132
player_id: cpu_1
player_name: Priya
action: take_discard
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 2 from discard
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}], "Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "clubs"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.033973
player_id: cpu_1
player_name: Priya
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: swapped 2 for 3 at pos 0
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.040068
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.053534
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}], "Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.065654
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.084007
player_id: cpu_1
player_name: Priya
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped 5 for 10 at pos 2
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}]


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.089490
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}], "Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "clubs"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.094828
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 5 for 9 at pos 1
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.100136
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}], "Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.105911
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 4 for Q at pos 5
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.111563
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.116830
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 4 for 5 at pos 2
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.122214
player_id: cpu_1
player_name: Priya
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.128030
player_id: cpu_1
player_name: Priya
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 5 for 6 at pos 5
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.133694
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.145240
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.157136
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.297921
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 3 for 8 at pos 2
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.303998
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "clubs"}], "Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.316539
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}], "Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.327995
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}], "Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "clubs"}], "Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.356903
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "2", "suit": "hearts"}
decision_reason: swapped 5 for 2 at pos 5
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.362299
player_id: cpu_1
player_name: Priya
action: take_discard
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 2 from discard
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}], "Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.368049
player_id: cpu_1
player_name: Priya
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 2 for 5 at pos 2
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.373899
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}], "Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "clubs"}], "Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.380647
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 4 for 5 at pos 1
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.386751
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}], "Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "clubs"}], "Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}]}


game_id: cf6960e8-db3f-4a86-a56f-885f0fd2dd0c
timestamp: 2026-01-24 18:51:55.392947
player_id: cpu_3
player_name: Sofia
action: discard
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: discarded J
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.410283
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 10
card_suit: hearts
decision_reason: took 10 from discard
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.416377
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 10 for 6 at pos 0
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.421875
player_id: cpu_1
player_name: Maya
action: take_discard
card_rank: 6
card_suit: clubs
decision_reason: took 6 from discard
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Priya": [{"rank": "10", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "10", "suit": "clubs"}], "Diego": [{"rank": "3", "suit": "clubs"}, {"rank": "Q", "suit": "spades"}], "Kenji": [{"rank": "10", "suit": "spades"}, {"rank": "K", "suit": "hearts"}]}


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.427094
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: swapped 6 for 2 at pos 5
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "10", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "10", "suit": "clubs"}], "Diego": [{"rank": "3", "suit": "clubs"}, {"rank": "Q", "suit": "spades"}], "Kenji": [{"rank": "10", "suit": "spades"}, {"rank": "K", "suit": "hearts"}]}


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.435296
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 2
card_suit: diamonds
decision_reason: took 2 from discard
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.441155
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 2 for Q at pos 5
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.447093
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.459383
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.466399
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 4 for 10 at pos 0
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.472677
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.478870
player_id: cpu_1
player_name: Maya
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: swapped A for A at pos 1
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.484289
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: A
card_suit: spades
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took A from discard
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.489867
player_id: cpu_2
player_name: Diego
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped A for 3 at pos 0
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.495388
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.500739
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 3 for 10 at pos 0
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.506611
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.518597
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.524350
player_id: cpu_1
player_name: Maya
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped K for 6 at pos 2
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.529971
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.536051
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 4 for 8 at pos 1
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.542426
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.548330
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped K for 3 at pos 0
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.554000
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 3 from discard
visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}], "Diego": [{"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Kenji": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}]}


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.559590
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 3 for 4 at pos 5
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.565186
player_id: cpu_1
player_name: Maya
action: take_discard
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.570653
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 4 for 6 at pos 5
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.575927
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.591387
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.603503
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.609545
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped 2 for 10 at pos 3
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.615445
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.627727
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "Kenji": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}]}


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.634148
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 2 for 4 at pos 1
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.639842
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "Diego": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}]}


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.651353
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.662801
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Diego": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}], "Kenji": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}]}


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.668815
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 5 for Q at pos 3
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.674722
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.686759
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "Diego": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}]}


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.698403
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "Diego": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}], "Kenji": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}]}


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.704399
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 5 for 8 at pos 4
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.710375
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.716407
player_id: cpu_1
player_name: Maya
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": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.722240
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Maya": [{"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "Kenji": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}]}


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.728333
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped 4 for J at pos 2
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.734630
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Maya": [{"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "Diego": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}]}


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.746372
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 8cd54dcf-9732-462a-8908-8c8bf56d0523
timestamp: 2026-01-24 18:51:55.752466
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped 5 for A at pos 1
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.768702
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.778059
player_id: cpu_0
player_name: Priya
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped K for 6 at pos 4
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.784024
player_id: cpu_1
player_name: River
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.789780
player_id: cpu_1
player_name: River
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 6 for 4 at pos 4
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.795379
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.807037
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.818793
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.825617
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: swapped 4 for A at pos 3
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.831129
player_id: cpu_1
player_name: River
action: take_discard
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took A from discard
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.836763
player_id: cpu_1
player_name: River
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped A for J at pos 3
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.842124
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 9
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": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.854158
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 9 from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.859685
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 9 for 10 at pos 0
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.865263
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.871673
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 3 for 4 at pos 3
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.877830
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.884243
player_id: cpu_1
player_name: River
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped K for 6 at pos 1
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.889871
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "clubs"}], "River": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}], "Sofia": [{"rank": "9", "suit": "spades"}, {"rank": "8", "suit": "hearts"}, {"rank": "9", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.895224
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 3 for Q at pos 1
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.900987
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.906936
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 4 for 9 at pos 0
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.912352
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.923723
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.929137
player_id: cpu_1
player_name: River
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 2 for 6 at pos 4
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.934914
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.946072
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.952114
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 8 for Q at pos 5
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": true}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.958388
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "8", "suit": "hearts"}, {"rank": "9", "suit": "hearts"}, {"rank": "8", "suit": "spades"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.970293
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.976921
player_id: cpu_1
player_name: River
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "K", "suit": "spades"}
decision_reason: swapped A for K at pos 0
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.983204
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: K
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took K from discard
visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "clubs"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "8", "suit": "hearts"}, {"rank": "9", "suit": "hearts"}, {"rank": "8", "suit": "spades"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.989455
player_id: cpu_2
player_name: Sage
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped K for 3 at pos 1
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:55.995177
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": true}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.000909
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 3 for 9 at pos 3
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": true}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.006653
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "8", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "8", "suit": "spades"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.018146
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.029445
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.047247
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 6 for 8 at pos 2
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": true}]


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.053191
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "8", "suit": "spades"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.065391
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "clubs"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "8", "suit": "spades"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.078014
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "clubs"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "8", "suit": "spades"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.084084
player_id: cpu_2
player_name: Sage
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped A for 3 at pos 4
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.090155
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": true}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.096164
player_id: cpu_3
player_name: Sofia
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": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.102685
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.114722
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "clubs"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.126755
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.143720
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 2 for 6 at pos 2
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.149138
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.154504
player_id: cpu_0
player_name: Priya
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped K for 3 at pos 3
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.160379
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.166968
player_id: cpu_1
player_name: River
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: swapped 4 for 3 at pos 2
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.174064
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.186023
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.197609
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.229799
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 4 for 5 at pos 0
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.235846
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.248948
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.261100
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Sage": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.278078
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 4 for 7 at pos 3
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.284128
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.296525
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.308781
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Sage": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.327022
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 3 for 4 at pos 0
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}]


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.332913
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.344615
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.356565
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Sage": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.397873
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 8 for 5 at pos 1
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.403590
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "8", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Sage": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.415142
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "8", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.426782
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "8", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.494039
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 6 for 8 at pos 1
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.500152
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "6", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Sage": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.512192
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "6", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.524087
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "6", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.541693
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 4 for 6 at pos 1
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.550868
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Sage": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.564869
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.577567
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
visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.622630
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 9 for 7 at pos 5
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": true}]


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.628982
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "9", "suit": "spades"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.641445
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "9", "suit": "spades"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.654296
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}], "Sage": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "9", "suit": "spades"}], "Sofia": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 9928aeca-a277-4c2d-add0-9cea4b5084e1
timestamp: 2026-01-24 18:51:56.660402
player_id: cpu_1
player_name: River
action: discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: discarded 7
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.677248
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.689084
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "9", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}], "Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "spades"}], "Sage": [{"rank": "4", "suit": "clubs"}, {"rank": "8", "suit": "hearts"}]}


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.695542
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 5 for 7 at pos 0
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "9", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}], "Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "spades"}], "Sage": [{"rank": "4", "suit": "clubs"}, {"rank": "8", "suit": "hearts"}]}


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.701463
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "9", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}], "Diego": [{"rank": "5", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}], "Sage": [{"rank": "4", "suit": "clubs"}, {"rank": "8", "suit": "hearts"}]}


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.713439
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.719285
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 3 for 8 at pos 5
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.724921
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.730739
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 4 for 9 at pos 0
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.736734
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.748490
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.755266
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 4 for 8 at pos 4
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.761897
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.769238
player_id: cpu_3
player_name: Sage
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped K for 4 at pos 1
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.778887
player_id: cpu_0
player_name: Kenji
action: take_discard
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.785163
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 4 for 9 at pos 3
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.791679
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "4", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}], "Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "4", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.798048
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 2 for 6 at pos 5
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.804122
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.810413
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 5 for 6 at pos 5
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.816221
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.827976
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: K
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": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.834037
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped K for 4 at pos 0
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.840154
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.853354
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.859936
player_id: cpu_2
player_name: Priya
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped A for 5 at pos 5
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.865863
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}], "Diego": [{"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "hearts"}]}


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.872015
player_id: cpu_3
player_name: Sage
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: swapped K for 3 at pos 5
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.878111
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.889905
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}], "Priya": [{"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}]}


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.895606
player_id: cpu_1
player_name: Diego
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped A for 5 at pos 0
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.901048
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.906806
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 2 for 4 at pos 1
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.913101
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.925644
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Priya": [{"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}]}


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.931977
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped A for 4 at pos 3
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.938194
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.944275
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: swapped 2 for A at pos 0
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.951058
player_id: cpu_2
player_name: Priya
action: take_discard
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: took A from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.957126
player_id: cpu_2
player_name: Priya
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped A for 7 at pos 2
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.962954
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Diego": [{"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Priya": [{"rank": "2", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "hearts"}]}


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.974903
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:56.987515
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:57.057536
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped 3 for 3 at pos 0
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:57.063981
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Diego": [{"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Priya": [{"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "hearts"}]}


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:57.076094
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Priya": [{"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}]}


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:57.087403
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Priya": [{"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "hearts"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}]}


game_id: c0d571b2-5b57-4d2e-94f2-ede163e88891
timestamp: 2026-01-24 18:51:57.096969
player_id: cpu_1
player_name: Diego
action: discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: discarded 7
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.114684
player_id: cpu_0
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.126833
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.139001
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.144968
player_id: cpu_2
player_name: River
action: swap
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 9 for Q at pos 4
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.151299
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.163405
player_id: cpu_0
player_name: Sage
action: take_discard
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "8", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.168979
player_id: cpu_0
player_name: Sage
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 8 for 8 at pos 0
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.174967
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.187160
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.198611
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.229048
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 5 for 7 at pos 4
hand_json:
[{"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.234782
player_id: cpu_2
player_name: River
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 7 from discard
visible_opponents_json:
{"Sage": [{"rank": "8", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "8", "suit": "diamonds"}], "Sofia": [{"rank": "A", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}], "Diego": [{"rank": "6", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}]}


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.240815
player_id: cpu_2
player_name: River
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "K", "suit": "diamonds"}
decision_reason: swapped 7 for K at pos 5
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.247206
player_id: cpu_3
player_name: Diego
action: take_discard
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took K from discard
visible_opponents_json:
{"Sage": [{"rank": "8", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "8", "suit": "diamonds"}], "Sofia": [{"rank": "A", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}], "River": [{"rank": "7", "suit": "hearts"}, {"rank": "9", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}]}


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.253394
player_id: cpu_3
player_name: Diego
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped K for 6 at pos 1
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.260074
player_id: cpu_0
player_name: Sage
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Sofia": [{"rank": "A", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}], "River": [{"rank": "7", "suit": "hearts"}, {"rank": "9", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}], "Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}]}


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.265851
player_id: cpu_0
player_name: Sage
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 6 for 8 at pos 0
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.272102
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "8", "suit": "diamonds"}], "River": [{"rank": "7", "suit": "hearts"}, {"rank": "9", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}], "Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}]}


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.278729
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 3 for 5 at pos 4
hand_json:
[{"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "8", "suit": "diamonds"}], "River": [{"rank": "7", "suit": "hearts"}, {"rank": "9", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}], "Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}]}


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.284909
player_id: cpu_2
player_name: River
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": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.290647
player_id: cpu_2
player_name: River
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 5 for 9 at pos 4
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.296290
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.307968
player_id: cpu_0
player_name: Sage
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.313693
player_id: cpu_0
player_name: Sage
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 3 for 8 at pos 3
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.319360
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.330882
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.336469
player_id: cpu_2
player_name: River
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped K for 7 at pos 2
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.342715
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "Sofia": [{"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}], "River": [{"rank": "K", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}]}


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.348944
player_id: cpu_3
player_name: Diego
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: swapped K for A at pos 2
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.354796
player_id: cpu_0
player_name: Sage
action: take_discard
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: took A from discard
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.361244
player_id: cpu_0
player_name: Sage
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped A for 6 at pos 0
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.367778
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "River": [{"rank": "K", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "spades"}]}


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.380396
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.391500
player_id: cpu_3
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": "2", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.398694
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 5 for 6 at pos 4
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.404876
player_id: cpu_0
player_name: Sage
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.416526
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "River": [{"rank": "K", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}]}


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.428386
player_id: cpu_2
player_name: River
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: took 5 from discard
visible_opponents_json:
{"Sage": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "Sofia": [{"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}], "Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}]}


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.434775
player_id: cpu_2
player_name: River
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: swapped 5 for 2 at pos 1
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.441105
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: bf1dc4e1-f32d-4d74-936e-46c3f2c1dccf
timestamp: 2026-01-24 18:51:57.454076
player_id: cpu_0
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}], "River": [{"rank": "5", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}]}


