# moves

game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.099751
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "hearts"}, {"rank": "6", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "hearts"}, {"rank": "7", "suit": "hearts"}], "Maya": [{"rank": "6", "suit": "hearts"}, {"rank": "9", "suit": "hearts"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.106552
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 3 for 7 at pos 3
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "hearts"}, {"rank": "6", "suit": "diamonds"}], "Sage": [{"rank": "5", "suit": "hearts"}, {"rank": "7", "suit": "hearts"}], "Maya": [{"rank": "6", "suit": "hearts"}, {"rank": "9", "suit": "hearts"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.112507
player_id: cpu_3
player_name: Maya
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.118549
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 7 for 9 at pos 5
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.124035
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.135398
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.141323
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 2 for 7 at pos 3
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.147258
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.152946
player_id: cpu_2
player_name: Sofia
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": "2", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.158678
player_id: cpu_3
player_name: Maya
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": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.164276
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 6 for Q at pos 4
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.170096
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "5", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Sofia": [{"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "spades"}], "Maya": [{"rank": "6", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "spades"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.176122
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 6 for 7 at pos 2
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.182151
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.192035
player_id: cpu_1
player_name: Sage
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped A for 5 at pos 2
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.197853
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.209153
player_id: cpu_3
player_name: Maya
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.215007
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 5 for 7 at pos 5
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.220756
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.231990
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.245124
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "hearts"}, {"rank": "6", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Maya": [{"rank": "6", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.263169
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 2 for 6 at pos 1
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.269103
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Sofia": [{"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "spades"}], "Maya": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.274958
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped K for 6 at pos 2
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.280825
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}], "Sofia": [{"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "spades"}], "Maya": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.296755
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}], "Sage": [{"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Maya": [{"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.307747
player_id: cpu_3
player_name: Maya
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.315436
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 5 for 8 at pos 2
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.321173
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.326949
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped K for 6 at pos 5
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.332926
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Sofia": [{"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "spades"}], "Maya": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.338662
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 3 for 10 at pos 1
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.344099
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}], "Maya": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.357055
player_id: cpu_3
player_name: Maya
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.369852
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.375310
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: swapped 5 for A at pos 1
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.380921
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: A
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took A from discard
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.386136
player_id: cpu_1
player_name: Sage
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped A for 4 at pos 5
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.391592
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Maya": [{"rank": "2", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.397115
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "2", "suit": "spades"}
decision_reason: swapped 3 for 2 at pos 0
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.403996
player_id: cpu_3
player_name: Maya
action: take_discard
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: took 2 from discard
visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "spades"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.409667
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 2 for 6 at pos 4
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.415425
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.421154
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 2 for 5 at pos 1
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.428054
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.440473
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.446983
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "K", "suit": "clubs"}
decision_reason: swapped 4 for K at pos 2
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.452763
player_id: cpu_3
player_name: Maya
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": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.458965
player_id: cpu_3
player_name: Maya
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped K for 5 at pos 2
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.465467
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.471833
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "hearts"}
decision_reason: swapped A for 3 at pos 0
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.477440
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: took 3 from discard
visible_opponents_json:
{"Marcus": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "spades"}], "Maya": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "clubs"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.483000
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped 3 for A at pos 4
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.488665
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: took A from discard
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.494174
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped A for 4 at pos 2
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.499829
player_id: cpu_3
player_name: Maya
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.510965
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.522926
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.600442
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 3
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.606251
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "spades"}], "Maya": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "clubs"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.618943
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "spades"}], "Maya": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "clubs"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.629835
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Maya": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "clubs"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.696744
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 3
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.702024
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "spades"}], "Maya": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "clubs"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.714055
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "spades"}], "Maya": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "clubs"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.721149
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 4 for J at pos 0
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.726865
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}], "Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Maya": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "clubs"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.739028
player_id: cpu_3
player_name: Maya
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.752752
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "spades"}], "Maya": [{"rank": "2", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "clubs"}]}


