# games

id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
room_code: SIM
started_at: 2026-01-24 18:51:37.652268
ended_at: 2026-01-24 18:51:38.174345
options_json:
{"flip_on_discard": false, "initial_flips": 2, "knock_penalty": false, "use_jokers": false, "lucky_swing": false, "super_kings": false, "lucky_sevens": false, "ten_penny": false, "knock_bonus": false, "underdog_bonus": false, "tied_shame": false, "blackjack": false, "queens_wild": false, "four_of_a_kind": false, "eagle_eye": false}


id: cf6ebbe0-a482-4b80-8b13-28057ed94651
room_code: ZUWA
started_at: 2026-01-24 19:07:40.130944
options_json:
{"flip_on_discard": false, "initial_flips": 2, "knock_penalty": false, "use_jokers": true, "lucky_swing": false, "super_kings": false, "lucky_sevens": false, "ten_penny": false, "knock_bonus": false, "underdog_bonus": false, "tied_shame": false, "blackjack": false, "queens_wild": false, "four_of_a_kind": false, "eagle_eye": true}


id: 2bc8df2c-1ef8-4c66-8880-1fac3059f210
room_code: FSTY
started_at: 2026-01-24 20:45:25.769482
options_json:
{"flip_on_discard": false, "initial_flips": 2, "knock_penalty": false, "use_jokers": true, "lucky_swing": true, "super_kings": false, "lucky_sevens": false, "ten_penny": false, "knock_bonus": false, "underdog_bonus": false, "tied_shame": false, "blackjack": false, "queens_wild": false, "four_of_a_kind": false, "eagle_eye": false}


id: 3b1087c4-4a6f-40f7-b87c-62cd803403ec
room_code: YAWL
started_at: 2026-01-24 23:14:24.131662
options_json:
{"flip_on_discard": false, "initial_flips": 2, "knock_penalty": false, "use_jokers": false, "lucky_swing": false, "super_kings": false, "ten_penny": false, "knock_bonus": false, "underdog_bonus": false, "tied_shame": false, "blackjack": false, "eagle_eye": false}


id: 379f5e0b-32ad-402b-8cad-b6e5d02894d1
room_code: JWAK
started_at: 2026-01-25 00:05:58.960897
options_json:
{"flip_on_discard": false, "initial_flips": 2, "knock_penalty": false, "use_jokers": true, "lucky_swing": false, "super_kings": false, "ten_penny": false, "knock_bonus": false, "underdog_bonus": false, "tied_shame": false, "blackjack": false, "eagle_eye": true}


id: 1bb1109a-0e04-4171-86e8-fc94cc926a4e
room_code: MHVZ
started_at: 2026-01-25 16:11:28.389399
options_json:
{"flip_on_discard": false, "initial_flips": 2, "knock_penalty": false, "use_jokers": true, "lucky_swing": true, "super_kings": false, "ten_penny": false, "knock_bonus": false, "underdog_bonus": false, "tied_shame": false, "blackjack": false, "eagle_eye": false}


# moves

