{
  "partida": {
    "id": 168,
    "room_code": 99843,
    "max_players": 2,
    "created_at_utc": "2026-07-21T20:07:12.4146274Z",
    "configured_at_utc": "2026-07-21T20:07:12.8758959Z",
    "started_at_utc": null,
    "finished_at_utc": "2026-07-21T20:22:55.2744707Z",
    "doubles": 0,
    "rounds_json": "[\"ultima\"]",
    "final_state_json": "{\"roomCode\":99843,\"currentRoundIndex\":0,\"roundType\":\"UltimaPinta\",\"roundCards\":0,\"dealerName\":\"\",\"turnName\":\"\",\"started\":false,\"finished\":false,\"roundsConfigured\":[\"ultima\"],\"doubles\":false,\"bidders\":[],\"subastadoBidders\":[],\"disconnectedPlayers\":[],\"trump\":null,\"subastado\":{\"isSubastado\":false,\"bestPlayerId\":null,\"bestPlayerName\":\"\",\"bestBid\":0,\"bestSuit\":null,\"currentBidTurn\":\"\"},\"totals\":{\"bids\":0,\"made\":0},\"players\":[],\"table\":[]}",
    "bot_version": "v2"
  },
  "jugadores": [],
  "rondas": [],
  "manos": [],
  "puntuaciones": [],
  "bazas": [],
  "cartas": [],
  "eventos": [
    {
      "id": 30757,
      "room_session_id": 168,
      "created_at_utc": "2026-07-21T20:07:12.6548879Z",
      "event_type": "room_created",
      "player_name": null,
      "round_index": 0,
      "round_type": null,
      "round_cards": null,
      "dealer_name": null,
      "turn_player_name": null,
      "payload_json": "{\"roomCode\":99843,\"maxPlayers\":2}",
      "state_json": "{\"roomCode\":99843,\"currentRoundIndex\":0,\"roundType\":\"\",\"roundCards\":0,\"dealerName\":\"\",\"turnName\":\"\",\"started\":false,\"finished\":false,\"roundsConfigured\":[],\"doubles\":false,\"bidders\":[],\"subastadoBidders\":[],\"disconnectedPlayers\":[],\"trump\":null,\"subastado\":null,\"totals\":{\"bids\":0,\"made\":0},\"players\":[],\"table\":[]}",
      "before_state_json": null,
      "after_state_json": null
    },
    {
      "id": 30758,
      "room_session_id": 168,
      "created_at_utc": "2026-07-21T20:07:13.0919707Z",
      "event_type": "room_configured",
      "player_name": null,
      "round_index": 0,
      "round_type": null,
      "round_cards": null,
      "dealer_name": null,
      "turn_player_name": null,
      "payload_json": "{\"roomCode\":99843,\"dobles\":false,\"rounds\":[\"ultima\"]}",
      "state_json": "{\"roomCode\":99843,\"currentRoundIndex\":0,\"roundType\":\"\",\"roundCards\":0,\"dealerName\":\"\",\"turnName\":\"\",\"started\":false,\"finished\":false,\"roundsConfigured\":[\"ultima\"],\"doubles\":false,\"bidders\":[],\"subastadoBidders\":[],\"disconnectedPlayers\":[],\"trump\":null,\"subastado\":null,\"totals\":{\"bids\":0,\"made\":0},\"players\":[],\"table\":[]}",
      "before_state_json": null,
      "after_state_json": null
    },
    {
      "id": 30759,
      "room_session_id": 168,
      "created_at_utc": "2026-07-21T20:07:13.3208024Z",
      "event_type": "player_joined",
      "player_name": "voiceA",
      "round_index": 0,
      "round_type": null,
      "round_cards": null,
      "dealer_name": null,
      "turn_player_name": "voiceA",
      "payload_json": "{\"connectedPlayers\":1,\"maxPlayers\":2,\"shouldStartGame\":false}",
      "state_json": "{\"roomCode\":99843,\"currentRoundIndex\":0,\"roundType\":\"\",\"roundCards\":0,\"dealerName\":\"\",\"turnName\":\"voiceA\",\"started\":false,\"finished\":false,\"roundsConfigured\":[\"ultima\"],\"doubles\":false,\"bidders\":[],\"subastadoBidders\":[],\"disconnectedPlayers\":[],\"trump\":null,\"subastado\":null,\"totals\":{\"bids\":0,\"made\":0},\"players\":[{\"name\":\"voiceA\",\"id\":\"6e5e9505-3970-40c9-83a9-0c881fcc62d8\",\"bid\":0,\"made\":0,\"points\":0,\"variation\":0,\"cardCount\":0,\"hand\":[]}],\"table\":[]}",
      "before_state_json": null,
      "after_state_json": null
    },
    {
      "id": 30760,
      "room_session_id": 168,
      "created_at_utc": "2026-07-21T20:07:13.5540157Z",
      "event_type": "player_joined",
      "player_name": "voiceB",
      "round_index": 0,
      "round_type": null,
      "round_cards": null,
      "dealer_name": "voiceB",
      "turn_player_name": "voiceA",
      "payload_json": "{\"connectedPlayers\":2,\"maxPlayers\":2,\"shouldStartGame\":true}",
      "state_json": "{\"roomCode\":99843,\"currentRoundIndex\":0,\"roundType\":\"\",\"roundCards\":0,\"dealerName\":\"voiceB\",\"turnName\":\"voiceA\",\"started\":false,\"finished\":false,\"roundsConfigured\":[\"ultima\"],\"doubles\":false,\"bidders\":[],\"subastadoBidders\":[],\"disconnectedPlayers\":[],\"trump\":null,\"subastado\":null,\"totals\":{\"bids\":0,\"made\":0},\"players\":[{\"name\":\"voiceA\",\"id\":\"6e5e9505-3970-40c9-83a9-0c881fcc62d8\",\"bid\":0,\"made\":0,\"points\":0,\"variation\":0,\"cardCount\":0,\"hand\":[]},{\"name\":\"voiceB\",\"id\":\"ee30d62e-3635-47a9-a79c-789ca82b4530\",\"bid\":0,\"made\":0,\"points\":0,\"variation\":0,\"cardCount\":0,\"hand\":[]}],\"table\":[]}",
      "before_state_json": null,
      "after_state_json": null
    },
    {
      "id": 30761,
      "room_session_id": 168,
      "created_at_utc": "2026-07-21T20:07:13.7815639Z",
      "event_type": "player_disconnected",
      "player_name": "voiceB",
      "round_index": 0,
      "round_type": "UltimaPinta",
      "round_cards": 40,
      "dealer_name": null,
      "turn_player_name": "voiceA",
      "payload_json": "{\"connectedPlayers\":1,\"maxPlayers\":2,\"partidaIniciada\":false}",
      "state_json": "{\"roomCode\":99843,\"currentRoundIndex\":0,\"roundType\":\"UltimaPinta\",\"roundCards\":40,\"dealerName\":\"\",\"turnName\":\"voiceA\",\"started\":false,\"finished\":false,\"roundsConfigured\":[\"ultima\"],\"doubles\":false,\"bidders\":[],\"subastadoBidders\":[],\"disconnectedPlayers\":[],\"trump\":null,\"subastado\":{\"isSubastado\":false,\"bestPlayerId\":null,\"bestPlayerName\":\"\",\"bestBid\":0,\"bestSuit\":null,\"currentBidTurn\":\"voiceA\"},\"totals\":{\"bids\":0,\"made\":0},\"players\":[{\"name\":\"voiceA\",\"id\":\"6e5e9505-3970-40c9-83a9-0c881fcc62d8\",\"bid\":0,\"made\":0,\"points\":0,\"variation\":0,\"cardCount\":0,\"hand\":[]}],\"table\":[]}",
      "before_state_json": null,
      "after_state_json": null
    },
    {
      "id": 30762,
      "room_session_id": 168,
      "created_at_utc": "2026-07-21T20:07:14.1854859Z",
      "event_type": "player_disconnected",
      "player_name": "voiceA",
      "round_index": 0,
      "round_type": "UltimaPinta",
      "round_cards": 0,
      "dealer_name": null,
      "turn_player_name": null,
      "payload_json": "{\"connectedPlayers\":0,\"maxPlayers\":2,\"partidaIniciada\":false}",
      "state_json": "{\"roomCode\":99843,\"currentRoundIndex\":0,\"roundType\":\"UltimaPinta\",\"roundCards\":0,\"dealerName\":\"\",\"turnName\":\"\",\"started\":false,\"finished\":false,\"roundsConfigured\":[\"ultima\"],\"doubles\":false,\"bidders\":[],\"subastadoBidders\":[],\"disconnectedPlayers\":[],\"trump\":null,\"subastado\":{\"isSubastado\":false,\"bestPlayerId\":null,\"bestPlayerName\":\"\",\"bestBid\":0,\"bestSuit\":null,\"currentBidTurn\":\"\"},\"totals\":{\"bids\":0,\"made\":0},\"players\":[],\"table\":[]}",
      "before_state_json": null,
      "after_state_json": null
    },
    {
      "id": 30778,
      "room_session_id": 168,
      "created_at_utc": "2026-07-21T20:22:55.5403563Z",
      "event_type": "room_removed",
      "player_name": null,
      "round_index": 0,
      "round_type": "UltimaPinta",
      "round_cards": 0,
      "dealer_name": null,
      "turn_player_name": null,
      "payload_json": "{\"reason\":\"expirada por limpieza\"}",
      "state_json": "{\"roomCode\":99843,\"currentRoundIndex\":0,\"roundType\":\"UltimaPinta\",\"roundCards\":0,\"dealerName\":\"\",\"turnName\":\"\",\"started\":false,\"finished\":false,\"roundsConfigured\":[\"ultima\"],\"doubles\":false,\"bidders\":[],\"subastadoBidders\":[],\"disconnectedPlayers\":[],\"trump\":null,\"subastado\":{\"isSubastado\":false,\"bestPlayerId\":null,\"bestPlayerName\":\"\",\"bestBid\":0,\"bestSuit\":null,\"currentBidTurn\":\"\"},\"totals\":{\"bids\":0,\"made\":0},\"players\":[],\"table\":[]}",
      "before_state_json": null,
      "after_state_json": null
    }
  ]
}