# moves

game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.789131
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.795397
player_id: cpu_0
player_name: River
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "K", "suit": "diamonds"}
decision_reason: swapped 4 for K at pos 0
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.801198
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took K from discard
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.807299
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped K for 5 at pos 1
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.813413
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": false}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.819745
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 5 for 4 at pos 5
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.828280
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.834759
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped 4 for J at pos 4
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.841307
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 2
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": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.847808
player_id: cpu_0
player_name: River
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 2 for 4 at pos 0
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.854078
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.860227
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped 4 for 4 at pos 3
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.866360
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.872195
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 4 for 5 at pos 2
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.878184
player_id: cpu_3
player_name: Kenji
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.884105
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 5 for 9 at pos 3
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.890378
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.896146
player_id: cpu_0
player_name: River
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 5 for 10 at pos 2
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.902411
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.908327
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 7 for 9 at pos 0
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.914304
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.926709
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.933000
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: swapped 6 for 3 at pos 2
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.939082
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.945213
player_id: cpu_0
player_name: River
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "2", "suit": "spades"}
decision_reason: swapped 3 for 2 at pos 4
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.951404
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.957334
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "7", "suit": "clubs"}
decision_reason: swapped 2 for 7 at pos 0
hand_json:
[{"rank": "2", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.963391
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 7 from discard
visible_opponents_json:
{"River": [{"rank": "2", "suit": "diamonds"}, {"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "2", "suit": "hearts"}, {"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}], "Marcus": [{"rank": "2", "suit": "spades"}, {"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "diamonds"}, {"rank": "4", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "Kenji": [{"rank": "5", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}]}


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.969633
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 7 for J at pos 4
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.976130
player_id: cpu_3
player_name: Kenji
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: fa6b2518-e9e6-4dd3-b7f8-94cde189dc4b
timestamp: 2026-01-25 00:08:56.982754
player_id: cpu_3
player_name: Kenji
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 6 for 6 at pos 0
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.001236
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "spades"}, {"rank": "9", "suit": "hearts"}], "Maya": [{"rank": "8", "suit": "hearts"}, {"rank": "5", "suit": "spades"}], "Priya": [{"rank": "7", "suit": "hearts"}, {"rank": "Q", "suit": "diamonds"}]}


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.007357
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 5 for Q at pos 4
hand_json:
[{"rank": "A", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}]

visible_opponents_json:
{"Marcus": [{"rank": "3", "suit": "spades"}, {"rank": "9", "suit": "hearts"}], "Maya": [{"rank": "8", "suit": "hearts"}, {"rank": "5", "suit": "spades"}], "Priya": [{"rank": "7", "suit": "hearts"}, {"rank": "Q", "suit": "diamonds"}]}


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.013590
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "hearts", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}], "Maya": [{"rank": "8", "suit": "hearts"}, {"rank": "5", "suit": "spades"}], "Priya": [{"rank": "7", "suit": "hearts"}, {"rank": "Q", "suit": "diamonds"}]}


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.019788
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 2 for 9 at pos 5
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}], "Maya": [{"rank": "8", "suit": "hearts"}, {"rank": "5", "suit": "spades"}], "Priya": [{"rank": "7", "suit": "hearts"}, {"rank": "Q", "suit": "diamonds"}]}


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.025821
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.032134
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 4 for 8 at pos 2
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.038575
player_id: cpu_3
player_name: Priya
action: take_discard
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.044699
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 8 for Q at pos 4
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.050875
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.056985
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 7
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "spades"}
decision_reason: swapped 7 for A at pos 0
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.062966
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: A
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took A from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.068939
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped A for 3 at pos 1
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.074910
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.080991
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 3 for 5 at pos 3
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.087210
player_id: cpu_3
player_name: Priya
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.093107
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 5 for 8 at pos 4
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.101236
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.113923
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.126862
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.145629
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 7 for 9 at pos 5
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}]


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.152083
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Marcus": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "clubs"}], "Maya": [{"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "spades"}], "Priya": [{"rank": "7", "suit": "hearts"}, {"rank": "5", "suit": "spades"}, {"rank": "7", "suit": "spades"}]}


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.158500
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 5 for 8 at pos 1
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.165710
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "7", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}], "Maya": [{"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "spades"}], "Priya": [{"rank": "7", "suit": "hearts"}, {"rank": "5", "suit": "spades"}, {"rank": "7", "suit": "spades"}]}


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.171930
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: swapped A for A at pos 4
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.178512
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took A from discard
visible_opponents_json:
{"Kenji": [{"rank": "7", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}], "Marcus": [{"rank": "A", "suit": "spades"}, {"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Priya": [{"rank": "7", "suit": "hearts"}, {"rank": "5", "suit": "spades"}, {"rank": "7", "suit": "spades"}]}


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.185215
player_id: cpu_2
player_name: Maya
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped A for 4 at pos 2
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.191639
player_id: cpu_3
player_name: Priya
action: take_discard
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.198248
player_id: cpu_3
player_name: Priya
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 4 for 7 at pos 2
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.204424
player_id: cpu_0
player_name: Kenji
action: take_discard
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.211226
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 7 for 6 at pos 3
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.217621
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.224106
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 6 for Q at pos 2
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.231013
player_id: cpu_2
player_name: Maya
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": false}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.246309
player_id: cpu_3
player_name: Priya
action: draw_deck
card_rank: J
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": "A", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.260059
player_id: cpu_0
player_name: Kenji
action: draw_deck
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": false}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.266381
player_id: cpu_0
player_name: Kenji
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "clubs"}
decision_reason: swapped 7 for 3 at pos 5
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.272638
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.278891
player_id: cpu_1
player_name: Marcus
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": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.285211
player_id: cpu_2
player_name: Maya
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Kenji": [{"rank": "7", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "7", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}], "Marcus": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Priya": [{"rank": "4", "suit": "spades"}, {"rank": "5", "suit": "spades"}, {"rank": "7", "suit": "spades"}]}


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.292019
player_id: cpu_2
player_name: Maya
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "K", "suit": "clubs"}
decision_reason: swapped 6 for K at pos 5
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.298428
player_id: cpu_3
player_name: Priya
action: take_discard
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took K from discard
visible_opponents_json:
{"Kenji": [{"rank": "7", "suit": "clubs"}, {"rank": "5", "suit": "hearts"}, {"rank": "K", "suit": "spades"}, {"rank": "7", "suit": "hearts"}, {"rank": "5", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}], "Marcus": [{"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Maya": [{"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "6", "suit": "clubs"}]}


game_id: e7dfd08d-e051-4d22-a02e-d93459804864
timestamp: 2026-01-25 00:08:57.305008
player_id: cpu_3
player_name: Priya
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped K for 7 at pos 5
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.323565
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.329771
player_id: cpu_0
player_name: Maya
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped A for J at pos 1
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.336230
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "clubs"}], "Kenji": [{"rank": "10", "suit": "spades"}, {"rank": "K", "suit": "clubs"}], "Marcus": [{"rank": "Q", "suit": "spades"}, {"rank": "8", "suit": "spades"}]}


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.342512
player_id: cpu_1
player_name: Diego
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: swapped K for 3 at pos 2
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}]

visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "5", "suit": "clubs"}], "Kenji": [{"rank": "10", "suit": "spades"}, {"rank": "K", "suit": "clubs"}], "Marcus": [{"rank": "Q", "suit": "spades"}, {"rank": "8", "suit": "spades"}]}


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.348691
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.354464
player_id: cpu_2
player_name: Kenji
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": "4", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.360361
player_id: cpu_3
player_name: Marcus
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.366177
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 4 for Q at pos 2
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.372195
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.378177
player_id: cpu_0
player_name: Maya
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped A for A at pos 4
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.384066
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took A from discard
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.390031
player_id: cpu_1
player_name: Diego
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped A for 5 at pos 1
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.396456
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": false}, {"rank": "J", "suit": "clubs", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.403145
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped 5 for 4 at pos 4
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.409837
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.416121
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 4 for 9 at pos 5
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.423691
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.429913
player_id: cpu_0
player_name: Maya
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 2 for 5 at pos 3
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.436508
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.442986
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 5 for 8 at pos 5
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.449153
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.455483
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped Q for J at pos 5
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.465350
player_id: cpu_3
player_name: Marcus
action: draw_deck
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.471273
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 3 for 8 at pos 3
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.477275
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.489423
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.495734
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 3 for 5 at pos 5
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.501957
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "diamonds", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.508248
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 5 for Q at pos 5
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.514173
player_id: cpu_3
player_name: Marcus
action: draw_deck
card_rank: 10
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.526728
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "5", "suit": "clubs"}], "Marcus": [{"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}]}


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.539082
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.545695
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped 6 for J at pos 3
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.552132
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.558324
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 9
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped 9 for 3 at pos 2
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.564620
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 3 from discard
visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "2", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "9", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "5", "suit": "clubs"}]}


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.571061
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: swapped 3 for 2 at pos 4
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.577969
player_id: cpu_0
player_name: Maya
action: take_discard
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 2 from discard
visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Kenji": [{"rank": "3", "suit": "diamonds"}, {"rank": "9", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "5", "suit": "clubs"}], "Marcus": [{"rank": "4", "suit": "clubs"}, {"rank": "3", "suit": "hearts"}, {"rank": "3", "suit": "spades"}, {"rank": "4", "suit": "diamonds"}]}


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.584301
player_id: cpu_0
player_name: Maya
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: swapped 2 for A at pos 1
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.590288
player_id: cpu_1
player_name: Diego
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.596497
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 2 for 6 at pos 3
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.602507
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.608412
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 6 for 9 at pos 2
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.614630
player_id: cpu_3
player_name: Marcus
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.626683
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.633242
player_id: cpu_0
player_name: Maya
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 5 for 6 at pos 2
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.639107
player_id: cpu_1
player_name: Diego
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.647177
player_id: cpu_1
player_name: Diego
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 6 for 7 at pos 0
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.653204
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.659501
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 7 for 4 at pos 0
hand_json:
[{"rank": "7", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.666012
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 4 from discard
visible_opponents_json:
{"Maya": [{"rank": "2", "suit": "diamonds"}, {"rank": "5", "suit": "hearts"}, {"rank": "2", "suit": "spades"}, {"rank": "A", "suit": "spades"}], "Diego": [{"rank": "6", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "K", "suit": "spades"}, {"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}], "Kenji": [{"rank": "7", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "K", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "5", "suit": "clubs"}]}


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.671958
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped 4 for 6 at pos 0
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "8", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.678153
player_id: cpu_0
player_name: Maya
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}]

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


game_id: 4e61e91c-4b51-4181-86ea-e7b8c692de44
timestamp: 2026-01-25 00:08:57.684294
player_id: cpu_0
player_name: Maya
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "K", "suit": "diamonds"}
decision_reason: swapped 6 for K at pos 5
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.701973
player_id: cpu_0
player_name: Maya
action: take_discard
card_rank: 3
card_suit: clubs
decision_reason: took 3 from discard
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "7", "suit": "spades"}, {"rank": "10", "suit": "spades"}], "Sofia": [{"rank": "K", "suit": "diamonds"}, {"rank": "J", "suit": "diamonds"}], "Diego": [{"rank": "8", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}]}


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.707800
player_id: cpu_0
player_name: Maya
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 3 for 6 at pos 0
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "7", "suit": "spades"}, {"rank": "10", "suit": "spades"}], "Sofia": [{"rank": "K", "suit": "diamonds"}, {"rank": "J", "suit": "diamonds"}], "Diego": [{"rank": "8", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}]}


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.713747
player_id: cpu_1
player_name: Kenji
action: take_discard
card_rank: 6
card_suit: clubs
decision_reason: took 6 from discard
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.719790
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 6 for 10 at pos 3
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.725908
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: 10
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.740360
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.746787
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 4 for 8 at pos 0
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.753283
player_id: cpu_0
player_name: Maya
action: take_discard
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "7", "suit": "spades"}, {"rank": "6", "suit": "clubs"}], "Sofia": [{"rank": "K", "suit": "diamonds"}, {"rank": "J", "suit": "diamonds"}], "Diego": [{"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}]}


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.759360
player_id: cpu_0
player_name: Maya
action: swap
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped 8 for J at pos 1
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"Kenji": [{"rank": "7", "suit": "spades"}, {"rank": "6", "suit": "clubs"}], "Sofia": [{"rank": "K", "suit": "diamonds"}, {"rank": "J", "suit": "diamonds"}], "Diego": [{"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}]}


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.765879
player_id: cpu_1
player_name: Kenji
action: draw_deck
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.772251
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 3 for 7 at pos 2
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.778425
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.784865
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: swapped 7 for J at pos 4
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.791128
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: K
card_suit: spades
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.797636
player_id: cpu_3
player_name: Diego
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped K for 6 at pos 4
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.804043
player_id: cpu_0
player_name: Maya
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.810284
player_id: cpu_0
player_name: Maya
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 6 for 8 at pos 1
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.816976
player_id: cpu_1
player_name: Kenji
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.823229
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 2 for 6 at pos 3
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.829482
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.835508
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 6 for 7 at pos 2
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.842277
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.848325
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 9 for 9 at pos 1
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.854935
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: J
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.867578
player_id: cpu_1
player_name: Kenji
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.873849
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped A for 3 at pos 2
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.879970
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.885961
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 3 for 7 at pos 4
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.892395
player_id: cpu_3
player_name: Diego
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.898316
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 7 for Q at pos 3
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.904532
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}], "Sofia": [{"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "4", "suit": "spades"}, {"rank": "9", "suit": "spades"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "spades"}]}


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.917329
player_id: cpu_1
player_name: Kenji
action: draw_deck
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.923190
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped K for A at pos 2
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.929314
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took A from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.935466
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped A for 6 at pos 2
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.941444
player_id: cpu_3
player_name: Diego
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.947348
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped 6 for 9 at pos 1
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.953500
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Kenji": [{"rank": "K", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}], "Sofia": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "7", "suit": "spades"}, {"rank": "K", "suit": "spades"}]}


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.959485
player_id: cpu_0
player_name: Maya
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "3", "suit": "diamonds"}
decision_reason: swapped 6 for 3 at pos 4
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.965317
player_id: cpu_1
player_name: Kenji
action: take_discard
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.971565
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 3 for 5 at pos 4
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.978143
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.984535
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "2", "suit": "hearts"}
decision_reason: swapped 5 for 2 at pos 3
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.990800
player_id: cpu_3
player_name: Diego
action: take_discard
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:57.996827
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 2 for 7 at pos 3
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.003331
player_id: cpu_0
player_name: Maya
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.009755
player_id: cpu_0
player_name: Maya
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: swapped 7 for Q at pos 2
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.015937
player_id: cpu_1
player_name: Kenji
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.022169
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: swapped 8 for 2 at pos 1
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.028287
player_id: cpu_2
player_name: Sofia
action: take_discard
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.034084
player_id: cpu_2
player_name: Sofia
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 2 for 5 at pos 3
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.040380
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.055317
player_id: cpu_0
player_name: Maya
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.067361
player_id: cpu_1
player_name: Kenji
action: draw_deck
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.073977
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 5 for 8 at pos 1
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.080271
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.092810
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "6", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Kenji": [{"rank": "5", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}], "Sofia": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}]}


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.098857
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 2 for 6 at pos 1
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.105057
player_id: cpu_0
player_name: Maya
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Kenji": [{"rank": "5", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}], "Sofia": [{"rank": "K", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}, {"rank": "3", "suit": "spades"}], "Diego": [{"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "spades"}]}


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.112735
player_id: cpu_0
player_name: Maya
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 6 for 5 at pos 3
hand_json:
[{"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.118845
player_id: cpu_1
player_name: Kenji
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.124856
player_id: cpu_1
player_name: Kenji
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 5 for 9 at pos 5
hand_json:
[{"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.130687
player_id: cpu_2
player_name: Sofia
action: draw_deck
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"Maya": [{"rank": "3", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "7", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "6", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Kenji": [{"rank": "5", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "2", "suit": "clubs"}, {"rank": "3", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}], "Diego": [{"rank": "4", "suit": "spades"}, {"rank": "2", "suit": "spades"}, {"rank": "2", "suit": "hearts"}, {"rank": "K", "suit": "spades"}]}


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.143220
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}]

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


game_id: b543a1c3-6ed1-4d22-ad83-76ec9aa36bbf
timestamp: 2026-01-25 00:08:58.149682
player_id: cpu_3
player_name: Diego
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped A for 4 at pos 0
hand_json:
[{"rank": "A", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.166949
player_id: cpu_0
player_name: Sage
action: take_discard
card_rank: 4
card_suit: hearts
decision_reason: took 4 from discard
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "K", "suit": "clubs"}, {"rank": "7", "suit": "spades"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "8", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "hearts"}, {"rank": "10", "suit": "spades"}]}


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.172852
player_id: cpu_0
player_name: Sage
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 4 for 8 at pos 4
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

visible_opponents_json:
{"River": [{"rank": "K", "suit": "clubs"}, {"rank": "7", "suit": "spades"}], "Diego": [{"rank": "6", "suit": "clubs"}, {"rank": "8", "suit": "hearts"}], "Maya": [{"rank": "K", "suit": "hearts"}, {"rank": "10", "suit": "spades"}]}


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.178696
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.185019
player_id: cpu_1
player_name: River
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 2 for 7 at pos 3
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.191664
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.197743
player_id: cpu_2
player_name: Diego
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": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.203732
player_id: cpu_3
player_name: Maya
action: take_discard
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "10", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.209791
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 8
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 8 for 10 at pos 4
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.217119
player_id: cpu_0
player_name: Sage
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.230729
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.236771
player_id: cpu_1
player_name: River
action: swap
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "2", "suit": "clubs"}
decision_reason: swapped 9 for 2 at pos 0
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.243094
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.249342
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 2 for 6 at pos 0
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.255813
player_id: cpu_3
player_name: Maya
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.262100
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped 6 for J at pos 5
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.268256
player_id: cpu_0
player_name: Sage
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "9", "suit": "hearts"}, {"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "diamonds"}], "Diego": [{"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "clubs"}], "Maya": [{"rank": "K", "suit": "hearts"}, {"rank": "8", "suit": "hearts"}, {"rank": "6", "suit": "clubs"}]}


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.274191
player_id: cpu_0
player_name: Sage
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 5 for 5 at pos 0
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.280397
player_id: cpu_1
player_name: River
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "9", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.287084
player_id: cpu_1
player_name: River
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 5 for 9 at pos 0
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.297387
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.303943
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped 2 for A at pos 4
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.310307
player_id: cpu_3
player_name: Maya
action: take_discard
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took A from discard
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.316326
player_id: cpu_3
player_name: Maya
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": "8", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.322350
player_id: cpu_0
player_name: Sage
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.335370
player_id: cpu_1
player_name: River
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.341991
player_id: cpu_1
player_name: River
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: swapped 6 for J at pos 2
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.348329
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.354663
player_id: cpu_2
player_name: Diego
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: swapped A for A at pos 2
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.361138
player_id: cpu_3
player_name: Maya
action: take_discard
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: took A from discard
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "10", "suit": "diamonds", "face_up": false}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.367624
player_id: cpu_3
player_name: Maya
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: swapped A for 10 at pos 1
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.373930
player_id: cpu_0
player_name: Sage
action: draw_deck
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "diamonds"}
decision_reason: drew from deck
visible_opponents_json:
{"River": [{"rank": "5", "suit": "spades"}, {"rank": "K", "suit": "clubs"}, {"rank": "6", "suit": "diamonds"}, {"rank": "2", "suit": "diamonds"}], "Diego": [{"rank": "2", "suit": "clubs"}, {"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "spades"}], "Maya": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "hearts"}, {"rank": "A", "suit": "clubs"}, {"rank": "6", "suit": "clubs"}]}


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.380434
player_id: cpu_0
player_name: Sage
action: swap
card_rank: Q
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped Q for 5 at pos 2
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.386574
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.392796
player_id: cpu_1
player_name: River
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: swapped 6 for J at pos 5
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.398990
player_id: cpu_2
player_name: Diego
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.409192
player_id: cpu_2
player_name: Diego
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped A for 6 at pos 5
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.416144
player_id: cpu_3
player_name: Maya
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.422873
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 6 for 8 at pos 0
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.429148
player_id: cpu_0
player_name: Sage
action: take_discard
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.435699
player_id: cpu_0
player_name: Sage
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 8 for Q at pos 2
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.442040
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.448361
player_id: cpu_1
player_name: River
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 2 for 6 at pos 2
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.454528
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.471133
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped 6 for 3 at pos 3
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.477278
player_id: cpu_3
player_name: Maya
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 3 from discard
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.483115
player_id: cpu_3
player_name: Maya
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": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.489231
player_id: cpu_0
player_name: Sage
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.495205
player_id: cpu_0
player_name: Sage
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 6 for 8 at pos 2
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.501468
player_id: cpu_1
player_name: River
action: draw_deck
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "spades", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.507519
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 5
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.513545
player_id: cpu_2
player_name: Diego
action: take_discard
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.519477
player_id: cpu_2
player_name: Diego
action: swap
card_rank: 6
card_suit: spades
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 6 for 5 at pos 1
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.526065
player_id: cpu_3
player_name: Maya
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.532668
player_id: cpu_3
player_name: Maya
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 5 for 6 at pos 5
hand_json:
[{"rank": "3", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": true}, {"rank": "9", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.538972
player_id: cpu_0
player_name: Sage
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.545015
player_id: cpu_0
player_name: Sage
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "K", "suit": "spades"}
decision_reason: swapped 6 for K at pos 3
hand_json:
[{"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.551253
player_id: cpu_1
player_name: River
action: take_discard
card_rank: K
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took K from discard
hand_json:
[{"rank": "5", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: b9006dfd-9117-461d-a9a7-337c3e6f1bf7
timestamp: 2026-01-25 00:08:58.557838
player_id: cpu_1
player_name: River
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped K for 5 at pos 0
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.575856
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: Q
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "spades"}, {"rank": "7", "suit": "hearts"}], "Kenji": [{"rank": "Q", "suit": "hearts"}, {"rank": "Q", "suit": "diamonds"}], "Marcus": [{"rank": "7", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}]}


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.588429
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.601111
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "Q", "suit": "hearts", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.607600
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 4 for Q at pos 1
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.613927
player_id: cpu_3
player_name: Marcus
action: draw_deck
card_rank: 10
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.626009
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "spades"}, {"rank": "7", "suit": "hearts"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "Q", "suit": "diamonds"}], "Marcus": [{"rank": "7", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}]}


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.632245
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 9
card_suit: spades
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: swapped 9 for 9 at pos 0
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

visible_opponents_json:
{"Maya": [{"rank": "A", "suit": "spades"}, {"rank": "7", "suit": "hearts"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "Q", "suit": "diamonds"}], "Marcus": [{"rank": "7", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}]}


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.638233
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 10
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.650298
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: 3
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": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "Q", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.656193
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: swapped 3 for Q at pos 3
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.662174
player_id: cpu_3
player_name: Marcus
action: draw_deck
card_rank: J
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.674271
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "9", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.680069
player_id: cpu_0
player_name: Diego
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: swapped A for 9 at pos 0
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.686202
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "7", "suit": "clubs"}], "Kenji": [{"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}], "Marcus": [{"rank": "7", "suit": "diamonds"}, {"rank": "A", "suit": "hearts"}]}


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.692329
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 2 for 7 at pos 5
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.698534
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.705038
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 3
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 3 for 6 at pos 0
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.711537
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: took 6 from discard
visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "7", "suit": "clubs"}], "Maya": [{"rank": "A", "suit": "spades"}, {"rank": "2", "suit": "hearts"}], "Kenji": [{"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "3", "suit": "diamonds"}]}


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.721597
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 6 for 7 at pos 2
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.728083
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.734889
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "clubs"}
decision_reason: swapped 7 for A at pos 2
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.741217
player_id: cpu_1
player_name: Maya
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": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.748232
player_id: cpu_1
player_name: Maya
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped A for 5 at pos 4
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.755004
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.761564
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped 5 for 9 at pos 5
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.767848
player_id: cpu_3
player_name: Marcus
action: draw_deck
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.773948
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 4 for 6 at pos 2
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.780169
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.786530
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 6 for 7 at pos 2
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.792551
player_id: cpu_1
player_name: Maya
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.798800
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 7 for 8 at pos 2
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.805025
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.811261
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped K for 5 at pos 5
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.817577
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.823533
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: swapped 5 for J at pos 5
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.829626
player_id: cpu_0
player_name: Diego
action: draw_deck
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.835687
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: swapped 8 for 8 at pos 3
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.841602
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.847491
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 5 for 7 at pos 2
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.853455
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "9", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.859830
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: swapped 7 for 9 at pos 4
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.866986
player_id: cpu_3
player_name: Marcus
action: draw_deck
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.876607
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 7 for 5 at pos 1
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.883210
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.889265
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 5 for 8 at pos 3
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.895960
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: Q
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.908269
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "spades", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.914111
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "K", "suit": "spades"}
decision_reason: swapped 6 for K at pos 2
hand_json:
[{"rank": "3", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "clubs", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.920016
player_id: cpu_3
player_name: Marcus
action: take_discard
card_rank: K
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took K from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.926036
player_id: cpu_3
player_name: Marcus
action: swap
card_rank: K
card_suit: spades
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped K for 7 at pos 1
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.931854
player_id: cpu_0
player_name: Diego
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.938134
player_id: cpu_0
player_name: Diego
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "3", "suit": "spades"}
decision_reason: swapped 7 for 3 at pos 4
hand_json:
[{"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}]

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


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.943860
player_id: cpu_1
player_name: Maya
action: take_discard
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: took 3 from discard
visible_opponents_json:
{"Diego": [{"rank": "A", "suit": "diamonds"}, {"rank": "K", "suit": "diamonds"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "spades"}, {"rank": "7", "suit": "spades"}, {"rank": "7", "suit": "clubs"}], "Kenji": [{"rank": "3", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "7", "suit": "diamonds"}, {"rank": "K", "suit": "clubs"}], "Marcus": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "5", "suit": "hearts"}]}


game_id: 44b70acf-3b96-4af1-969d-94bd88a91ee6
timestamp: 2026-01-25 00:08:58.949842
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 3
card_suit: spades
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 3 for 5 at pos 2
hand_json:
[{"rank": "J", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": true}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:58.968089
player_id: cpu_0
player_name: Sage
action: draw_deck
card_rank: 8
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": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:58.974364
player_id: cpu_0
player_name: Sage
action: swap
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: swapped 8 for Q at pos 3
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:58.980448
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": true}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:58.986228
player_id: cpu_1
player_name: Maya
action: swap
card_rank: A
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: swapped A for 9 at pos 5
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:58.991896
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:58.997707
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped 4 for 10 at pos 0
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.003611
player_id: cpu_3
player_name: Diego
action: draw_deck
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.009390
player_id: cpu_3
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 2
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.015291
player_id: cpu_0
player_name: Sage
action: take_discard
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.021368
player_id: cpu_0
player_name: Sage
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 2 for 8 at pos 3
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.027490
player_id: cpu_1
player_name: Maya
action: take_discard
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.033399
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 8
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 8 for 5 at pos 3
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.039674
player_id: cpu_2
player_name: Kenji
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.046240
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped 5 for 5 at pos 2
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.052280
player_id: cpu_3
player_name: Diego
action: take_discard
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.058315
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 5
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped 5 for 7 at pos 4
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.064164
player_id: cpu_0
player_name: Sage
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.069966
player_id: cpu_0
player_name: Sage
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: swapped 7 for 10 at pos 4
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.075902
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.087196
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.093118
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped A for 5 at pos 2
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.099529
player_id: cpu_3
player_name: Diego
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.105451
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: swapped 5 for Q at pos 5
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.111234
player_id: cpu_0
player_name: Sage
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "Q", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.123301
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
visible_opponents_json:
{"Sage": [{"rank": "4", "suit": "clubs"}, {"rank": "2", "suit": "clubs"}, {"rank": "7", "suit": "spades"}], "Kenji": [{"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}], "Diego": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "5", "suit": "clubs"}]}


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.129208
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 6 for 8 at pos 0
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.135331
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.140939
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 8 for 6 at pos 4
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.146421
player_id: cpu_3
player_name: Diego
action: take_discard
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.152015
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 6
card_suit: clubs
discard_top_json: {"rank": "K", "suit": "diamonds"}
decision_reason: swapped 6 for K at pos 3
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.157919
player_id: cpu_0
player_name: Sage
action: take_discard
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took K from discard
visible_opponents_json:
{"Maya": [{"rank": "6", "suit": "diamonds"}, {"rank": "8", "suit": "diamonds"}, {"rank": "A", "suit": "clubs"}], "Kenji": [{"rank": "4", "suit": "hearts"}, {"rank": "3", "suit": "clubs"}, {"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "diamonds"}, {"rank": "8", "suit": "spades"}], "Diego": [{"rank": "K", "suit": "spades"}, {"rank": "4", "suit": "spades"}, {"rank": "6", "suit": "clubs"}, {"rank": "5", "suit": "diamonds"}, {"rank": "5", "suit": "clubs"}]}


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.164044
player_id: cpu_0
player_name: Sage
action: swap
card_rank: K
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "spades"}
decision_reason: swapped K for 7 at pos 4
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.170229
player_id: cpu_1
player_name: Maya
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "diamonds", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.176388
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 7 for 8 at pos 3
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.182377
player_id: cpu_2
player_name: Kenji
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.188298
player_id: cpu_2
player_name: Kenji
action: swap
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 9 for 7 at pos 5
hand_json:
[{"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "spades", "face_up": true}, {"rank": "9", "suit": "clubs", "face_up": true}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.194384
player_id: cpu_3
player_name: Diego
action: take_discard
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 7 from discard
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.200661
player_id: cpu_3
player_name: Diego
action: swap
card_rank: 7
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: swapped 7 for 6 at pos 1
hand_json:
[{"rank": "K", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.206752
player_id: cpu_0
player_name: Sage
action: take_discard
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "10", "suit": "hearts", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.213278
player_id: cpu_0
player_name: Sage
action: swap
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: swapped 6 for 10 at pos 0
hand_json:
[{"rank": "6", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.219796
player_id: cpu_1
player_name: Maya
action: draw_deck
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "9", "suit": "spades", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "2", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: a0ce76b9-f173-4751-a3bd-767afd44285f
timestamp: 2026-01-25 00:08:59.226351
player_id: cpu_1
player_name: Maya
action: swap
card_rank: 7
card_suit: hearts
discard_top_json: {"rank": "2", "suit": "hearts"}
decision_reason: swapped 7 for 2 at pos 4
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "7", "suit": "clubs", "face_up": true}, {"rank": "9", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "clubs", "face_up": true}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.651902
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 9
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.664603
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.677921
player_id: cpu_2
player_name: Priya
action: take_discard
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 8 from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.684282
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 8 for 4 at pos 5
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.690665
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": false}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.697316
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 4 for 6 at pos 4
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.703712
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "8", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.709716
player_id: cpu_0
player_name: River
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: swapped 6 for 8 at pos 0
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.715413
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.721060
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped K for 7 at pos 1
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.726851
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: 8
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "8", "suit": "hearts", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.738842
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "7", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.745090
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: swapped 5 for 7 at pos 3
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.751250
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.757697
player_id: cpu_0
player_name: River
action: swap
card_rank: 2
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 2 for 6 at pos 0
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.764542
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": false}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.770742
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped 6 for 4 at pos 4
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.776850
player_id: cpu_2
player_name: Priya
action: take_discard
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "7", "suit": "diamonds"}
decision_reason: took 4 from discard
visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "6", "suit": "clubs"}], "Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "6", "suit": "diamonds"}], "Sage": [{"rank": "4", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.782806
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 4
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: swapped 4 for 8 at pos 2
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.788984
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.794958
player_id: cpu_3
player_name: Sage
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped A for 5 at pos 3
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.801201
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "6", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.807202
player_id: cpu_0
player_name: River
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: swapped 5 for 6 at pos 3
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.813530
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: J
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.826933
player_id: cpu_2
player_name: Priya
action: draw_deck
card_rank: J
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "8", "suit": "clubs", "face_up": true}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.839248
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.845227
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "clubs"}
decision_reason: swapped 3 for 4 at pos 1
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.851712
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.857962
player_id: cpu_0
player_name: River
action: swap
card_rank: 4
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped 4 for 5 at pos 3
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.863820
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 5 from discard
visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Priya": [{"rank": "4", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "8", "suit": "clubs"}], "Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.869793
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 5 for 6 at pos 4
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.876015
player_id: cpu_2
player_name: Priya
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "J", "suit": "diamonds"}
decision_reason: took 6 from discard
visible_opponents_json:
{"River": [{"rank": "2", "suit": "clubs"}, {"rank": "2", "suit": "spades"}, {"rank": "4", "suit": "clubs"}], "Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "4", "suit": "diamonds"}, {"rank": "5", "suit": "clubs"}], "Sage": [{"rank": "3", "suit": "diamonds"}, {"rank": "A", "suit": "spades"}, {"rank": "4", "suit": "hearts"}]}


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.882378
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: swapped 6 for 8 at pos 5
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.891224
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.897461
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 3
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "hearts"}
decision_reason: swapped 3 for 4 at pos 4
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.904258
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.910666
player_id: cpu_0
player_name: River
action: swap
card_rank: 4
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: swapped 4 for A at pos 1
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.916656
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took A from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.922648
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped A for 5 at pos 4
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.928550
player_id: cpu_2
player_name: Priya
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.934830
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "5", "suit": "spades"}
decision_reason: swapped 5 for 5 at pos 1
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.940503
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": false}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.945947
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 5
card_suit: spades
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 5 for 5 at pos 2
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.951498
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "2", "suit": "diamonds", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.957167
player_id: cpu_0
player_name: River
action: swap
card_rank: 5
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: swapped 5 for A at pos 4
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.963032
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took A from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.968772
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "4", "suit": "diamonds"}
decision_reason: swapped A for 4 at pos 3
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.974646
player_id: cpu_2
player_name: Priya
action: take_discard
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 4 from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "diamonds", "face_up": true}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.980540
player_id: cpu_2
player_name: Priya
action: swap
card_rank: 4
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "diamonds"}
decision_reason: swapped 4 for 6 at pos 5
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.986923
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: took 6 from discard
hand_json:
[{"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.993149
player_id: cpu_3
player_name: Sage
action: swap
card_rank: 6
card_suit: diamonds
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: swapped 6 for 10 at pos 0
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:57.999567
player_id: cpu_0
player_name: River
action: draw_deck
card_rank: 9
card_suit: hearts
discard_top_json: {"rank": "10", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:58.011788
player_id: cpu_1
player_name: Marcus
action: draw_deck
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:58.017398
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 2
card_suit: hearts
discard_top_json: {"rank": "A", "suit": "hearts"}
decision_reason: swapped 2 for A at pos 3
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:58.023173
player_id: cpu_2
player_name: Priya
action: take_discard
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took A from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "5", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:58.029308
player_id: cpu_2
player_name: Priya
action: swap
card_rank: A
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "clubs"}
decision_reason: swapped A for 5 at pos 1
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:58.035432
player_id: cpu_3
player_name: Sage
action: take_discard
card_rank: 5
card_suit: clubs
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 5 from discard
hand_json:
[{"rank": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:58.041394
player_id: cpu_3
player_name: Sage
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": "6", "suit": "diamonds", "face_up": true}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "5", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "3", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "clubs", "face_up": true}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:58.047296
player_id: cpu_0
player_name: River
action: take_discard
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 7 from discard
visible_opponents_json:
{"Marcus": [{"rank": "K", "suit": "clubs"}, {"rank": "2", "suit": "hearts"}, {"rank": "A", "suit": "diamonds"}], "Priya": [{"rank": "A", "suit": "hearts"}, {"rank": "4", "suit": "spades"}, {"rank": "5", "suit": "diamonds"}, {"rank": "4", "suit": "diamonds"}], "Sage": [{"rank": "6", "suit": "diamonds"}, {"rank": "3", "suit": "diamonds"}, {"rank": "5", "suit": "spades"}, {"rank": "A", "suit": "spades"}, {"rank": "3", "suit": "clubs"}, {"rank": "5", "suit": "clubs"}]}


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:58.053954
player_id: cpu_0
player_name: River
action: swap
card_rank: 7
card_suit: spades
discard_top_json: {"rank": "2", "suit": "diamonds"}
decision_reason: swapped 7 for 2 at pos 5
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "4", "suit": "clubs", "face_up": true}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "spades", "face_up": true}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:58.060733
player_id: cpu_1
player_name: Marcus
action: take_discard
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took 2 from discard
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:58.066888
player_id: cpu_1
player_name: Marcus
action: swap
card_rank: 2
card_suit: diamonds
discard_top_json: {"rank": "A", "suit": "diamonds"}
decision_reason: swapped 2 for A at pos 4
hand_json:
[{"rank": "K", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "2", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:58.072852
player_id: cpu_2
player_name: Priya
action: take_discard
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "9", "suit": "hearts"}
decision_reason: took A from discard
hand_json:
[{"rank": "10", "suit": "spades", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 1143437a-5661-4812-b6e6-183eb6096d62
timestamp: 2026-01-25 00:09:58.079222
player_id: cpu_2
player_name: Priya
action: swap
card_rank: A
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "diamonds"}
decision_reason: swapped A for 5 at pos 4
hand_json:
[{"rank": "10", "suit": "spades", "face_up": true}, {"rank": "A", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "clubs", "face_up": true}, {"rank": "A", "suit": "diamonds", "face_up": true}, {"rank": "4", "suit": "diamonds", "face_up": true}]

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


game_id: 6aa04199-c521-4dee-9009-e7cb07322b54
timestamp: 2026-01-25 00:09:58.095946
player_id: cpu_0
player_name: Marcus
action: take_discard
card_rank: 2
card_suit: spades
decision_reason: took 2 from discard
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "7", "suit": "hearts", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: 6aa04199-c521-4dee-9009-e7cb07322b54
timestamp: 2026-01-25 00:09:58.101713
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 2
card_suit: spades
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: swapped 2 for 7 at pos 1
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: 6aa04199-c521-4dee-9009-e7cb07322b54
timestamp: 2026-01-25 00:09:58.107612
player_id: cpu_1
player_name: Kenji
action: draw_deck
card_rank: 8
card_suit: clubs
discard_top_json: {"rank": "7", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}]

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


game_id: 6aa04199-c521-4dee-9009-e7cb07322b54
timestamp: 2026-01-25 00:09:58.119778
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: A
card_suit: spades
discard_top_json: {"rank": "8", "suit": "clubs"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "6", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: 6aa04199-c521-4dee-9009-e7cb07322b54
timestamp: 2026-01-25 00:09:58.126096
player_id: cpu_2
player_name: River
action: swap
card_rank: A
card_suit: spades
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: swapped A for 6 at pos 3
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: 6aa04199-c521-4dee-9009-e7cb07322b54
timestamp: 2026-01-25 00:09:58.132334
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "6", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "4", "suit": "spades", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 6aa04199-c521-4dee-9009-e7cb07322b54
timestamp: 2026-01-25 00:09:58.138405
player_id: cpu_3
player_name: Sage
action: swap
card_rank: K
card_suit: clubs
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: swapped K for 4 at pos 1
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


game_id: 6aa04199-c521-4dee-9009-e7cb07322b54
timestamp: 2026-01-25 00:09:58.144805
player_id: cpu_0
player_name: Marcus
action: draw_deck
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "4", "suit": "spades"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "5", "suit": "hearts", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: 6aa04199-c521-4dee-9009-e7cb07322b54
timestamp: 2026-01-25 00:09:58.151419
player_id: cpu_0
player_name: Marcus
action: swap
card_rank: 3
card_suit: diamonds
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: swapped 3 for 5 at pos 3
hand_json:
[{"rank": "2", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "spades", "face_up": true}, {"rank": "7", "suit": "diamonds", "face_up": false}, {"rank": "3", "suit": "diamonds", "face_up": true}, {"rank": "J", "suit": "hearts", "face_up": false}, {"rank": "K", "suit": "spades", "face_up": false}]

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


game_id: 6aa04199-c521-4dee-9009-e7cb07322b54
timestamp: 2026-01-25 00:09:58.157333
player_id: cpu_1
player_name: Kenji
action: draw_deck
card_rank: 6
card_suit: hearts
discard_top_json: {"rank": "5", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "clubs", "face_up": false}, {"rank": "8", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "diamonds", "face_up": true}, {"rank": "10", "suit": "clubs", "face_up": false}, {"rank": "2", "suit": "hearts", "face_up": true}, {"rank": "4", "suit": "hearts", "face_up": false}]

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


game_id: 6aa04199-c521-4dee-9009-e7cb07322b54
timestamp: 2026-01-25 00:09:58.169121
player_id: cpu_2
player_name: River
action: draw_deck
card_rank: Q
card_suit: diamonds
discard_top_json: {"rank": "6", "suit": "hearts"}
decision_reason: drew from deck
hand_json:
[{"rank": "2", "suit": "diamonds", "face_up": false}, {"rank": "A", "suit": "hearts", "face_up": false}, {"rank": "5", "suit": "diamonds", "face_up": true}, {"rank": "A", "suit": "spades", "face_up": true}, {"rank": "J", "suit": "diamonds", "face_up": false}, {"rank": "9", "suit": "diamonds", "face_up": false}]

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


game_id: 6aa04199-c521-4dee-9009-e7cb07322b54
timestamp: 2026-01-25 00:09:58.181292
player_id: cpu_3
player_name: Sage
action: draw_deck
card_rank: K
card_suit: hearts
discard_top_json: {"rank": "Q", "suit": "diamonds"}
decision_reason: drew from deck
hand_json:
[{"rank": "7", "suit": "spades", "face_up": false}, {"rank": "K", "suit": "clubs", "face_up": true}, {"rank": "Q", "suit": "hearts", "face_up": false}, {"rank": "J", "suit": "spades", "face_up": false}, {"rank": "9", "suit": "clubs", "face_up": false}, {"rank": "3", "suit": "clubs", "face_up": true}]

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