game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.658171
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "spades"}, {"rank": "9", "suit": "clubs"}], "River": [{"rank": "10", "suit": "spades"}, {"rank": "7", "suit": "spades"}], "Kenji": [{"rank": "7", "suit": "hearts"}, {"rank": "J", "suit": "spades"}]}


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.663970
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 4 for 9 at pos 1
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "spades"}, {"rank": "9", "suit": "clubs"}], "River": [{"rank": "10", "suit": "spades"}, {"rank": "7", "suit": "spades"}], "Kenji": [{"rank": "7", "suit": "hearts"}, {"rank": "J", "suit": "spades"}]}


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.669887
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 9 from discard
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "8", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "River": [{"rank": "10", "suit": "spades"}, {"rank": "7", "suit": "spades"}], "Kenji": [{"rank": "7", "suit": "hearts"}, {"rank": "J", "suit": "spades"}]}


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.676168
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 9 for 8 at pos 0
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "8", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "River": [{"rank": "10", "suit": "spades"}, {"rank": "7", "suit": "spades"}], "Kenji": [{"rank": "7", "suit": "hearts"}, {"rank": "J", "suit": "spades"}]}


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.682124
player_id: cpu_2
player_name: River
action: take_discard
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.687822
player_id: cpu_2
player_name: River
action: swap
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 8 for 10 at pos 1
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.693699
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.699293
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 9 for 4 at pos 4
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.704993
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.710539
player_id: cpu_0
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 2
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.717049
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.722663
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 10 for 5 at pos 4
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.728901
player_id: cpu_2
player_name: River
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.735368
player_id: cpu_2
player_name: River
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 5 for 8 at pos 1
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.741332
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.746794
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped 8 for J at pos 5
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.752279
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "9", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "9", "suit": "clubs"}, {"rank": "10", "suit": "hearts"}], "River": [{"rank": "5", "suit": "clubs"}, {"rank": "7", "suit": "spades"}], "Kenji": [{"rank": "7", "suit": "hearts"}, {"rank": "9", "suit": "diamonds"}, {"rank": "8", "suit": "diamonds"}]}


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.764791
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.770372
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 8 for 10 at pos 4
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.776328
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.788868
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.795135
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped A for 9 at pos 4
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.801401
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "9", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "9", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}], "River": [{"rank": "5", "suit": "clubs"}, {"rank": "7", "suit": "spades"}], "Kenji": [{"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "8", "suit": "diamonds"}]}


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.807083
player_id: cpu_0
player_name: Diego
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped K for 4 at pos 1
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.812816
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.818362
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 4 for 9 at pos 0
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.824033
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "9", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}], "Kenji": [{"rank": "7", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "8", "suit": "diamonds"}]}


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.829700
player_id: cpu_2
player_name: River
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 3 for 7 at pos 5
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.835521
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.841333
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 7 for 4 at pos 3
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.846992
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.852803
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 2 for 4 at pos 2
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.858544
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.864212
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped 4 for 9 at pos 3
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.869954
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.881262
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.886949
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 6 for 8 at pos 5
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.892939
player_id: cpu_0
player_name: Diego
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": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.905147
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.910963
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 7 for 8 at pos 4
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.917211
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Marcus": [{"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "Kenji": [{"rank": "7", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.923129
player_id: cpu_2
player_name: River
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped A for 5 at pos 1
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.931503
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.937267
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 5 for 7 at pos 0
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.943000
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "7", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}], "Kenji": [{"rank": "5", "suit": "clubs"}, {"rank": "7", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.949132
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 3 for 4 at pos 4
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.958730
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.965079
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 4 for 7 at pos 4
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.970849
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.983221
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.988973
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 2 for 7 at pos 3
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:37.994643
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.005666
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.017465
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "Marcus": [{"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Kenji": [{"rank": "5", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.023648
player_id: cpu_2
player_name: River
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 3 for 5 at pos 2
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.029656
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.037432
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 3 for 6 at pos 5
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.043573
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "Kenji": [{"rank": "5", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}]}


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.049439
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "2", "suit": "spades"}
decision_reason: swapped 6 for 2 at pos 0
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.055153
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: took 2 from discard
visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "Kenji": [{"rank": "5", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}]}


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.060988
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped 2 for 4 at pos 0
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.066679
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.072576
player_id: cpu_2
player_name: River
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped K for 3 at pos 2
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.078535
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.084508
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "K", "suit": "clubs"}
decision_reason: swapped 3 for K at pos 2
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.090579
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "K", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.096542
player_id: cpu_0
player_name: Diego
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": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.102689
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.114877
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.120468
player_id: cpu_2
player_name: River
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: swapped 2 for 3 at pos 5
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.126121
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.131976
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 3 for J at pos 1
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.138044
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.144095
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped 6 for 10 at pos 5
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.149966
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "6", "suit": "clubs"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}], "Kenji": [{"rank": "5", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}]}


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.162360
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 61e18b4e-acd1-4eee-9fda-0095f4a27b77
timestamp: 2026-01-24 18:51:38.168918
player_id: cpu_2
player_name: River
action: discard
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: discarded Q
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.184852
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 4
card_suit: hearts
decision_reason: took 4 from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Sage": [{"rank": "J", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Priya": [{"rank": "7", "suit": "hearts"}, {"rank": "5", "suit": "spades"}], "Kenji": [{"rank": "8", "suit": "hearts"}, {"rank": "9", "suit": "clubs"}]}


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.190273
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 4 for 10 at pos 0
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Sage": [{"rank": "J", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Priya": [{"rank": "7", "suit": "hearts"}, {"rank": "5", "suit": "spades"}], "Kenji": [{"rank": "8", "suit": "hearts"}, {"rank": "9", "suit": "clubs"}]}


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.195523
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.201048
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped 9 for J at pos 0
hand_json:
[{"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.207351
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.214997
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 5 for 8 at pos 2
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.220828
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.226912
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 8 for J at pos 5
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.233509
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Sage": [{"rank": "9", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}], "Priya": [{"rank": "7", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}], "Kenji": [{"rank": "8", "suit": "hearts"}, {"rank": "9", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}]}


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.240228
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 9 for Q at pos 5
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Sage": [{"rank": "9", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}], "Priya": [{"rank": "7", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}], "Kenji": [{"rank": "8", "suit": "hearts"}, {"rank": "9", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}]}


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.245883
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.251721
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 8 for 9 at pos 0
hand_json:
[{"rank": "8", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.257284
player_id: cpu_2
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": "8", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.269988
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.276141
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped 6 for 9 at pos 3
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.282900
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 9 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.288476
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "2", "suit": "hearts"}
decision_reason: swapped 9 for 2 at pos 2
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.294137
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "8", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.299786
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 2 for 8 at pos 0
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.305080
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "9", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "9", "suit": "hearts"}], "Sage": [{"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Kenji": [{"rank": "8", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}]}


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.310686
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 3 for 7 at pos 1
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.316096
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.322103
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 5 for Q at pos 4
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.328403
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.334723
player_id: cpu_0
player_name: Diego
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped A for Q at pos 1
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.341075
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.353486
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.359043
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 2 for 5 at pos 2
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.364712
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.370144
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped 5 for J at pos 1
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.376154
player_id: cpu_0
player_name: Diego
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": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.381941
player_id: cpu_0
player_name: Diego
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped K for 9 at pos 2
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.387821
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "9", "suit": "hearts"}], "Priya": [{"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "spades"}], "Kenji": [{"rank": "5", "suit": "diamonds"}, {"rank": "8", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}]}


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.399158
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.411783
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.419431
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped K for 8 at pos 2
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.425647
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.431341
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 2 for 9 at pos 5
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.437399
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}], "Priya": [{"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "spades"}], "Kenji": [{"rank": "5", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}]}


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.443595
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "K", "suit": "clubs"}
decision_reason: swapped 4 for K at pos 1
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.450171
player_id: cpu_2
player_name: Priya
action: take_discard
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took K from discard
visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "2", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}], "Kenji": [{"rank": "5", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}]}


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.456122
player_id: cpu_2
player_name: Priya
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped K for 5 at pos 5
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.462603
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.468646
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 5 for 8 at pos 5
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.475058
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.486010
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.491566
player_id: cpu_1
player_name: Sage
action: swap
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped J for 4 at pos 3
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.497392
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.503215
player_id: cpu_2
player_name: Priya
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped A for 3 at pos 1
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.509043
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.514862
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 3 for 6 at pos 3
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.520472
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "2", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}, {"rank": "J", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}], "Priya": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "clubs"}], "Kenji": [{"rank": "5", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}]}


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.526109
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 4 for 6 at pos 3
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.531986
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.538203
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped 6 for J at pos 3
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.544482
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.556131
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 098f4ba4-9950-44fb-b350-c3d4af0afa0a
timestamp: 2026-01-24 18:51:38.562686
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped A for 5 at pos 1
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.580722
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.587053
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped A for Q at pos 2
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.593344
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.599600
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped 6 for 9 at pos 0
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.605032
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.610420
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 9 for 10 at pos 4
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.615843
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.627339
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.639307
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.644782
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 3 for 6 at pos 0
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.650384
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.655914
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 6 for 5 at pos 5
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.662050
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.674313
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "spades"}], "Diego": [{"rank": "6", "suit": "hearts"}, {"rank": "J", "suit": "hearts"}, {"rank": "9", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}]}


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.685904
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.704057
player_id: cpu_2
player_name: Diego
action: swap
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped J for 3 at pos 1
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.709785
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}], "Maya": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "spades"}], "Diego": [{"rank": "J", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "J", "suit": "hearts"}, {"rank": "9", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}]}


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.721201
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "spades"}], "Diego": [{"rank": "J", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "J", "suit": "hearts"}, {"rank": "9", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}]}


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.732923
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}], "Diego": [{"rank": "J", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "J", "suit": "hearts"}, {"rank": "9", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}]}


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.751275
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 4 for J at pos 1
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.756910
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}], "Maya": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "spades"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}, {"rank": "J", "suit": "hearts"}, {"rank": "9", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}]}


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.763059
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped K for 4 at pos 3
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.773035
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "spades"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}, {"rank": "J", "suit": "hearts"}, {"rank": "9", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "spades"}]}


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.784979
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}, {"rank": "J", "suit": "hearts"}, {"rank": "9", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "spades"}]}


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.790765
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: swapped 3 for 2 at pos 3
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.796414
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.803655
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped 2 for J at pos 3
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.809573
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.825789
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "spades"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "9", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "spades"}]}


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.832205
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 3 for 7 at pos 3
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.838254
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.844087
player_id: cpu_1
player_name: Maya
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped A for 5 at pos 5
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.850669
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.857172
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 5 for 9 at pos 4
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.866716
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}], "Maya": [{"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "clubs"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}]}


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.878429
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.884151
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 5 for 4 at pos 4
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.889909
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.903026
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.915159
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}], "Maya": [{"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "clubs"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}]}


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.921395
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "2", "suit": "clubs"}
decision_reason: swapped K for 2 at pos 4
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.927883
player_id: cpu_0
player_name: Kenji
action: take_discard
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.933655
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 2 for 5 at pos 4
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.939186
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}]}


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.950613
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Maya": [{"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "clubs"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}]}


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:38.962128
player_id: cpu_3
player_name: Sofia
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": "2", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:39.004616
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 5 for 6 at pos 2
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:39.010231
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Maya": [{"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "clubs"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}]}


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:39.022065
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "clubs"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}]}


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:39.027762
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "K", "suit": "clubs"}
decision_reason: swapped 4 for K at pos 1
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:39.033414
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "K", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "hearts"}]}


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:39.044195
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:39.049737
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 5 for 6 at pos 5
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:39.055734
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Maya": [{"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "clubs"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}]}


