# moves

game_id: 70ca323b-390e-42ec-a75c-346067c70d21
timestamp: 2026-01-24 23:34:18.582317
player_id: cpu_f1c04242
player_name: Sofia
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}]

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


game_id: 70ca323b-390e-42ec-a75c-346067c70d21
timestamp: 2026-01-24 23:34:20.093856
player_id: cpu_4fc1e65c
player_name: River
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 70ca323b-390e-42ec-a75c-346067c70d21
timestamp: 2026-01-24 23:34:21.573625
player_id: cpu_206529cc
player_name: Maya
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 70ca323b-390e-42ec-a75c-346067c70d21
timestamp: 2026-01-24 23:34:22.263351
player_id: cpu_206529cc
player_name: Maya
action: swap
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 8 into position 3, replaced 6
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 70ca323b-390e-42ec-a75c-346067c70d21
timestamp: 2026-01-24 23:34:23.465012
player_id: cpu_87127878
player_name: Priya
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 70ca323b-390e-42ec-a75c-346067c70d21
timestamp: 2026-01-24 23:34:24.102309
player_id: cpu_87127878
player_name: Priya
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped 6 into position 2, replaced A
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 70ca323b-390e-42ec-a75c-346067c70d21
timestamp: 2026-01-24 23:34:25.332275
player_id: cpu_e4d5546c
player_name: Sage
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took A from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: 70ca323b-390e-42ec-a75c-346067c70d21
timestamp: 2026-01-24 23:34:25.810001
player_id: cpu_e4d5546c
player_name: Sage
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped A into position 5, replaced 6
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: 70ca323b-390e-42ec-a75c-346067c70d21
timestamp: 2026-01-24 23:34:29.509973
player_id: cpu_f1c04242
player_name: Sofia
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"dsadsa": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}], "River": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Maya": [{"rank": "2", "suit": "clubs"}, {"rank": "8", "suit": "diamonds"}, {"rank": "5", "suit": "clubs"}], "Priya": [{"rank": "2", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "clubs"}]}


game_id: 70ca323b-390e-42ec-a75c-346067c70d21
timestamp: 2026-01-24 23:34:30.004173
player_id: cpu_f1c04242
player_name: Sofia
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 6 into position 0, replaced 5
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}]

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


game_id: 70ca323b-390e-42ec-a75c-346067c70d21
timestamp: 2026-01-24 23:34:31.011423
player_id: cpu_4fc1e65c
player_name: River
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 5 from discard
visible_opponents_json:
{"dsadsa": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}], "Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "Maya": [{"rank": "2", "suit": "clubs"}, {"rank": "8", "suit": "diamonds"}, {"rank": "5", "suit": "clubs"}], "Priya": [{"rank": "2", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "clubs"}]}


game_id: 70ca323b-390e-42ec-a75c-346067c70d21
timestamp: 2026-01-24 23:34:31.639087
player_id: cpu_4fc1e65c
player_name: River
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped 5 into position 0, replaced 3
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 70ca323b-390e-42ec-a75c-346067c70d21
timestamp: 2026-01-24 23:34:32.901653
player_id: cpu_206529cc
player_name: Maya
action: take_discard
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 70ca323b-390e-42ec-a75c-346067c70d21
timestamp: 2026-01-24 23:34:33.362142
player_id: cpu_206529cc
player_name: Maya
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 3 into position 3, replaced 8
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 70ca323b-390e-42ec-a75c-346067c70d21
timestamp: 2026-01-24 23:34:34.426087
player_id: cpu_87127878
player_name: Priya
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 70ca323b-390e-42ec-a75c-346067c70d21
timestamp: 2026-01-24 23:34:36.008191
player_id: cpu_e4d5546c
player_name: Sage
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: 70ca323b-390e-42ec-a75c-346067c70d21
timestamp: 2026-01-24 23:34:36.701691
player_id: cpu_e4d5546c
player_name: Sage
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 7 into position 0, replaced 7
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: 9fdb0223-6e4f-4f32-b78f-c418c474a945
timestamp: 2026-01-24 23:43:07.319566
player_id: cpu_3fa9421d
player_name: Maya
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}]