game_id: 1d686e7b-71e3-4c1a-a27c-b0076ed6eb19
timestamp: 2026-01-24 18:51:45.758843
player_id: cpu_0
player_name: Marcus
action: discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: discarded 7
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.775453
player_id: cpu_0
player_name: Marcus
action: take_discard
card_rank: 3
card_suit: spades
decision_reason: took 3 from discard
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.780727
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 3 for 10 at pos 5
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.786287
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Diego": [{"rank": "9", "suit": "hearts"}, {"rank": "2", "suit": "spades"}]}


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.792469
player_id: cpu_1
player_name: Maya
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped K for 7 at pos 4
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Diego": [{"rank": "9", "suit": "hearts"}, {"rank": "2", "suit": "spades"}]}


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.798651
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.810880
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.816714
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 9 for 9 at pos 5
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.823045
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.835744
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Diego": [{"rank": "9", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "9", "suit": "clubs"}]}


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.841668
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 5 for 5 at pos 3
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Diego": [{"rank": "9", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "9", "suit": "clubs"}]}


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.847374
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.858868
player_id: cpu_3
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
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.864818
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 7 for 9 at pos 2
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.870464
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "River": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Diego": [{"rank": "7", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "9", "suit": "clubs"}]}


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.881071
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: J
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": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Diego": [{"rank": "7", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "9", "suit": "clubs"}]}


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.892265
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "clubs"}, {"rank": "8", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "9", "suit": "clubs"}]}


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.910697
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped 6 for 9 at pos 5
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.916443
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "River": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Diego": [{"rank": "7", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}]}


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.921904
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped K for 8 at pos 3
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.927140
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Diego": [{"rank": "7", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}]}


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.933188
player_id: cpu_1
player_name: Maya
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped K for 5 at pos 3
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.938579
player_id: cpu_2
player_name: River
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 5 from discard
visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "Diego": [{"rank": "7", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}]}


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.944471
player_id: cpu_2
player_name: River
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 5 for Q at pos 2
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.950723
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.956694
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 4 for 7 at pos 2
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.963082
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.968968
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped 2 for 3 at pos 2
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.974903
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.985984
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.991739
player_id: cpu_2
player_name: River
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped K for 5 at pos 2
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:45.997348
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.008578
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.019548
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Diego": [{"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}]}


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.025407
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: swapped 5 for A at pos 2
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.031229
player_id: cpu_2
player_name: River
action: take_discard
card_rank: A
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: took A from discard
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.037437
player_id: cpu_2
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 3
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.043525
player_id: cpu_3
player_name: Diego
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: took 5 from discard
visible_opponents_json:
{"Marcus": [{"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "River": [{"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "clubs"}]}


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.049620
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 5
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.056068
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "River": [{"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "clubs"}], "Diego": [{"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "spades"}]}


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.068476
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.074542
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: swapped 6 for A at pos 1
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.080443
player_id: cpu_2
player_name: River
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": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.086785
player_id: cpu_2
player_name: River
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped A for 8 at pos 4
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.092930
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.103925
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "River": [{"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}], "Diego": [{"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "spades"}]}


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.109429
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 4 for 4 at pos 4
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.116174
player_id: cpu_1
player_name: Maya
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": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.121947
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 4 for 6 at pos 1
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.127807
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.133749
player_id: cpu_2
player_name: River
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 4 for 8 at pos 1
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.139451
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "spades"}], "Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "River": [{"rank": "A", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}]}


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.145145
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 3 for 5 at pos 5
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.151110
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.163469
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}]

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