game_id: b701da4a-3a30-41c5-ae3e-7ae7fc42466f
timestamp: 2026-01-24 18:51:39.061504
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped 4 for J at pos 2
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.079692
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 5
card_suit: hearts
decision_reason: took 5 from discard
hand_json:
[{"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.085789
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 5 for Q at pos 0
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.091982
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "2", "suit": "spades"}, {"rank": "Q", "suit": "spades"}], "River": [{"rank": "6", "suit": "hearts"}, {"rank": "9", "suit": "spades"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.097722
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 2 for 7 at pos 5
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "2", "suit": "spades"}, {"rank": "Q", "suit": "spades"}], "River": [{"rank": "6", "suit": "hearts"}, {"rank": "9", "suit": "spades"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.107079
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.112652
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 7 for Q at pos 3
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.118125
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.123743
player_id: cpu_3
player_name: River
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 4 for 9 at pos 4
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.129479
player_id: cpu_0
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": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.140474
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.145833
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 2 for 4 at pos 0
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.151614
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.157961
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "K", "suit": "spades"}
decision_reason: swapped 4 for K at pos 1
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.164795
player_id: cpu_3
player_name: River
action: take_discard
card_rank: K
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took K from discard
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.170655
player_id: cpu_3
player_name: River
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped K for 6 at pos 0
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.176323
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "7", "suit": "spades"}], "River": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "clubs"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.182664
player_id: cpu_0
player_name: Diego
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped K for 5 at pos 0
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.188881
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.195993
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 2 for 9 at pos 4
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.201670
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.213647
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.224538
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.230049
player_id: cpu_0
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 5
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.235775
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.241605
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "K", "suit": "clubs"}
decision_reason: swapped 4 for K at pos 1
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.247196
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: took K from discard
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "River": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "clubs"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.253023
player_id: cpu_2
player_name: Sage
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped K for 7 at pos 3
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.258552
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "clubs"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.270092
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.281803
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.298983
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 3 for 4 at pos 1
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.305170
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: took 4 from discard
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "clubs"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.311451
player_id: cpu_3
player_name: River
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: swapped 4 for A at pos 2
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.318271
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: took A from discard
visible_opponents_json:
{"Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "clubs"}], "River": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.324523
player_id: cpu_0
player_name: Diego
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: swapped A for A at pos 2
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.330166
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: took A from discard
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "clubs"}], "River": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.335983
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped A for 4 at pos 1
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.341534
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.347382
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 5 for 7 at pos 5
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.353178
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: Q
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": "3", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.365053
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.377902
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.441861
player_id: cpu_2
player_name: Sage
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped A for 5 at pos 5
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.447577
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.459778
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.470873
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.500275
player_id: cpu_3
player_name: River
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 3 for 4 at pos 2
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.505844
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.511453
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 6 for 4 at pos 1
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.517183
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.528591
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "River": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.539997
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.545936
player_id: cpu_3
player_name: River
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 5 for 10 at pos 5
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.551790
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.557514
player_id: cpu_0
player_name: Diego
action: swap
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: swapped J for 3 at pos 3
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.563037
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "J", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.576256
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "J", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "River": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.588469
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.605854
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 6 for 6 at pos 4
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}]


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.611543
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "J", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.622995
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "J", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "River": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.634933
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}, {"rank": "J", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Sofia": [{"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "3", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}]}