visible_opponents_json:
{"dsadsa": [{"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}], "Priya": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "hearts"}], "Marcus": [{"rank": "J", "suit": "hearts"}, {"rank": "8", "suit": "diamonds"}]}


game_id: 9fdb0223-6e4f-4f32-b78f-c418c474a945
timestamp: 2026-01-24 23:43:09.074474
player_id: cpu_27c20a1c
player_name: Priya
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"dsadsa": [{"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}], "Marcus": [{"rank": "J", "suit": "hearts"}, {"rank": "8", "suit": "diamonds"}]}


game_id: 9fdb0223-6e4f-4f32-b78f-c418c474a945
timestamp: 2026-01-24 23:43:09.640224
player_id: cpu_27c20a1c
player_name: Priya
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "K", "suit": "clubs"}
decision_reason: swapped 5 into position 3, replaced K
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"dsadsa": [{"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}], "Marcus": [{"rank": "J", "suit": "hearts"}, {"rank": "8", "suit": "diamonds"}]}


game_id: 9fdb0223-6e4f-4f32-b78f-c418c474a945
timestamp: 2026-01-24 23:43:10.705314
player_id: cpu_0a6b53ba
player_name: Marcus
action: take_discard
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: took K from discard
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 9fdb0223-6e4f-4f32-b78f-c418c474a945
timestamp: 2026-01-24 23:43:11.496275
player_id: cpu_0a6b53ba
player_name: Marcus
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped K into position 2, replaced J
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 9fdb0223-6e4f-4f32-b78f-c418c474a945
timestamp: 2026-01-24 23:43:23.297931
player_id: cpu_3fa9421d
player_name: Maya
action: draw_deck
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}]

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


game_id: 9fdb0223-6e4f-4f32-b78f-c418c474a945
timestamp: 2026-01-24 23:43:23.967994
player_id: cpu_3fa9421d
player_name: Maya
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped K into position 3, replaced 4
hand_json:
[{"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}]

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


game_id: 9fdb0223-6e4f-4f32-b78f-c418c474a945
timestamp: 2026-01-24 23:43:25.121733
player_id: cpu_27c20a1c
player_name: Priya
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 9fdb0223-6e4f-4f32-b78f-c418c474a945
timestamp: 2026-01-24 23:43:26.734248
player_id: cpu_0a6b53ba
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": "Q", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 9fdb0223-6e4f-4f32-b78f-c418c474a945
timestamp: 2026-01-24 23:43:27.245034
player_id: cpu_0a6b53ba
player_name: Marcus
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped A into position 4, replaced 8
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:48:56.159684
player_id: cpu_9b7d91dd
player_name: Maya
action: take_discard
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: took A from discard
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:48:56.928867
player_id: cpu_9b7d91dd
player_name: Maya
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped A into position 3, replaced 10
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:48:57.972912
player_id: cpu_9a44ca4e
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:48:58.630032
player_id: cpu_9a44ca4e
player_name: Diego
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 4 into position 2, replaced 9
hand_json:
[{"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:48:59.478771
player_id: cpu_605bcc03
player_name: River
action: take_discard
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: took 9 from discard
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:00.082383
player_id: cpu_605bcc03
player_name: River
action: swap
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 9 into position 3, replaced 8
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:01.102686
player_id: cpu_3fa61361
player_name: Marcus
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:05.904365
player_id: cpu_9b7d91dd
player_name: Maya
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:06.545030
player_id: cpu_9b7d91dd
player_name: Maya
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "K", "suit": "spades"}
decision_reason: swapped 7 into position 4, replaced K
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:07.472164
player_id: cpu_9a44ca4e
player_name: Diego
action: take_discard
card_rank: K
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took K from discard
hand_json:
[{"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:07.965019
player_id: cpu_9a44ca4e
player_name: Diego
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped K into position 3, replaced 7
hand_json:
[{"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:08.773817
player_id: cpu_605bcc03
player_name: River
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:09.434853
player_id: cpu_605bcc03
player_name: River
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 7 into position 0, replaced 9
hand_json:
[{"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:10.304717
player_id: cpu_3fa61361
player_name: Marcus
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:11.066194
player_id: cpu_3fa61361
player_name: Marcus
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 4 into position 5, replaced 7
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:14.892856
player_id: cpu_9b7d91dd
player_name: Maya
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:15.328114
player_id: cpu_9b7d91dd
player_name: Maya
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 3 into position 4, replaced 7
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:15.914730
player_id: cpu_9a44ca4e
player_name: Diego
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:16.367782
player_id: cpu_9a44ca4e
player_name: Diego
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: swapped 7 into position 1, replaced 2
hand_json:
[{"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:17.308579
player_id: cpu_605bcc03
player_name: River
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:18.034190
player_id: cpu_605bcc03
player_name: River
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 2 into position 3, replaced 9
hand_json:
[{"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:19.172244
player_id: cpu_3fa61361
player_name: Marcus
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:28.213772
player_id: cpu_9b7d91dd
player_name: Maya
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:28.839005
player_id: cpu_9b7d91dd
player_name: Maya
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped 2 into position 1, replaced 3
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:29.228473
player_id: cpu_9a44ca4e
player_name: Diego
action: take_discard
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:29.988215
player_id: cpu_9a44ca4e
player_name: Diego
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped 3 into position 0, replaced J
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:30.822220
player_id: cpu_605bcc03
player_name: River
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:32.387047
player_id: cpu_3fa61361
player_name: Marcus
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"adlee": [{"rank": "7", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}, {"rank": "7", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}], "Maya": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}], "Diego": [{"rank": "3", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "spades"}], "River": [{"rank": "7", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:39.564727
player_id: cpu_9b7d91dd
player_name: Maya
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:40.070172
player_id: cpu_9b7d91dd
player_name: Maya
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped A into position 0, replaced 5
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:40.666851
player_id: cpu_9a44ca4e
player_name: Diego
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:41.291115
player_id: cpu_9a44ca4e
player_name: Diego
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 5 into position 1, replaced 7
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:42.501162
player_id: cpu_605bcc03
player_name: River
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 7 from discard
visible_opponents_json:
{"adlee": [{"rank": "7", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}, {"rank": "7", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}], "Maya": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}], "Diego": [{"rank": "3", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "spades"}], "Marcus": [{"rank": "6", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}]}


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:43.150808
player_id: cpu_605bcc03
player_name: River
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "K", "suit": "hearts"}
decision_reason: swapped 7 into position 1, replaced K
hand_json:
[{"rank": "7", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:44.394250
player_id: cpu_3fa61361
player_name: Marcus
action: take_discard
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took K from discard
visible_opponents_json:
{"adlee": [{"rank": "7", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}, {"rank": "7", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}], "Maya": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}], "Diego": [{"rank": "3", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "spades"}], "River": [{"rank": "7", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:44.813388
player_id: cpu_3fa61361
player_name: Marcus
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped K into position 0, replaced 6
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:52.228030
player_id: cpu_9b7d91dd
player_name: Maya
action: take_discard
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:52.925127
player_id: cpu_9b7d91dd
player_name: Maya
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: swapped 2 into position 4, replaced 3
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:53.324162
player_id: cpu_9a44ca4e
player_name: Diego
action: take_discard
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:53.872447
player_id: cpu_9a44ca4e
player_name: Diego
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 3 into position 1, replaced 5
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:55.092180
player_id: cpu_605bcc03
player_name: River
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "7", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:55.675766
player_id: cpu_605bcc03
player_name: River
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 5 into position 0, replaced 7
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:56.979702
player_id: cpu_3fa61361
player_name: Marcus
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 812c3bd3-25e5-484c-a12e-6fe9c41338ed
timestamp: 2026-01-24 23:49:57.688812
player_id: cpu_3fa61361
player_name: Marcus
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 7 into position 4, replaced 10
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 1b563a6e-88fd-4dde-b2dc-dc366e57347b
timestamp: 2026-01-25 00:08:03.365887
player_id: cpu_77b21e65
player_name: Maya
action: take_discard
card_rank: K
card_suit: spades
decision_reason: took K from discard
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}]

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


game_id: 1b563a6e-88fd-4dde-b2dc-dc366e57347b
timestamp: 2026-01-25 00:08:03.883893
player_id: cpu_77b21e65
player_name: Maya
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped K into position 3, replaced 10
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}]

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


game_id: 1b563a6e-88fd-4dde-b2dc-dc366e57347b
timestamp: 2026-01-25 00:08:04.723651
player_id: cpu_26141189
player_name: Priya
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "\u2605", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 1b563a6e-88fd-4dde-b2dc-dc366e57347b
timestamp: 2026-01-25 00:08:05.229198
player_id: cpu_26141189
player_name: Priya
action: swap
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "K", "suit": "diamonds"}
decision_reason: swapped 9 into position 3, replaced K
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "\u2605", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 1b563a6e-88fd-4dde-b2dc-dc366e57347b
timestamp: 2026-01-25 00:08:06.206434
player_id: cpu_5fa3db12
player_name: River
action: take_discard
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took K from discard
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}]

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


game_id: 1b563a6e-88fd-4dde-b2dc-dc366e57347b
timestamp: 2026-01-25 00:08:06.883593
player_id: cpu_5fa3db12
player_name: River
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped K into position 5, replaced 7
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 1b563a6e-88fd-4dde-b2dc-dc366e57347b
timestamp: 2026-01-25 00:08:07.956669
player_id: cpu_aaef99b6
player_name: Sage
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "\u2605", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"RUDY TOOTIE": [{"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}], "Maya": [{"rank": "7", "suit": "clubs"}, {"rank": "K", "suit": "spades"}], "Priya": [{"rank": "9", "suit": "spades"}, {"rank": "9", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}], "River": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 1b563a6e-88fd-4dde-b2dc-dc366e57347b
timestamp: 2026-01-25 00:08:31.366760
player_id: cpu_77b21e65
player_name: Maya
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}]

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


game_id: 1b563a6e-88fd-4dde-b2dc-dc366e57347b
timestamp: 2026-01-25 00:08:31.799057
player_id: cpu_77b21e65
player_name: Maya
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 6 into position 1, replaced 7
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}]

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


game_id: 1b563a6e-88fd-4dde-b2dc-dc366e57347b
timestamp: 2026-01-25 00:08:32.901859
player_id: cpu_26141189
player_name: Priya
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "\u2605", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 1b563a6e-88fd-4dde-b2dc-dc366e57347b
timestamp: 2026-01-25 00:08:33.544247
player_id: cpu_26141189
player_name: Priya
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 7 into position 0, replaced 9
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "\u2605", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 1b563a6e-88fd-4dde-b2dc-dc366e57347b
timestamp: 2026-01-25 00:08:34.630042
player_id: cpu_5fa3db12
player_name: River
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 1b563a6e-88fd-4dde-b2dc-dc366e57347b
timestamp: 2026-01-25 00:08:35.147241
player_id: cpu_5fa3db12
player_name: River
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped 4 into position 4, replaced 3
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 1b563a6e-88fd-4dde-b2dc-dc366e57347b
timestamp: 2026-01-25 00:08:35.967017
player_id: cpu_aaef99b6
player_name: Sage
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "\u2605", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 1b563a6e-88fd-4dde-b2dc-dc366e57347b
timestamp: 2026-01-25 00:08:36.447393
player_id: cpu_aaef99b6
player_name: Sage
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "\u2605", "suit": "hearts"}
decision_reason: swapped 3 into position 3, replaced ★
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:39.947984
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "3", "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:
{"Diego": [{"rank": "4", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}], "Maya": [{"rank": "3", "suit": "diamonds"}, {"rank": "9", "suit": "diamonds"}], "Sage": [{"rank": "J", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}]}


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:39.953352
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 4 for 5 at pos 1
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "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:
{"Diego": [{"rank": "4", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}], "Maya": [{"rank": "3", "suit": "diamonds"}, {"rank": "9", "suit": "diamonds"}], "Sage": [{"rank": "J", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}]}


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:39.962947
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:39.974834
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:39.980496
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 2 for 9 at pos 3
hand_json:
[{"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:39.985858
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:39.990996
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 7 for J at pos 2
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:39.996469
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "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:
{"Diego": [{"rank": "4", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}], "Maya": [{"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "7", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}]}


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.001700
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped 7 for 10 at pos 0
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "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:
{"Diego": [{"rank": "4", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}], "Maya": [{"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "7", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}]}


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.007222
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.012718
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 2 for 4 at pos 1
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.018396
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.023779
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped 4 for J at pos 0
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.029412
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.035369
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 5 for 7 at pos 2
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.041188
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "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:
{"Diego": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "spades"}], "Maya": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}]}


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.047076
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 7 for Q at pos 3
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.053033
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.064721
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.070465
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: swapped 8 for A at pos 1
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.076428
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took A from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.082421
player_id: cpu_3
player_name: Sage
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped A for 3 at pos 1
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.088628
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.094608
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped 3 for 3 at pos 2
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.100697
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 3 from discard
visible_opponents_json:
{"Priya": [{"rank": "7", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Maya": [{"rank": "4", "suit": "diamonds"}, {"rank": "8", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}]}


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.106743
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "2", "suit": "hearts"}
decision_reason: swapped 3 for 2 at pos 4
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.112891
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.118561
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 2 for 8 at pos 1
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.124444
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.136443
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.142546
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 5 for 7 at pos 0
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.148293
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.154299
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 7 for 8 at pos 0
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.159991
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.168420
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: swapped 8 for A at pos 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.174274
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: A
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took A from discard
visible_opponents_json:
{"Priya": [{"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "Maya": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "8", "suit": "hearts"}]}


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.180119
player_id: cpu_3
player_name: Sage
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped A for 5 at pos 2
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.185844
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.191531
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped 5 for 10 at pos 4
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.197463
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.203336
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 7 for 6 at pos 3
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.209032
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.214808
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 6 for 8 at pos 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.220870
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: 2874798b-898f-40df-adb7-30c004408d8e
timestamp: 2026-01-25 00:08:40.226897
player_id: cpu_3
player_name: Sage
action: discard
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: discarded 9
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.244572
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: clubs
decision_reason: took 6 from discard
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.250120
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 6 for Q at pos 1
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.255651
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: Q
card_suit: hearts
decision_reason: took Q from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.261434
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped Q for 10 at pos 5
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.267365
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Sofia": [{"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}], "Marcus": [{"rank": "Q", "suit": "spades"}, {"rank": "9", "suit": "hearts"}, {"rank": "Q", "suit": "hearts"}], "River": [{"rank": "5", "suit": "diamonds"}, {"rank": "9", "suit": "clubs"}]}


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.273156
player_id: cpu_2
player_name: Diego
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped A for 8 at pos 5
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Sofia": [{"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}], "Marcus": [{"rank": "Q", "suit": "spades"}, {"rank": "9", "suit": "hearts"}, {"rank": "Q", "suit": "hearts"}], "River": [{"rank": "5", "suit": "diamonds"}, {"rank": "9", "suit": "clubs"}]}


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.280489
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
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": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.286792
player_id: cpu_3
player_name: River
action: swap
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped 8 for 9 at pos 5
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.293025
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.304640
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 9 from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.310655
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 9 for 7 at pos 1
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.316527
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Sofia": [{"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}], "Marcus": [{"rank": "9", "suit": "diamonds"}, {"rank": "Q", "suit": "spades"}, {"rank": "9", "suit": "hearts"}, {"rank": "Q", "suit": "hearts"}], "River": [{"rank": "5", "suit": "diamonds"}, {"rank": "8", "suit": "spades"}]}


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.322288
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "K", "suit": "hearts"}
decision_reason: swapped 7 for K at pos 2
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Sofia": [{"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}], "Marcus": [{"rank": "9", "suit": "diamonds"}, {"rank": "Q", "suit": "spades"}, {"rank": "9", "suit": "hearts"}, {"rank": "Q", "suit": "hearts"}], "River": [{"rank": "5", "suit": "diamonds"}, {"rank": "8", "suit": "spades"}]}


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.328183
player_id: cpu_3
player_name: River
action: take_discard
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took K from discard
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.334253
player_id: cpu_3
player_name: River
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped K for 8 at pos 5
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.340076
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "9", "suit": "diamonds"}, {"rank": "Q", "suit": "spades"}, {"rank": "9", "suit": "hearts"}, {"rank": "Q", "suit": "hearts"}], "Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "5", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}]}


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.345890
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 3 for 7 at pos 5
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.352099
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.358086
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 7 for Q at pos 2
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.363817
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.369916
player_id: cpu_2
player_name: Diego
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped A for 7 at pos 2
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.375699
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.381549
player_id: cpu_3
player_name: River
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 7 for 8 at pos 2
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.387183
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.398889
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.404789
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 5 for Q at pos 5
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.410624
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.422558
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 3
card_suit: clubs
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": "7", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.428607
player_id: cpu_3
player_name: River
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 3 for 7 at pos 2
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.434568
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 7 from discard
visible_opponents_json:
{"Marcus": [{"rank": "9", "suit": "diamonds"}, {"rank": "7", "suit": "hearts"}, {"rank": "9", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}], "Diego": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "5", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}]}


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.440914
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: swapped 7 for A at pos 2
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.447194
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: A
card_suit: spades
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took A from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.453044
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped A for 9 at pos 1
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.459023
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "spades"}, {"rank": "3", "suit": "spades"}], "Marcus": [{"rank": "A", "suit": "spades"}, {"rank": "7", "suit": "hearts"}, {"rank": "9", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}], "River": [{"rank": "5", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}]}


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.465205
player_id: cpu_2
player_name: Diego
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: swapped K for A at pos 2
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.471132
player_id: cpu_3
player_name: River
action: take_discard
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took A from discard
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.477042
player_id: cpu_3
player_name: River
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped A for 5 at pos 1
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.483413
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.489540
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 5 for 7 at pos 2
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.495824
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.501780
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 7 for 9 at pos 4
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.507883
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.514255
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped 2 for A at pos 5
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.520447
player_id: cpu_3
player_name: River
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took A from discard
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.526754
player_id: cpu_3
player_name: River
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped A for 6 at pos 4
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.533211
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.541800
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 6 for Q at pos 4
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.548107
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.554037
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 7 for J at pos 3
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.560320
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.566696
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 2 for Q at pos 3
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.572798
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.578515
player_id: cpu_3
player_name: River
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped K for 3 at pos 2
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.584430
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.590470
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 3 for 6 at pos 3
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.596533
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.602540
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 6 for 7 at pos 2
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.608751
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.614758
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 7 for 4 at pos 4
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.620529
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.626452
player_id: cpu_3
player_name: River
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 4 for 8 at pos 3
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.632542
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.638511
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 6 for 5 at pos 0
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.644444
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.650613
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 5 for 7 at pos 3
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.656777
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.663100
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped 7 for 3 at pos 0
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.669247
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 1fb3755d-5296-46c5-bd9f-8eeaa41fb3d5
timestamp: 2026-01-25 00:08:40.675341
player_id: cpu_3
player_name: River
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 3 for 4 at pos 3
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.692412
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.698375
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 4 for 8 at pos 5
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.704132
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.710082
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped A for 3 at pos 4
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.716030
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "8", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.721850
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped 3 for 9 at pos 2
hand_json:
[{"rank": "8", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.727620
player_id: cpu_3
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": "8", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.733119
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 9 for 7 at pos 3
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.739255
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.751023
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.756804
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "2", "suit": "hearts"}
decision_reason: swapped 6 for 2 at pos 1
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.762468
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "8", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.770115
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped 2 for 3 at pos 2
hand_json:
[{"rank": "8", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.778493
player_id: cpu_3
player_name: Diego
action: take_discard
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.787677
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 3 for 9 at pos 1
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.801844
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "6", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "Kenji": [{"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Diego": [{"rank": "8", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "9", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}]}


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.807902
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped 6 for J at pos 1
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.813551
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.825427
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.830932
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 7 for 8 at pos 0
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.836950
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.843045
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 7 for 9 at pos 3
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.849428
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.861637
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Kenji": [{"rank": "7", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Diego": [{"rank": "8", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "7", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}]}


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.874221
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.880206
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped Q for Q at pos 4
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.886151
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.892185
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 3 for Q at pos 4
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.898876
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "6", "suit": "spades"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "Kenji": [{"rank": "7", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "Q", "suit": "clubs"}], "Diego": [{"rank": "8", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}]}


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.905228
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 3 for 6 at pos 1
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.911347
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Marcus": [{"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Kenji": [{"rank": "7", "suit": "hearts"}, {"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "Q", "suit": "clubs"}], "Diego": [{"rank": "8", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "7", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "diamonds"}]}


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.917507
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 6 for 5 at pos 0
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.923375
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.929634
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 5 for Q at pos 4
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.936029
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.944456
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 7 for 8 at pos 0
hand_json:
[{"rank": "7", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.950703
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.957049
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped 5 for J at pos 3
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.965187
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.971921
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 4 for 6 at pos 0
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.978390
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.984904
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 6 for 7 at pos 0
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.990802
player_id: cpu_3
player_name: Diego
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "7", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:40.996989
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "2", "suit": "spades"}
decision_reason: swapped 7 for 2 at pos 2
hand_json:
[{"rank": "7", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:41.003102
player_id: cpu_0
player_name: Marcus
action: take_discard
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:41.009143
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 2 for 5 at pos 3
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:41.015315
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:41.021514
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped 5 for 10 at pos 3
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:41.028173
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 851b595e-44bf-470a-968b-26b55e467170
timestamp: 2026-01-25 00:08:41.033955
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped Q for 5 at pos 1
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.052197
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"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": false}, {"rank": "4", "suit": "hearts", "face_up": false}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.058032
player_id: cpu_0
player_name: River
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped K for 4 at pos 2
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.063693
player_id: cpu_1
player_name: Sofia
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": "8", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.069498
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 4 for Q at pos 1
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.075332
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.081324
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 3 for 6 at pos 3
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.087016
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.093079
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "K", "suit": "hearts"}
decision_reason: swapped 6 for K at pos 2
hand_json:
[{"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.099168
player_id: cpu_0
player_name: River
action: take_discard
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took K from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.107137
player_id: cpu_0
player_name: River
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped K for 7 at pos 1
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.113198
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.125855
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.132074
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 4 for 9 at pos 5
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.138164
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 9 from discard
hand_json:
[{"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.144007
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped 9 for 4 at pos 3
hand_json:
[{"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.150181
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.156487
player_id: cpu_0
player_name: River
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: swapped 4 for A at pos 0
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.162526
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took A from discard
visible_opponents_json:
{"River": [{"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Priya": [{"rank": "3", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "spades"}], "Marcus": [{"rank": "9", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "9", "suit": "hearts"}, {"rank": "6", "suit": "spades"}]}


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.168724
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped A for 4 at pos 1
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.174850
player_id: cpu_2
player_name: Priya
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.180690
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 4 for 5 at pos 2
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.186765
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.192405
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped 5 for 9 at pos 0
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.198576
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.211163
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.222610
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.277528
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 2 for 4 at pos 2
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.283254
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 4 from discard
visible_opponents_json:
{"River": [{"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Sofia": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Priya": [{"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "spades"}]}


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.288715
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 4 for 9 at pos 3
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.294390
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Priya": [{"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "spades"}], "Marcus": [{"rank": "5", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}, {"rank": "6", "suit": "spades"}]}


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.306094
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}], "Priya": [{"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "spades"}], "Marcus": [{"rank": "5", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}, {"rank": "6", "suit": "spades"}]}


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.317394
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.323105
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 2 for 4 at pos 5
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.329083
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.335185
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 4 for 6 at pos 2
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.343623
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Sofia": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "Priya": [{"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Marcus": [{"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "6", "suit": "spades"}]}


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.349402
player_id: cpu_0
player_name: River
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 6 for 4 at pos 5
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.354861
player_id: cpu_1
player_name: Sofia
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:
{"River": [{"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}], "Priya": [{"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Marcus": [{"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "6", "suit": "spades"}]}


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.360599
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 4 for J at pos 4
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.366521
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.372246
player_id: cpu_2
player_name: Priya
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: swapped A for 3 at pos 0
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.378274
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.384185
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 3 for 6 at pos 5
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.390155
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.396676
player_id: cpu_0
player_name: River
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 6 for 7 at pos 4
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.402973
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.408935
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 7 for 8 at pos 0
hand_json:
[{"rank": "7", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.414744
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.427614
player_id: cpu_3
player_name: Marcus
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 5f8bdfe5-333b-43dc-bcbf-8098e52053ee
timestamp: 2026-01-25 00:08:41.433423
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 3 for 5 at pos 0
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.450112
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.456230
player_id: cpu_0
player_name: River
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 4 for 6 at pos 3
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.461940
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "J", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.467676
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped 6 for J at pos 0
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.473278
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.479227
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 5 for 10 at pos 5
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.485374
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 10 from discard
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.491427
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: swapped 10 for A at pos 0
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.497665
player_id: cpu_0
player_name: River
action: take_discard
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took A from discard
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.503478
player_id: cpu_0
player_name: River
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped A for 4 at pos 3
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.509618
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.515529
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped 4 for J at pos 5
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.521553
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.533364
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.539153
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 7 for 10 at pos 0
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.545187
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.551283
player_id: cpu_0
player_name: River
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 3 for 5 at pos 4
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.560081
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.566579
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 5 for 6 at pos 0
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.572556
player_id: cpu_2
player_name: Priya
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 6 from discard
visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Sage": [{"rank": "7", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "10", "suit": "clubs"}]}


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.578471
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 6 for 7 at pos 0
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.584425
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.589891
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped 7 for 10 at pos 3
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.595378
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.604525
player_id: cpu_0
player_name: River
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped 2 for 3 at pos 4
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.610142
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.616005
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 3 for 5 at pos 0
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.621538
player_id: cpu_2
player_name: Priya
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.627126
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped 5 for A at pos 2
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.632902
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took A from discard
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.638660
player_id: cpu_3
player_name: Sage
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped A for 7 at pos 0
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.644363
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.650189
player_id: cpu_0
player_name: River
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 7 for 6 at pos 0
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.656282
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.662335
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 6 for 8 at pos 2
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.669461
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.681420
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 4
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": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.687266
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 4 for 7 at pos 3
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.692906
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.698753
player_id: cpu_0
player_name: River
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 7 for 9 at pos 2
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.704933
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.710733
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 4 for 6 at pos 2
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.716358
player_id: cpu_2
player_name: Priya
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 6 from discard
visible_opponents_json:
{"River": [{"rank": "7", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "7", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}], "Marcus": [{"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}]}


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.722042
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 6 for 8 at pos 3
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.729969
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 147114b1-8c48-4ff7-9d24-53b8cd206de2
timestamp: 2026-01-25 00:08:41.735817
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 2 for 4 at pos 3
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.752687
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.758545
player_id: cpu_0
player_name: River
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped 2 for J at pos 2
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.764402
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took J from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.770237
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped J for 9 at pos 1
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.776140
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.781986
player_id: cpu_2
player_name: Sage
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped A for 7 at pos 4
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.787661
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.793505
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped 7 for J at pos 2
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.799596
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.805592
player_id: cpu_0
player_name: River
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 5 for 6 at pos 4
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.811681
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.817455
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped 6 for J at pos 1
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.823634
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.834918
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.846740
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.852595
player_id: cpu_0
player_name: River
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 3 for 5 at pos 4
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.858221
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.863878
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped 5 for J at pos 4
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.869133
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "Sofia": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "spades"}], "Kenji": [{"rank": "7", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.881142
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 6 from discard
visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "Sofia": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}]}


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.886987
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 6 for 7 at pos 2
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.892808
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.902623
player_id: cpu_0
player_name: River
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped 4 for 10 at pos 5
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.908657
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.920655
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Sofia": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "spades"}], "Kenji": [{"rank": "6", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.932846
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.938676
player_id: cpu_3
player_name: Kenji
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": "5", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.944482
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.950517
player_id: cpu_0
player_name: River
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 5 for 8 at pos 3
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.956371
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Kenji": [{"rank": "6", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.967874
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Sofia": [{"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "spades"}], "Kenji": [{"rank": "6", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.978967
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.984534
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "K", "suit": "hearts"}
decision_reason: swapped 4 for K at pos 1
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.989985
player_id: cpu_0
player_name: River
action: take_discard
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took K from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:41.995722
player_id: cpu_0
player_name: River
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped K for 5 at pos 3
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.001118
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 5 from discard
visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Kenji": [{"rank": "4", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.006756
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 5 for 7 at pos 0
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.012417
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 7 from discard
visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Sofia": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "spades"}], "Kenji": [{"rank": "4", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.018032
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 7 for 8 at pos 0
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.023618
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.029563
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 10 for 5 at pos 0
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.035239
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.040983
player_id: cpu_0
player_name: River
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 5 for 4 at pos 0
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.046664
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.052291
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 4 for 6 at pos 1
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.057907
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.063649
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 6 for 7 at pos 0
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.069229
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.074809
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped 7 for 10 at pos 0
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.080782
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.093464
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.105007
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.110830
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 2 for 6 at pos 0
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.116573
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.122367
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 6 for 7 at pos 0
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.128156
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 7 from discard
visible_opponents_json:
{"Sofia": [{"rank": "5", "suit": "hearts"}, {"rank": "4", "suit": "hearts"}, {"rank": "5", "suit": "spades"}], "Sage": [{"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Kenji": [{"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.133970
player_id: cpu_0
player_name: River
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: swapped 7 for A at pos 1
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.139724
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took A from discard
visible_opponents_json:
{"River": [{"rank": "5", "suit": "diamonds"}, {"rank": "7", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Sage": [{"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}], "Kenji": [{"rank": "6", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}]}


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.145533
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped A for 5 at pos 0
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.151408
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.157091
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 5 for 9 at pos 1
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.162822
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 31dda5a1-cf71-401c-9098-ce0ae46b3758
timestamp: 2026-01-25 00:08:42.168622
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 6 for 7 at pos 3
hand_json:
[{"rank": "6", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 3dbffeed-730f-4bc9-b064-15532493f293
timestamp: 2026-01-25 00:08:42.186923
player_id: cpu_0
player_name: Sage
action: take_discard
card_rank: A
card_suit: spades
decision_reason: took A from discard
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 3dbffeed-730f-4bc9-b064-15532493f293
timestamp: 2026-01-25 00:08:42.192817
player_id: cpu_0
player_name: Sage
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped A for 4 at pos 1
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: 3dbffeed-730f-4bc9-b064-15532493f293
timestamp: 2026-01-25 00:08:42.198270
player_id: cpu_1
player_name: Kenji
action: take_discard
card_rank: 4
card_suit: hearts
decision_reason: took 4 from discard
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}]

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


game_id: 3dbffeed-730f-4bc9-b064-15532493f293
timestamp: 2026-01-25 00:08:42.204104
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 4 for 8 at pos 0
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}]

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


game_id: 3dbffeed-730f-4bc9-b064-15532493f293
timestamp: 2026-01-25 00:08:42.209906
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: 8
card_suit: clubs
decision_reason: took 8 from discard
hand_json:
[{"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

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


game_id: 3dbffeed-730f-4bc9-b064-15532493f293
timestamp: 2026-01-25 00:08:42.215921
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped 8 for 3 at pos 5
hand_json:
[{"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