game_id: 7973bbfa-1498-4806-8c16-2886409ff626
timestamp: 2026-01-24 18:51:46.169230
player_id: cpu_1
player_name: Maya
action: discard
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: discarded Q
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.187261
player_id: cpu_0
player_name: Sage
action: take_discard
card_rank: A
card_suit: clubs
decision_reason: took A from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "2", "suit": "spades"}], "Maya": [{"rank": "10", "suit": "hearts"}, {"rank": "J", "suit": "spades"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "Q", "suit": "hearts"}]}


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.193148
player_id: cpu_0
player_name: Sage
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped A for 8 at pos 1
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "5", "suit": "hearts"}, {"rank": "2", "suit": "spades"}], "Maya": [{"rank": "10", "suit": "hearts"}, {"rank": "J", "suit": "spades"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "Q", "suit": "hearts"}]}


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.199226
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Sage": [{"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Maya": [{"rank": "10", "suit": "hearts"}, {"rank": "J", "suit": "spades"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "Q", "suit": "hearts"}]}


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.205766
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 4 for 5 at pos 2
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Sage": [{"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}], "Maya": [{"rank": "10", "suit": "hearts"}, {"rank": "J", "suit": "spades"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "Q", "suit": "hearts"}]}


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.211429
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.217018
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 5 for 10 at pos 1
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.222720
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.227995
player_id: cpu_3
player_name: River
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 7 for Q at pos 5
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.233552
player_id: cpu_0
player_name: Sage
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "spades"}], "Maya": [{"rank": "5", "suit": "hearts"}, {"rank": "J", "suit": "spades"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "diamonds"}]}


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.244633
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.250016
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 6 for 6 at pos 4
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.255868
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.261305
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped 6 for J at pos 5
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.266698
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.272679
player_id: cpu_3
player_name: River
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped 4 for 3 at pos 3
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.279679
player_id: cpu_0
player_name: Sage
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}], "Maya": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "spades"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}]}


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.285791
player_id: cpu_0
player_name: Sage
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped A for 8 at pos 4
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.291841
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.303676
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.315449
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.321764
player_id: cpu_3
player_name: River
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 7 for 9 at pos 2
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.328331
player_id: cpu_0
player_name: Sage
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.339895
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "A", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Maya": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "spades"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}]}


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.345501
player_id: cpu_1
player_name: Diego
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": "K", "suit": "spades", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.351410
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Sage": [{"rank": "A", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "7", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}]}


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.357029
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 6 for Q at pos 2
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.362668
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.368241
player_id: cpu_3
player_name: River
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped A for 7 at pos 2
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.373808
player_id: cpu_0
player_name: Sage
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "Maya": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "6", "suit": "spades"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}]}


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.384802
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.397200
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.403096
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "2", "suit": "hearts"}
decision_reason: swapped 6 for 2 at pos 3
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.408788
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.415095
player_id: cpu_3
player_name: River
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 2 for 7 at pos 5
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.421079
player_id: cpu_0
player_name: Sage
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "Maya": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "6", "suit": "spades"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}]}


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.432215
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "A", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Maya": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "6", "suit": "spades"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}]}


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.443829
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.462356
player_id: cpu_3
player_name: River
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 4 for 8 at pos 4
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.468478
player_id: cpu_0
player_name: Sage
action: draw_deck
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "Maya": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "6", "suit": "spades"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}]}


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.475118
player_id: cpu_0
player_name: Sage
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 5 for 5 at pos 3
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.481426
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "A", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Maya": [{"rank": "5", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "6", "suit": "spades"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}]}


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.487291
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 6 for 10 at pos 1
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.494672
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "A", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "River": [{"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}]}


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.506117
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.512129
player_id: cpu_3
player_name: River
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 3 for 4 at pos 0
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.518545
player_id: cpu_0
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.530216
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": false}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.543495
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "A", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Diego": [{"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "River": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}]}


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.549291
player_id: cpu_2
player_name: Maya
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped A for 6 at pos 2
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.555074
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.560863
player_id: cpu_3
player_name: River
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped K for 4 at pos 3
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.566954
player_id: cpu_0
player_name: Sage
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "clubs"}], "Maya": [{"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}, {"rank": "6", "suit": "spades"}], "River": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}]}


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.578520
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "A", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "hearts"}], "Maya": [{"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "6", "suit": "hearts"}, {"rank": "6", "suit": "spades"}], "River": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}]}


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.584394
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "2", "suit": "clubs"}
decision_reason: swapped 4 for 2 at pos 5
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.590484
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.596080
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 2 for 6 at pos 3
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.602032
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.607736
player_id: cpu_3
player_name: River
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: swapped 5 for 2 at pos 1
hand_json:
[{"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.617152
player_id: cpu_0
player_name: Sage
action: take_discard
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: took 2 from discard
visible_opponents_json:
{"Diego": [{"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "4", "suit": "spades"}], "Maya": [{"rank": "5", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "6", "suit": "spades"}], "River": [{"rank": "3", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}]}


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.622937
player_id: cpu_0
player_name: Sage
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 2 for 5 at pos 3
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.628555
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.640916
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 52996bd3-fa4d-4772-81e4-bd81dd9b06e5
timestamp: 2026-01-24 18:51:46.647013
player_id: cpu_2
player_name: Maya
action: discard
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: discarded 9
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.664712
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.670941
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 6 for 9 at pos 1
hand_json:
[{"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.680777
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.696614
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.708096
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.714138
player_id: cpu_3
player_name: Sage
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "2", "suit": "clubs"}
decision_reason: swapped A for 2 at pos 1
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.720064
player_id: cpu_0
player_name: Marcus
action: take_discard
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.726051
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 2 for 6 at pos 1
hand_json:
[{"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.731810
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.741841
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 4 for 4 at pos 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.748464
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.760133
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.765751
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 8 for 9 at pos 2
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.771483
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.783116
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.789008
player_id: cpu_1
player_name: Maya
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped A for 4 at pos 4
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.794738
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "Maya": [{"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "8", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}]}


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.801050
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 3 for 5 at pos 1
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.807558
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.813553
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 5 for 8 at pos 2
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.819360
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}], "Priya": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "clubs"}, {"rank": "A", "suit": "spades"}]}


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.832163
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.848703
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.865866
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 2 for 5 at pos 2
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.871647
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}], "Priya": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}]}


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.883196
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "Priya": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}]}


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.888819
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 6 for 5 at pos 5
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.895759
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "Maya": [{"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}]}


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.901649
player_id: cpu_2
player_name: Priya
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped K for 3 at pos 1
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.907031
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.913122
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 3 for 4 at pos 3
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.919179
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "spades"}], "Priya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}]}


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.930508
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.936450
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 2 for 6 at pos 5
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.942526
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.955199
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.967596
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "spades"}], "Priya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}]}


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.985017
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 5 for 4 at pos 0
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:46.991177
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "Maya": [{"rank": "5", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}]}


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:47.002702
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "Maya": [{"rank": "5", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "spades"}], "Priya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "clubs"}]}


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:47.008192
player_id: cpu_3
player_name: Sage
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: swapped A for 3 at pos 3
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:47.014070
player_id: cpu_0
player_name: Marcus
action: take_discard
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: took 3 from discard
visible_opponents_json:
{"Maya": [{"rank": "5", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "spades"}], "Priya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "A", "suit": "spades"}]}


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:47.019786
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped 3 for 9 at pos 2
hand_json:
[{"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:47.026065
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:47.038683
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Maya": [{"rank": "5", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "A", "suit": "spades"}]}


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:47.050775
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:47.069886
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 4 for Q at pos 0
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:47.075901
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Priya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "A", "suit": "spades"}]}


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:47.081681
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 4 for 5 at pos 0
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:47.087597
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Maya": [{"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "A", "suit": "spades"}]}


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:47.099047
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Maya": [{"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "spades"}], "Priya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "clubs"}]}


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:47.111120
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:47.128153
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 6 for 6 at pos 1
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}]


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:47.134197
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Maya": [{"rank": "4", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "spades"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "A", "suit": "spades"}]}


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:47.146773
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "4", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Maya": [{"rank": "4", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "spades"}], "Priya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "clubs"}]}


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:47.159132
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "4", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "spades"}], "Priya": [{"rank": "K", "suit": "spades"}, {"rank": "K", "suit": "clubs"}], "Sage": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}, {"rank": "A", "suit": "spades"}]}