game_id: e97d9271-9549-467c-8a6f-c7df2226bd80
timestamp: 2026-01-24 18:51:39.640605
player_id: cpu_3
player_name: River
action: discard
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: discarded 10
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.657168
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sage": [{"rank": "10", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Kenji": [{"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}], "Sofia": [{"rank": "10", "suit": "hearts"}, {"rank": "Q", "suit": "diamonds"}]}


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.662915
player_id: cpu_0
player_name: Marcus
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": "J", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sage": [{"rank": "10", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Kenji": [{"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}], "Sofia": [{"rank": "10", "suit": "hearts"}, {"rank": "Q", "suit": "diamonds"}]}


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.669062
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"Marcus": [{"rank": "4", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}], "Kenji": [{"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}], "Sofia": [{"rank": "10", "suit": "hearts"}, {"rank": "Q", "suit": "diamonds"}]}


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.674937
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 10 for Q at pos 3
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

visible_opponents_json:
{"Marcus": [{"rank": "4", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}], "Kenji": [{"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}], "Sofia": [{"rank": "10", "suit": "hearts"}, {"rank": "Q", "suit": "diamonds"}]}


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.681123
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "4", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}], "Sage": [{"rank": "10", "suit": "diamonds"}, {"rank": "10", "suit": "spades"}, {"rank": "3", "suit": "spades"}], "Sofia": [{"rank": "10", "suit": "hearts"}, {"rank": "Q", "suit": "diamonds"}]}


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.692833
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took Q from discard
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.699407
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped Q for 9 at pos 1
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.705441
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sage": [{"rank": "10", "suit": "diamonds"}, {"rank": "10", "suit": "spades"}, {"rank": "3", "suit": "spades"}], "Kenji": [{"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}], "Sofia": [{"rank": "10", "suit": "hearts"}, {"rank": "Q", "suit": "hearts"}, {"rank": "Q", "suit": "diamonds"}]}


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.711243
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped K for 5 at pos 3
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Sage": [{"rank": "10", "suit": "diamonds"}, {"rank": "10", "suit": "spades"}, {"rank": "3", "suit": "spades"}], "Kenji": [{"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}], "Sofia": [{"rank": "10", "suit": "hearts"}, {"rank": "Q", "suit": "hearts"}, {"rank": "Q", "suit": "diamonds"}]}


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.716870
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.722846
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped 5 for 10 at pos 0
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.728858
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.734827
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped 6 for 3 at pos 0
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.740608
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.746342
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 3 for 10 at pos 0
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.752048
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.757741
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped A for 4 at pos 2
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.763715
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.769316
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 4 for 10 at pos 3
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.775132
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.787753
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.799100
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.804347
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: swapped K for A at pos 2
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.809872
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took A from discard
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.816078
player_id: cpu_1
player_name: Sage
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped A for 5 at pos 0
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.821670
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Sofia": [{"rank": "3", "suit": "clubs"}, {"rank": "Q", "suit": "hearts"}, {"rank": "Q", "suit": "diamonds"}]}


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.827941
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 3 for 9 at pos 5
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.833553
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Kenji": [{"rank": "6", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.840087
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped K for Q at pos 1
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.846225
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.858007
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.864175
player_id: cpu_1
player_name: Sage
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped A for 4 at pos 3
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.870305
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.876469
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 4 for 6 at pos 0
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.882143
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.888169
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 6 for Q at pos 4
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.893979
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "A", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "Kenji": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}], "Sofia": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}]}


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.905504
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.911165
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 5 for 6 at pos 2
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.917079
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.923022
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 5 for 7 at pos 1
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.929276
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.935516
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 2 for 6 at pos 4
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.941256
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "Kenji": [{"rank": "4", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}], "Sofia": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}]}


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.948895
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: swapped A for A at pos 5
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.955336
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: took A from discard
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.960980
player_id: cpu_1
player_name: Sage
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped A for 5 at pos 2
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.967154
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.973279
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 5 for 6 at pos 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.979859
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:39.992030
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:40.003610
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 468511c8-2a8b-4662-8170-66f3725cce8e
timestamp: 2026-01-24 18:51:40.008798
player_id: cpu_1
player_name: Sage
action: discard
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: discarded 9
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.025250
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: K
card_suit: spades
decision_reason: took K from discard
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.031008
player_id: cpu_0
player_name: Diego
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped K for J at pos 0
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.036549
player_id: cpu_1
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": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Sage": [{"rank": "Q", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}], "Maya": [{"rank": "7", "suit": "diamonds"}, {"rank": "J", "suit": "diamonds"}]}


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.047758
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.053855
player_id: cpu_2
player_name: Sage
action: swap
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "K", "suit": "clubs"}
decision_reason: swapped Q for K at pos 5
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.059628
player_id: cpu_3
player_name: Maya
action: take_discard
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: took K from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.065801
player_id: cpu_3
player_name: Maya
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped K for J at pos 4
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.072337
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.084632
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.097471
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.102769
player_id: cpu_2
player_name: Sage
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped A for Q at pos 2
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.108201
player_id: cpu_3
player_name: Maya
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.119412
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "6", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}], "Sage": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "Q", "suit": "hearts"}], "Maya": [{"rank": "7", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}]}


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.125177
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "K", "suit": "diamonds"}
decision_reason: swapped 4 for K at pos 2
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.130867
player_id: cpu_1
player_name: River
action: take_discard
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took K from discard
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "Q", "suit": "hearts"}], "Maya": [{"rank": "7", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}]}


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.136391
player_id: cpu_1
player_name: River
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped K for 6 at pos 1
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.142400
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.148285
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 6 for Q at pos 5
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.154785
player_id: cpu_3
player_name: Maya
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}], "River": [{"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}], "Sage": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}]}


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.161019
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 2 for 7 at pos 2
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.166695
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.172867
player_id: cpu_0
player_name: Diego
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped A for 4 at pos 2
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.179296
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.191602
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.203791
player_id: cpu_3
player_name: Maya
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.233517
player_id: cpu_1
player_name: River
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 3 for 6 at pos 0
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.239394
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}], "River": [{"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}], "Maya": [{"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}]}


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.245229
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 5 for 7 at pos 0
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.251066
player_id: cpu_3
player_name: Maya
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}], "River": [{"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}], "Sage": [{"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}]}


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.262635
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}], "Sage": [{"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}], "Maya": [{"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}]}


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.275101
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.281070
player_id: cpu_1
player_name: River
action: swap
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 10 for 8 at pos 2
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.286726
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.297765
player_id: cpu_3
player_name: Maya
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}], "River": [{"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "10", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}], "Sage": [{"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}]}


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.303756
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped 4 for 3 at pos 1
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.309384
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 3 from discard
visible_opponents_json:
{"River": [{"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "10", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}], "Sage": [{"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}], "Maya": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}]}


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.316157
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 3 for 6 at pos 4
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.322450
player_id: cpu_1
player_name: River
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.329115
player_id: cpu_1
player_name: River
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped 6 for 10 at pos 2
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.336136
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "River": [{"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}], "Maya": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}]}


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.351829
player_id: cpu_3
player_name: Maya
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.357535
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 3 for 4 at pos 1
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.363819
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.375515
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.387195
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "River": [{"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}]}


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.392733
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 5 for 6 at pos 5
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.399245
player_id: cpu_3
player_name: Maya
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.405660
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 4 for 6 at pos 3
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.412043
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}], "Sage": [{"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}]}


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.418102
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: swapped 5 for A at pos 1
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.424177
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}]}


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.429913
player_id: cpu_1
player_name: River
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "2", "suit": "spades"}
decision_reason: swapped 6 for 2 at pos 5
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.435878
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.441685
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 2 for 5 at pos 0
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.447336
player_id: cpu_3
player_name: Maya
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.459392
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.471028
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.561690
player_id: cpu_0
player_name: Diego
action: swap
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: swapped J for 2 at pos 3
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.567433
player_id: cpu_1
player_name: River
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": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "J", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "Sage": [{"rank": "2", "suit": "spades"}, {"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}]}


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.573126
player_id: cpu_1
player_name: River
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 2 for 6 at pos 2
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.579170
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "J", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "River": [{"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}]}


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.590360
player_id: cpu_3
player_name: Maya
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "J", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "River": [{"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "6", "suit": "diamonds"}], "Sage": [{"rank": "2", "suit": "spades"}, {"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}]}


game_id: 1fe26f16-8fc7-4f6e-aedc-7c33c48cc0a3
timestamp: 2026-01-24 18:51:40.596078
player_id: cpu_3
player_name: Maya
action: discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: discarded 7
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.612743
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.624039
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.629985
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 3 for 5 at pos 5
hand_json:
[{"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.640342
player_id: cpu_2
player_name: Priya
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.646545
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 5 for 9 at pos 0
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.652235
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 9 from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.657805
player_id: cpu_3
player_name: Sage
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": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.663574
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.675257
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.680891
player_id: cpu_1
player_name: Maya
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped K for 3 at pos 2
hand_json:
[{"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.686515
player_id: cpu_2
player_name: Priya
action: take_discard
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.692174
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 3 for Q at pos 5
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.698203
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.703845
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 8 for 9 at pos 0
hand_json:
[{"rank": "8", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.709790
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}], "Priya": [{"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}], "Sage": [{"rank": "8", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "9", "suit": "clubs"}]}


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.723332
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.729377
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 4 for 8 at pos 3
hand_json:
[{"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.735212
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.741505
player_id: cpu_2
player_name: Priya
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped A for 5 at pos 0
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.747205
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "8", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.753628
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped 5 for 9 at pos 3
hand_json:
[{"rank": "8", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.759117
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}], "Priya": [{"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}], "Sage": [{"rank": "8", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "spades"}]}


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.764576
player_id: cpu_0
player_name: Diego
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped K for 6 at pos 2
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.770219
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.781541
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.787132
player_id: cpu_2
player_name: Priya
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped A for 5 at pos 3
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.792541
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "8", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.797876
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 5 for 8 at pos 0
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.803632
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.809091
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 6 for 4 at pos 5
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.815058
player_id: cpu_1
player_name: Maya
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 4 from discard
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}], "Priya": [{"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}], "Sage": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "spades"}]}


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.821125
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 4 for Q at pos 0
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.827097
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.839103
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.851424
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.857303
player_id: cpu_0
player_name: Diego
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped A for 6 at pos 5
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.864066
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.875249
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Maya": [{"rank": "4", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "spades"}]}


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.880821
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped 2 for 3 at pos 2
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.886885
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 3 from discard
visible_opponents_json:
{"Diego": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Maya": [{"rank": "4", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}], "Priya": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}]}


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.892890
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 3 for 6 at pos 1
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.898946
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.905041
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 6 for 5 at pos 0
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.910683
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Priya": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}], "Sage": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "spades"}]}


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.922847
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.928396
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped 2 for 3 at pos 5
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.934710
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.940940
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 3 for 10 at pos 5
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.946886
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.953069
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 4 for 6 at pos 0
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.959466
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Priya": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "hearts"}]}


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.965540
player_id: cpu_1
player_name: Maya
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped A for 4 at pos 0
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.972129
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.983721
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.989593
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 2 for 5 at pos 0
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:40.995387
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:41.006491
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:41.018822
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}], "Sage": [{"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "hearts"}]}


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:41.024308
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 4 for 5 at pos 1
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:41.029917
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:41.041743
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}], "Priya": [{"rank": "A", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "hearts"}]}


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:41.053643
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Priya": [{"rank": "A", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "hearts"}]}


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:41.084771
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "2", "suit": "clubs"}
decision_reason: swapped 6 for 2 at pos 2
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:41.090852
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "2", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}], "Priya": [{"rank": "A", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "hearts"}]}


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:41.096267
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 5 for 8 at pos 1
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:41.102997
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Priya": [{"rank": "A", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "hearts"}]}


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:41.114385
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}], "Sage": [{"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "hearts"}]}


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:41.126902
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:41.145549
player_id: cpu_0
player_name: Diego
action: swap
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped Q for 8 at pos 3
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}]


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:41.152045
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "Q", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Priya": [{"rank": "A", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "hearts"}]}


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:41.164414
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "Q", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}], "Sage": [{"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "3", "suit": "hearts"}]}


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:41.176856
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "Q", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "spades"}], "Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}], "Priya": [{"rank": "A", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}]}


game_id: fb9f43a5-7f7e-4d1a-8803-25160759251f
timestamp: 2026-01-24 18:51:41.182647
player_id: cpu_3
player_name: Sage
action: discard
card_rank: J
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: discarded J
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 0c1d4955-d8b0-4e9d-8d86-d58aa84b4c2a
timestamp: 2026-01-24 18:51:41.199521
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 0c1d4955-d8b0-4e9d-8d86-d58aa84b4c2a
timestamp: 2026-01-24 18:51:41.205257
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 4 for 6 at pos 5
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: 0c1d4955-d8b0-4e9d-8d86-d58aa84b4c2a
timestamp: 2026-01-24 18:51:41.210897
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "8", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


