# moves

game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.085262
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.091156
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 8 for 7 at pos 0
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.097244
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.103107
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 7 for 5 at pos 2
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.109191
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.115110
player_id: cpu_3
player_name: Marcus
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": "9", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.120897
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.126960
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped J for J at pos 4
hand_json:
[{"rank": "3", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.133223
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.139752
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 8 for 4 at pos 5
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": true}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.146136
player_id: cpu_2
player_name: Diego
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": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.152244
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 4 for 7 at pos 2
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.158365
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.164294
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 7 for 9 at pos 0
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.170576
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.176429
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped 10 for 3 at pos 0
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.182872
player_id: cpu_1
player_name: Maya
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": true}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.188894
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: swapped 3 for A at pos 4
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": true}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.194857
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.200683
player_id: cpu_2
player_name: Diego
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped K for 7 at pos 5
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.206605
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: 79704a0a-91e6-46be-a558-fe86191fa9e7
timestamp: 2026-01-25 00:10:26.212709
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 7 for 8 at pos 2
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.232012
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.238131
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 3 for 6 at pos 3
hand_json:
[{"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.244632
player_id: cpu_1
player_name: River
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "clubs"}, {"rank": "10", "suit": "clubs"}], "Sofia": [{"rank": "8", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}]}


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.250723
player_id: cpu_1
player_name: River
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 6 for 8 at pos 5
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "clubs"}, {"rank": "10", "suit": "clubs"}], "Sofia": [{"rank": "8", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}]}


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.257068
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}], "Sofia": [{"rank": "8", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}]}


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.263390
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped 8 for 10 at pos 5
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}], "Sofia": [{"rank": "8", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}]}


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.269997
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.282678
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.289056
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 4 for Q at pos 5
hand_json:
[{"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.295153
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.301200
player_id: cpu_1
player_name: River
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 5 for 6 at pos 5
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.307339
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}], "Sofia": [{"rank": "8", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}]}


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.313364
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 6 for 8 at pos 5
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}], "Sofia": [{"rank": "8", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}]}


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.319427
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.325895
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 8 for 5 at pos 4
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.332163
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.338262
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 5 for 4 at pos 4
hand_json:
[{"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.344371
player_id: cpu_1
player_name: River
action: take_discard
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.350348
player_id: cpu_1
player_name: River
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 4 for 5 at pos 5
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.356572
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.362556
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 5 for 7 at pos 4
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.368688
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.374886
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "K", "suit": "clubs"}
decision_reason: swapped 7 for K at pos 2
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.380696
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took K from discard
hand_json:
[{"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.386624
player_id: cpu_0
player_name: Diego
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped K for 5 at pos 4
hand_json:
[{"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.392556
player_id: cpu_1
player_name: River
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.398450
player_id: cpu_1
player_name: River
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped 5 for 4 at pos 2
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.404795
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.410914
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 4 for 6 at pos 5
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.416993
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.424297
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 6 for 8 at pos 1
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.430404
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.442547
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.448602
player_id: cpu_1
player_name: River
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "K", "suit": "diamonds"}
decision_reason: swapped A for K at pos 3
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.454413
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took K from discard
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.460246
player_id: cpu_2
player_name: Sage
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped K for 5 at pos 1
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.466006
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.477824
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: took 7 from discard
visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "clubs"}, {"rank": "4", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "7", "suit": "hearts"}, {"rank": "8", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.484053
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: swapped 7 for A at pos 0
hand_json:
[{"rank": "7", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.490200
player_id: cpu_1
player_name: River
action: take_discard
card_rank: A
card_suit: spades
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: took A from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.495849
player_id: cpu_1
player_name: River
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped A for 5 at pos 2
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.502294
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.508128
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 5 for 8 at pos 2
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.514332
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "7", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}, {"rank": "A", "suit": "clubs"}, {"rank": "4", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}]}


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.520434
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 6 for 8 at pos 4
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.526464
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.539020
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.545305
player_id: cpu_1
player_name: River
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 3 for 4 at pos 5
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.551327
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.557338
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 4 for 5 at pos 2
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.563350
player_id: cpu_3
player_name: Sofia
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.572825
player_id: cpu_3
player_name: Sofia
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 5 for 7 at pos 2
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.578615
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 7 from discard
visible_opponents_json:
{"River": [{"rank": "A", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}], "Sage": [{"rank": "K", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}], "Sofia": [{"rank": "6", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}]}


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.584746
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 7 for 9 at pos 1
hand_json:
[{"rank": "7", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.590738
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.602530
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.608368
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped 6 for J at pos 0
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.614209
player_id: cpu_3
player_name: Sofia
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 258218d0-c864-419b-ac85-80f13b05288c
timestamp: 2026-01-25 00:10:26.622386
player_id: cpu_3
player_name: Sofia
action: discard
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: discarded 9
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.639804
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.645769
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 7 for 10 at pos 2
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.651555
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.657387
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 4 for 7 at pos 3
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.663056
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.674466
player_id: cpu_3
player_name: Maya
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.689562
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.695628
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 6 for 7 at pos 2
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.701263
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.712708
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.723977
player_id: cpu_3
player_name: Maya
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.730339
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 6 for 4 at pos 1
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.736632
player_id: cpu_0
player_name: Marcus
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.742318
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 4 for 6 at pos 2
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.748232
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Marcus": [{"rank": "4", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}], "Sage": [{"rank": "A", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}], "Maya": [{"rank": "6", "suit": "diamonds"}, {"rank": "5", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}]}


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.757814
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "K", "suit": "spades"}
decision_reason: swapped 6 for K at pos 5
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.763826
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: K
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took K from discard
visible_opponents_json:
{"Marcus": [{"rank": "4", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}], "Diego": [{"rank": "3", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "6", "suit": "diamonds"}, {"rank": "5", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}]}


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.769869
player_id: cpu_2
player_name: Sage
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped K for 5 at pos 4
hand_json:
[{"rank": "4", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.776095
player_id: cpu_3
player_name: Maya
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": "2", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.782047
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "2", "suit": "spades"}
decision_reason: swapped 5 for 2 at pos 5
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.788184
player_id: cpu_0
player_name: Marcus
action: take_discard
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.794096
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 2 for 5 at pos 4
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.800262
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.806191
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 9 for Q at pos 4
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.812095
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.823900
player_id: cpu_3
player_name: Maya
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.829927
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 8 for 7 at pos 3
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.835453
player_id: cpu_0
player_name: Marcus
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.840965
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped 7 for 3 at pos 5
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.846883
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.853073
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "K", "suit": "clubs"}
decision_reason: swapped 3 for K at pos 0
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.858908
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took K from discard
visible_opponents_json:
{"Marcus": [{"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "7", "suit": "clubs"}], "Diego": [{"rank": "3", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}, {"rank": "9", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}], "Maya": [{"rank": "6", "suit": "diamonds"}, {"rank": "5", "suit": "clubs"}, {"rank": "8", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}]}


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.864904
player_id: cpu_2
player_name: Sage
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: swapped K for A at pos 2
hand_json:
[{"rank": "4", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.871018
player_id: cpu_3
player_name: Maya
action: take_discard
card_rank: A
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took A from discard
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.877027
player_id: cpu_3
player_name: Maya
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped A for 8 at pos 3
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.882922
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.895532
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.907794
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.913636
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 7 for 5 at pos 1
hand_json:
[{"rank": "4", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.919372
player_id: cpu_3
player_name: Maya
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.925721
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 5 for 6 at pos 1
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.931849
player_id: cpu_0
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Diego": [{"rank": "3", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}, {"rank": "9", "suit": "hearts"}, {"rank": "6", "suit": "hearts"}], "Sage": [{"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "spades"}], "Maya": [{"rank": "5", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}]}


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.937859
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 6 for 7 at pos 5
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.946459
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 7 from discard
visible_opponents_json:
{"Marcus": [{"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}], "Sage": [{"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "spades"}], "Maya": [{"rank": "5", "suit": "spades"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}]}


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.952206
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 7 for 9 at pos 4
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.958326
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.964450
player_id: cpu_2
player_name: Sage
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped A for 7 at pos 1
hand_json:
[{"rank": "4", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.971027
player_id: cpu_3
player_name: Maya
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.977005
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "2", "suit": "hearts"}
decision_reason: swapped 7 for 2 at pos 0
hand_json:
[{"rank": "7", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.982956
player_id: cpu_0
player_name: Marcus
action: take_discard
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.988749
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 2 for 6 at pos 5
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:26.996041
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:27.002375
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 6 for 6 at pos 2
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:27.008620
player_id: cpu_2
player_name: Sage
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": "4", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}]

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


game_id: 2a6e590f-b8b9-4ea2-a5cb-42705333e34d
timestamp: 2026-01-25 00:10:27.014484
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped 6 for 4 at pos 5
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.032898
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: 3
card_suit: diamonds
decision_reason: took 3 from discard
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.038958
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 3 for 7 at pos 0
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.045705
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: 7
card_suit: diamonds
decision_reason: took 7 from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.052254
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped 7 for 10 at pos 2
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.058465
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.065048
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped K for 9 at pos 3
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.071427
player_id: cpu_3
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": "spades", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.077542
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 2 for 5 at pos 4
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.083939
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.096273
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.102511
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 4 for 7 at pos 2
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.108543
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.120916
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.134802
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "4", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}], "Marcus": [{"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "spades"}]}


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.153083
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 2 for 4 at pos 2
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.159434
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}], "Diego": [{"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "spades"}]}


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.165654
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: swapped 5 for A at pos 5
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.172176
player_id: cpu_3
player_name: Diego
action: take_discard
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: took A from discard
visible_opponents_json:
{"Sofia": [{"rank": "3", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}], "Marcus": [{"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}]}


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.178590
player_id: cpu_3
player_name: Diego
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped A for 3 at pos 0
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.185138
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: took 3 from discard
visible_opponents_json:
{"Sage": [{"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}], "Marcus": [{"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "spades"}]}


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.191506
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "K", "suit": "spades"}
decision_reason: swapped 3 for K at pos 3
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.198011
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: K
card_suit: spades
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: took K from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.204347
player_id: cpu_1
player_name: Sage
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped K for A at pos 4
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.210683
player_id: cpu_2
player_name: Marcus
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: took A from discard
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.216713
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped A for 5 at pos 2
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.222768
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.228849
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 4 for 6 at pos 3
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.234717
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.246489
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.259110
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.265419
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped K for 5 at pos 5
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.271305
player_id: cpu_3
player_name: Diego
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.277261
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped 5 for J at pos 1
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.283354
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}], "Marcus": [{"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "spades"}]}


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.296947
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "3", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}], "Marcus": [{"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "spades"}]}


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.309400
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.352248
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 6 for 10 at pos 3
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.358363
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "3", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "spades"}]}


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.364288
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 7 for 7 at pos 4
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.370164
player_id: cpu_3
player_name: Diego
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 7 from discard
visible_opponents_json:
{"Sofia": [{"rank": "3", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "clubs"}], "Sage": [{"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "Marcus": [{"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}]}


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.376464
player_id: cpu_3
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 2
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.382537
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Sage": [{"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "Marcus": [{"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}, {"rank": "7", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "spades"}]}


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.390405
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped 6 for 3 at pos 4
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.396460
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.402427
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 3 for 6 at pos 3
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.408941
player_id: cpu_2
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.415169
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 6 for 7 at pos 4
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.421269
player_id: cpu_3
player_name: Diego
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.427363
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 7 for Q at pos 5
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.433269
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.439293
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 3 for 6 at pos 4
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.445026
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.451426
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "2", "suit": "hearts"}
decision_reason: swapped 6 for 2 at pos 5
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.457431
player_id: cpu_2
player_name: Marcus
action: take_discard
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 006837c0-a0bc-4921-bd90-bd197c418485
timestamp: 2026-01-25 00:10:27.463690
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 2 for 6 at pos 4
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.480494
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "9", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}], "Sofia": [{"rank": "4", "suit": "clubs"}, {"rank": "Q", "suit": "spades"}], "Marcus": [{"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}]}


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.486499
player_id: cpu_0
player_name: Diego
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped A for 8 at pos 4
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Kenji": [{"rank": "9", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}], "Sofia": [{"rank": "4", "suit": "clubs"}, {"rank": "Q", "suit": "spades"}], "Marcus": [{"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}]}


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.492421
player_id: cpu_1
player_name: Kenji
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.504211
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took Q from discard
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.509844
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped Q for 9 at pos 0
hand_json:
[{"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.515750
player_id: cpu_3
player_name: Marcus
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.528162
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.534371
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 6 for Q at pos 5
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.540207
player_id: cpu_1
player_name: Kenji
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.547680
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 6 for 9 at pos 0
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.553892
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.560321
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 2 for Q at pos 0
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.566563
player_id: cpu_3
player_name: Marcus
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.578825
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.585430
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 4 for 6 at pos 5
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.591852
player_id: cpu_1
player_name: Kenji
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.597722
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "K", "suit": "hearts"}
decision_reason: swapped 6 for K at pos 3
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.603910
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took K from discard
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.610084
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped K for Q at pos 3
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.615930
player_id: cpu_3
player_name: Marcus
action: draw_deck
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}], "Kenji": [{"rank": "6", "suit": "hearts"}, {"rank": "6", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}]}


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.622126
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped 3 for 10 at pos 5
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.628233
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.634500
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 5 for 4 at pos 3
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.640497
player_id: cpu_1
player_name: Kenji
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": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.646561
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 4 for 6 at pos 0
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.652600
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.658568
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 6 for 7 at pos 5
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.664462
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.670189
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: swapped 7 for A at pos 1
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.676257
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took A from discard
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.682401
player_id: cpu_0
player_name: Diego
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped A for 5 at pos 1
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.688871
player_id: cpu_1
player_name: Kenji
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.695125
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 5 for 10 at pos 2
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.701352
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.707668
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 3 for 6 at pos 5
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.714077
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.720245
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 6 for 7 at pos 1
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.726663
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.732848
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped 7 for J at pos 2
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.738925
player_id: cpu_1
player_name: Kenji
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.744973
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped K for 6 at pos 3
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.751801
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.758043
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 6 for 7 at pos 4
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.764040
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: fec2ed80-9554-4bfe-b7f6-b93836879791
timestamp: 2026-01-25 00:10:27.770325
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 7 for 8 at pos 4
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.789436
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 8
card_suit: hearts
decision_reason: took 8 from discard
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.795260
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 8 for 10 at pos 2
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.801098
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.807040
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped K for Q at pos 2
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.813147
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.819452
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 5 for 9 at pos 1
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.825535
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Priya": [{"rank": "8", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}], "Sofia": [{"rank": "K", "suit": "clubs"}, {"rank": "8", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}]}


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.831714
player_id: cpu_3
player_name: River
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 5 for 5 at pos 5
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Priya": [{"rank": "8", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}], "Sofia": [{"rank": "K", "suit": "clubs"}, {"rank": "8", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}]}


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.837493
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.843154
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 5 for 7 at pos 0
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.849098
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.861287
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.867172
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 2 for 6 at pos 5
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.873208
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.886104
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.899679
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Priya": [{"rank": "5", "suit": "spades"}, {"rank": "8", "suit": "hearts"}, {"rank": "5", "suit": "clubs"}], "Sage": [{"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "River": [{"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "hearts"}]}


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.931836
player_id: cpu_3
player_name: River
action: swap
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 10 for 6 at pos 1
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.938346
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Sofia": [{"rank": "K", "suit": "clubs"}, {"rank": "8", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "River": [{"rank": "10", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "hearts"}]}


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.944711
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 6 for 8 at pos 2
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.950946
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 8 from discard
visible_opponents_json:
{"Priya": [{"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "clubs"}], "Sage": [{"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}], "River": [{"rank": "10", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "hearts"}]}


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.956998
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "K", "suit": "hearts"}
decision_reason: swapped 8 for K at pos 0
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.963195
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took K from discard
visible_opponents_json:
{"Priya": [{"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "clubs"}], "Sofia": [{"rank": "8", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}, {"rank": "8", "suit": "diamonds"}], "River": [{"rank": "10", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "hearts"}]}


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.969382
player_id: cpu_2
player_name: Sage
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped K for 5 at pos 1
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.975678
player_id: cpu_3
player_name: River
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": "6", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.982044
player_id: cpu_3
player_name: River
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 5 for 10 at pos 1
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:27.988049
player_id: cpu_0
player_name: Priya
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.000400
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.007019
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 4 for 8 at pos 0
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.013564
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.020318
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 7 for 8 at pos 2
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.026423
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.032669
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": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.039058
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 5 from discard
visible_opponents_json:
{"Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "8", "suit": "diamonds"}], "Sage": [{"rank": "K", "suit": "hearts"}, {"rank": "7", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}], "River": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "5", "suit": "hearts"}]}


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.045335
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 5 for 6 at pos 2
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.052124
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.059106
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 6 for 8 at pos 3
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.065408
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.079753
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.086288
player_id: cpu_3
player_name: River
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 4 for 5 at pos 5
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.092827
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.098928
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped 5 for 9 at pos 5
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.105070
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.111354
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped A for 6 at pos 3
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.117185
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Priya": [{"rank": "5", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}], "River": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}]}


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.123482
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 2
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.130149
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.136479
player_id: cpu_3
player_name: River
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: swapped 7 for 2 at pos 4
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.142944
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.148954
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 2 for 5 at pos 0
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.154977
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.161201
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped 5 for 3 at pos 1
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.167497
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.173750
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 3 for 6 at pos 2
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.180099
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.186377
player_id: cpu_3
player_name: River
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 6 for 7 at pos 4
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.195307
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.201490
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "K", "suit": "diamonds"}
decision_reason: swapped 7 for K at pos 4
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.207708
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took K from discard
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.214206
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped K for 5 at pos 1
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.220642
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.226671
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: swapped 3 for A at pos 3
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.232659
player_id: cpu_3
player_name: River
action: take_discard
card_rank: A
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: took A from discard
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.238670
player_id: cpu_3
player_name: River
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped A for 6 at pos 4
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.244661
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.250617
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 6 for 7 at pos 4
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.256642
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.262835
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 7 for Q at pos 4
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.268848
player_id: cpu_2
player_name: Sage
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.282454
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.288789
player_id: cpu_3
player_name: River
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 2 for 4 at pos 5
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.295099
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.301326
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 4 for 6 at pos 4
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.307414
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.313423
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "2", "suit": "spades"}
decision_reason: swapped 6 for 2 at pos 5
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.319748
player_id: cpu_2
player_name: Sage
action: take_discard
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 2 from discard
visible_opponents_json:
{"Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}], "Sofia": [{"rank": "4", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}, {"rank": "7", "suit": "clubs"}, {"rank": "6", "suit": "spades"}], "River": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.325978
player_id: cpu_2
player_name: Sage
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped 2 for 3 at pos 2
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.332155
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.338274
player_id: cpu_3
player_name: River
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 3 for 6 at pos 0
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.344472
player_id: cpu_0
player_name: Priya
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 5780c462-a7eb-494b-9409-6e9ea0a8dfc2
timestamp: 2026-01-25 00:10:28.350618
player_id: cpu_0
player_name: Priya
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 6 for 4 at pos 1
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.368951
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.375106
player_id: cpu_0
player_name: River
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped A for 6 at pos 1
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.380961
player_id: cpu_1
player_name: Kenji
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.392905
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: took Q from discard
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.398764
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "2", "suit": "hearts"}
decision_reason: swapped Q for 2 at pos 5
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.405043
player_id: cpu_3
player_name: Diego
action: take_discard
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.411044
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 2 for 7 at pos 3
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.416995
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.423125
player_id: cpu_0
player_name: River
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 5 for 6 at pos 3
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.429033
player_id: cpu_1
player_name: Kenji
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.435329
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 6 for 5 at pos 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.441111
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.447156
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 5 for Q at pos 2
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.453222
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.459633
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped 6 for A at pos 5
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.465817
player_id: cpu_0
player_name: River
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took A from discard
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.471695
player_id: cpu_0
player_name: River
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped A for 7 at pos 4
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.477554
player_id: cpu_1
player_name: Kenji
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.483421
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 3 for 6 at pos 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.489355
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.495254
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 6 for Q at pos 5
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.501392
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.508009
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: swapped 4 for A at pos 4
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.514614
player_id: cpu_0
player_name: River
action: take_discard
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took A from discard
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.520669
player_id: cpu_0
player_name: River
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped A for 5 at pos 3
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.530486
player_id: cpu_1
player_name: Kenji
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.536483
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 5 for 4 at pos 0
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.542625
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.548794
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 4 for 6 at pos 5
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.555160
player_id: cpu_3
player_name: Diego
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.563878
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 6 for 8 at pos 2
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.570607
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.577284
player_id: cpu_0
player_name: River
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: swapped 2 for A at pos 1
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.583378
player_id: cpu_1
player_name: Kenji
action: take_discard
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took A from discard
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.590791
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped A for 5 at pos 0
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.599959
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.606157
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 5 for 9 at pos 1
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.612578
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.625045
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.637078
player_id: cpu_1
player_name: Kenji
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.643187
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped 9 for 4 at pos 1
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.649010
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.654992
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 4 for 10 at pos 0
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.661045
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}], "Kenji": [{"rank": "A", "suit": "hearts"}, {"rank": "9", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}]}


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.667010
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 5 for 6 at pos 2
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.673268
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Kenji": [{"rank": "A", "suit": "hearts"}, {"rank": "9", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "Sofia": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "5", "suit": "spades"}, {"rank": "2", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "spades"}]}


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.679335
player_id: cpu_0
player_name: River
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: swapped 6 for A at pos 5
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.685248
player_id: cpu_1
player_name: Kenji
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": "A", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.691074
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped A for 9 at pos 1
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.697278
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.703357
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 5 for 8 at pos 4
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.709426
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.715366
player_id: cpu_3
player_name: Diego
action: swap
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "K", "suit": "hearts"}
decision_reason: swapped Q for K at pos 0
hand_json:
[{"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.721351
player_id: cpu_0
player_name: River
action: take_discard
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took K from discard
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.727448
player_id: cpu_0
player_name: River
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped K for 6 at pos 5
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.733470
player_id: cpu_1
player_name: Kenji
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}]

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


game_id: c05d0f84-04ba-453e-8cb2-5dea3db9e15c
timestamp: 2026-01-25 00:10:28.741400
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped 6 for 10 at pos 5
hand_json:
[{"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:28.759267
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}]

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


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

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


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

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


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

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


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

visible_opponents_json:
{"Maya": [{"rank": "7", "suit": "spades"}, {"rank": "Q", "suit": "spades"}], "Priya": [{"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}], "Sage": [{"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "clubs"}]}


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

visible_opponents_json:
{"Maya": [{"rank": "7", "suit": "spades"}, {"rank": "Q", "suit": "spades"}], "Priya": [{"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}], "Sage": [{"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "clubs"}]}


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

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


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:28.812370
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}]

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


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

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


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:28.824131
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


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

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


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

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


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


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:28.876136
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "7", "suit": "spades"}, {"rank": "Q", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "Q", "suit": "spades"}], "Diego": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Sage": [{"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "clubs"}]}


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

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


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:28.892207
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "7", "suit": "spades"}, {"rank": "Q", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "Q", "suit": "spades"}], "Priya": [{"rank": "A", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "6", "suit": "clubs"}], "Sage": [{"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "clubs"}]}


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:28.898471
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped 8 for 3 at pos 3
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:28.904772
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 3 from discard
visible_opponents_json:
{"Maya": [{"rank": "7", "suit": "spades"}, {"rank": "Q", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "Q", "suit": "spades"}], "Priya": [{"rank": "A", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "6", "suit": "clubs"}], "Diego": [{"rank": "K", "suit": "spades"}, {"rank": "8", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}]}


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

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


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

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


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:28.929159
player_id: cpu_1
player_name: Priya
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


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

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


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:28.940870
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


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

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


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

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


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

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


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:28.964978
player_id: cpu_0
player_name: Maya
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 3 from discard
visible_opponents_json:
{"Priya": [{"rank": "A", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "clubs"}], "Diego": [{"rank": "K", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}], "Sage": [{"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}]}


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

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


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

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


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

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


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

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


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

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


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

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


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

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


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:29.015465
player_id: cpu_0
player_name: Maya
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": "3", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": true}]

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:29.084794
player_id: cpu_1
player_name: Priya
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": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


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

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


game_id: a9118258-ccd8-4d5e-a3d4-b12a58e5b218
timestamp: 2026-01-25 00:10:29.097035
player_id: cpu_2
player_name: Diego
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": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


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

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


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

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


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

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


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

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


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

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