game_id: 13c7e849-d69f-432d-832d-52fd4b676316
timestamp: 2026-01-24 18:51:47.165169
player_id: cpu_0
player_name: Marcus
action: discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: discarded 7
hand_json:
[{"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.182080
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.188001
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 2 for 5 at pos 4
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.194824
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "8", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.200747
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 5 for Q at pos 5
hand_json:
[{"rank": "8", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.206894
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.213747
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "K", "suit": "hearts"}
decision_reason: swapped 3 for K at pos 5
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.219864
player_id: cpu_3
player_name: River
action: take_discard
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took K from discard
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.227438
player_id: cpu_3
player_name: River
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped K for 10 at pos 3
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.232845
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.244158
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "8", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.250006
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 2 for 8 at pos 0
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.255849
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.268261
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.274035
player_id: cpu_3
player_name: River
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 3 for 7 at pos 2
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.279861
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "hearts"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}]}


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.293586
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.298969
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 4 for 5 at pos 1
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.304684
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "diamonds"}, {"rank": "2", "suit": "clubs"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}], "River": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}]}


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.316886
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.328677
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}], "River": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}]}


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.335170
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: swapped 8 for 3 at pos 2
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.341320
player_id: cpu_1
player_name: Sofia
action: take_discard
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.347223
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 3 for 5 at pos 5
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.353488
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "diamonds"}, {"rank": "8", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "River": [{"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}]}


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.365167
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "diamonds"}, {"rank": "8", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "3", "suit": "spades"}]}


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.370945
player_id: cpu_3
player_name: River
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 4 for 8 at pos 1
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.376445
player_id: cpu_0
player_name: Kenji
action: take_discard
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.381980
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 8 for 6 at pos 5
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.388069
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.394309
player_id: cpu_1
player_name: Sofia
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped 3 for 10 at pos 2
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.400165
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "diamonds"}, {"rank": "8", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "8", "suit": "diamonds"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "River": [{"rank": "4", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}]}


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.406105
player_id: cpu_2
player_name: Diego
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped A for 3 at pos 5
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.412407
player_id: cpu_3
player_name: River
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.417928
player_id: cpu_3
player_name: River
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped 3 for J at pos 5
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.423774
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.429618
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 6 for 8 at pos 2
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.435259
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.446700
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.458920
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.501791
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: swapped 4 for A at pos 3
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.507043
player_id: cpu_3
player_name: River
action: take_discard
card_rank: A
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took A from discard
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "8", "suit": "diamonds"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}]}


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.512456
player_id: cpu_3
player_name: River
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped A for 4 at pos 1
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.517991
player_id: cpu_0
player_name: Kenji
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 4 from discard
visible_opponents_json:
{"Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "spades"}]}


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.524060
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 4 for 8 at pos 5
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.529816
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "4", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "spades"}]}


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.540940
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.546661
player_id: cpu_2
player_name: Diego
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped A for 4 at pos 3
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.552401
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.558937
player_id: cpu_3
player_name: River
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped K for 3 at pos 2
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.564414
player_id: cpu_0
player_name: Kenji
action: take_discard
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.574478
player_id: cpu_0
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 2
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.580419
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "3", "suit": "spades"}]}


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.593100
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.599029
player_id: cpu_2
player_name: Diego
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped K for A at pos 2
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.604760
player_id: cpu_3
player_name: River
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: took A from discard
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.610355
player_id: cpu_3
player_name: River
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped A for 8 at pos 4
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.615818
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.621736
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 7 for Q at pos 3
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.627198
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "7", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Diego": [{"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "spades"}]}


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.639115
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.650974
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.719524
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 5 for 7 at pos 3
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.725661
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Diego": [{"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "spades"}]}


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.737396
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "River": [{"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "spades"}]}


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.748995
player_id: cpu_3
player_name: River
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "Diego": [{"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}]}


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.754412
player_id: cpu_3
player_name: River
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 4 for 5 at pos 0
hand_json:
[{"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.760091
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.771722
player_id: cpu_1
player_name: Sofia
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Diego": [{"rank": "K", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "diamonds"}], "River": [{"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "spades"}]}


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.783006
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}], "Sofia": [{"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}], "River": [{"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "spades"}]}


game_id: d47c49f8-4b2a-4974-93cd-220faaaa58e6
timestamp: 2026-01-24 18:51:47.789064
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 10 for 5 at pos 0
hand_json:
[{"rank": "10", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.807338
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: J
card_suit: spades
decision_reason: took J from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.813364
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: J
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped J for 7 at pos 0
hand_json:
[{"rank": "J", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.819151
player_id: cpu_1
player_name: Sage
action: take_discard
card_rank: 7
card_suit: clubs
decision_reason: took 7 from discard
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.825592
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 7 for J at pos 2
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.831974
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.843398
player_id: cpu_3
player_name: Priya
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.848783
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 7 for 9 at pos 3
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.854558
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.859848
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped 3 for J at pos 0
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.865256
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.871192
player_id: cpu_1
player_name: Sage
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 4 for 7 at pos 2
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.877667
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.883954
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped A for 4 at pos 3
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.890323
player_id: cpu_3
player_name: Priya
action: take_discard
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.896204
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 4 for 8 at pos 2
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.902449
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.908111
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 8 for Q at pos 1
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.913746
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.924702
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.930244
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: swapped 2 for A at pos 3
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.935827
player_id: cpu_3
player_name: Priya
action: take_discard
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took A from discard
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.941569
player_id: cpu_3
player_name: Priya
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped A for 7 at pos 3
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.946745
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.952126
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped 7 for J at pos 3
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.958605
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "8", "suit": "clubs"}, {"rank": "7", "suit": "spades"}], "Marcus": [{"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "spades"}], "Priya": [{"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}]}


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.970691
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.981668
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.986996
player_id: cpu_3
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 4
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.992351
player_id: cpu_0
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": "3", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:47.998835
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 6 for 8 at pos 1
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.004710
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "6", "suit": "spades"}, {"rank": "7", "suit": "spades"}], "Marcus": [{"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "spades"}], "Priya": [{"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}]}


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.017058
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "6", "suit": "spades"}, {"rank": "7", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}], "Priya": [{"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}]}


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.029304
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.046188
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 3 for 7 at pos 3
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.053399
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "6", "suit": "spades"}, {"rank": "3", "suit": "hearts"}], "Marcus": [{"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "spades"}], "Priya": [{"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}]}


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.065226
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "6", "suit": "spades"}, {"rank": "3", "suit": "hearts"}], "Sage": [{"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}], "Priya": [{"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}]}


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.076608
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "6", "suit": "spades"}, {"rank": "3", "suit": "hearts"}], "Sage": [{"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}], "Marcus": [{"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "spades"}]}


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.082155
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped 10 for A at pos 1
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.088294
player_id: cpu_0
player_name: Sofia
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took A from discard
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.094087
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped A for 6 at pos 1
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.100043
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}], "Marcus": [{"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "spades"}], "Priya": [{"rank": "10", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}]}


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.106512
player_id: cpu_1
player_name: Sage
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped A for 7 at pos 5
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.112052
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "3", "suit": "spades"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}], "Sage": [{"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Priya": [{"rank": "10", "suit": "hearts"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}]}


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.118163
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: swapped 4 for 2 at pos 1
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.125137
player_id: cpu_3
player_name: Priya
action: take_discard
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.132009
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 2 for 10 at pos 1
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.139593
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.152860
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.163901
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.169465
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "K", "suit": "diamonds"}
decision_reason: swapped 5 for K at pos 0
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.174812
player_id: cpu_3
player_name: Priya
action: take_discard
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: took K from discard
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.180661
player_id: cpu_3
player_name: Priya
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped K for 5 at pos 4
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.185991
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}], "Marcus": [{"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "spades"}], "Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}]}


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.191975
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped 2 for 3 at pos 0
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.197780
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}], "Marcus": [{"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "spades"}], "Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}]}


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.203224
player_id: cpu_1
player_name: Sage
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped K for 4 at pos 2
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.208970
player_id: cpu_2
player_name: Marcus
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.215143
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: swapped 4 for A at pos 4
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.221033
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.232865
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.238861
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 4 for 7 at pos 4
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.244198
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.249662
player_id: cpu_1
player_name: Sage
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: swapped K for A at pos 5
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.255033
player_id: cpu_2
player_name: Marcus
action: take_discard
card_rank: A
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: took A from discard
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.260971
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped A for 5 at pos 0
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.266718
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "Marcus": [{"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}]}


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.272387
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 5 for Q at pos 5
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.278665
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.291108
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.297244
player_id: cpu_1
player_name: Sage
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped A for Q at pos 3
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.302821
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.314393
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.325982
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "Marcus": [{"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}], "Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}]}


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.332074
player_id: cpu_0
player_name: Sofia
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped 3 for 10 at pos 2
hand_json:
[{"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.337886
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.350758
player_id: cpu_2
player_name: Marcus
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}]}


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.362949
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "Marcus": [{"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}]}


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.409194
player_id: cpu_2
player_name: Marcus
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: swapped 5 for 3 at pos 5
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}]


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.414735
player_id: cpu_3
player_name: Priya
action: take_discard
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 3 from discard
visible_opponents_json:
{"Sofia": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "Sage": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "Marcus": [{"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}]}


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.420162
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 3 for 5 at pos 5
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}]

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


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.425633
player_id: cpu_0
player_name: Sofia
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "K", "suit": "clubs"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "hearts"}, {"rank": "K", "suit": "spades"}], "Marcus": [{"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}], "Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.439780
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Sofia": [{"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "spades"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "spades"}], "Marcus": [{"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}], "Priya": [{"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}]}


game_id: eabc4257-3417-4f1f-b1ea-507a1b2032b7
timestamp: 2026-01-24 18:51:48.445772
player_id: cpu_1
player_name: Sage
action: discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: discarded 7
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.462790
player_id: cpu_0
player_name: Marcus
action: take_discard
card_rank: 3
card_suit: hearts
decision_reason: took 3 from discard
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.468208
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 3 for 6 at pos 3
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.473548
player_id: cpu_1
player_name: River
action: take_discard
card_rank: 6
card_suit: diamonds
decision_reason: took 6 from discard
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.478869
player_id: cpu_1
player_name: River
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped 6 for 10 at pos 4
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.484174
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 10
card_suit: diamonds
decision_reason: took 10 from discard
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.490264
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 10 for 9 at pos 0
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.496315
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.501931
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 5 for Q at pos 5
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.507518
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.513668
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped A for J at pos 4
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.520096
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.525564
player_id: cpu_1
player_name: River
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: swapped 5 for 2 at pos 3
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.532108
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "10", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.537628
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped 2 for 10 at pos 0
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.543029
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.554322
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.560101
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped A for 5 at pos 1
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.565549
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.576744
player_id: cpu_2
player_name: Maya
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": "2", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.582041
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 7 for Q at pos 1
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.587354
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "River": [{"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "2", "suit": "diamonds"}, {"rank": "7", "suit": "clubs"}, {"rank": "10", "suit": "clubs"}]}


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.594059
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 6 for 9 at pos 3
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.599674
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}]

visible_opponents_json:
{"River": [{"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "2", "suit": "diamonds"}, {"rank": "7", "suit": "clubs"}, {"rank": "10", "suit": "clubs"}], "Priya": [{"rank": "6", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}]}


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.610749
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Maya": [{"rank": "2", "suit": "diamonds"}, {"rank": "7", "suit": "clubs"}, {"rank": "10", "suit": "clubs"}], "Priya": [{"rank": "6", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}]}


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.621670
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.627539
player_id: cpu_2
player_name: Maya
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped A for 10 at pos 3
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.633324
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.639027
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 3 for 6 at pos 0
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.644344
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "5", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "2", "suit": "diamonds"}, {"rank": "7", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}], "Priya": [{"rank": "3", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}]}


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.656506
player_id: cpu_1
player_name: River
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "3", "suit": "hearts"}, {"rank": "A", "suit": "spades"}], "Maya": [{"rank": "2", "suit": "diamonds"}, {"rank": "7", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}], "Priya": [{"rank": "3", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}]}


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.662199
player_id: cpu_1
player_name: River
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 6 for 4 at pos 1
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.668056
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.674792
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 4 for 7 at pos 1
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.680260
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.686010
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 2 for 6 at pos 3
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.691506
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "5", "suit": "clubs"}, {"rank": "6", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}], "Maya": [{"rank": "2", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}], "Priya": [{"rank": "3", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "5", "suit": "hearts"}]}


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.696956
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 4 for 4 at pos 5
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.703176
player_id: cpu_1
player_name: River
action: take_discard
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.708956
player_id: cpu_1
player_name: River
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "K", "suit": "spades"}
decision_reason: swapped 4 for K at pos 5
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.714923
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: K
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: took K from discard
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.721882
player_id: cpu_2
player_name: Maya
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped K for 4 at pos 1
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.728055
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.740395
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.746652
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "K", "suit": "diamonds"}
decision_reason: swapped 4 for K at pos 2
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.752908
player_id: cpu_1
player_name: River
action: take_discard
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took K from discard
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.759193
player_id: cpu_1
player_name: River
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped K for 6 at pos 1
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.765659
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.776324
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "diamonds"}, {"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "hearts"}], "River": [{"rank": "5", "suit": "clubs"}, {"rank": "K", "suit": "diamonds"}, {"rank": "5", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}], "Maya": [{"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "clubs"}]}


game_id: bb4b1f69-8b88-4c4e-84e9-7745bcf24e64
timestamp: 2026-01-24 18:51:48.782133
player_id: cpu_3
player_name: Priya
action: discard
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: discarded J
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 93ebe700-df21-4702-a110-9f5207c3ee4d
timestamp: 2026-01-24 18:51:48.800913
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}]

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


game_id: 93ebe700-df21-4702-a110-9f5207c3ee4d
timestamp: 2026-01-24 18:51:48.806852
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped 2 for 9 at pos 0
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}]

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


game_id: 93ebe700-df21-4702-a110-9f5207c3ee4d
timestamp: 2026-01-24 18:51:48.812627
player_id: cpu_1
player_name: Sage
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}]

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


game_id: 93ebe700-df21-4702-a110-9f5207c3ee4d
timestamp: 2026-01-24 18:51:48.823952
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 93ebe700-df21-4702-a110-9f5207c3ee4d
timestamp: 2026-01-24 18:51:48.829745
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 8 for 7 at pos 1
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}]

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


game_id: 93ebe700-df21-4702-a110-9f5207c3ee4d
timestamp: 2026-01-24 18:51:48.835555
player_id: cpu_3
player_name: Marcus
action: draw_deck
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}]

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


game_id: 93ebe700-df21-4702-a110-9f5207c3ee4d
timestamp: 2026-01-24 18:51:48.841373
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped 2 for A at pos 0
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}]

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


game_id: 93ebe700-df21-4702-a110-9f5207c3ee4d
timestamp: 2026-01-24 18:51:48.846993
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: took A from discard
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}]

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


