{
  "partida": {
    "id": 173,
    "room_code": 30320,
    "max_players": 3,
    "created_at_utc": "2026-07-21T20:37:38.2583944Z",
    "configured_at_utc": "2026-07-21T20:37:38.7435719Z",
    "started_at_utc": null,
    "finished_at_utc": "2026-07-21T20:53:03.3241290Z",
    "doubles": 0,
    "rounds_json": "[\"ultima\",\"bajar\",\"subastado\"]",
    "final_state_json": "{\"roomCode\":30320,\"currentRoundIndex\":0,\"roundType\":\"\",\"roundCards\":0,\"dealerName\":\"\",\"turnName\":\"\",\"started\":false,\"finished\":false,\"roundsConfigured\":[\"ultima\",\"bajar\",\"subastado\"],\"doubles\":false,\"bidders\":[],\"subastadoBidders\":[],\"disconnectedPlayers\":[],\"trump\":null,\"subastado\":null,\"totals\":{\"bids\":0,\"made\":0},\"players\":[],\"table\":[]}",
    "bot_version": "v2"
  },
  "jugadores": [],
  "rondas": [],
  "manos": [],
  "puntuaciones": [],
  "bazas": [],
  "cartas": [],
  "eventos": [
    {
      "id": 31019,
      "room_session_id": 173,
      "created_at_utc": "2026-07-21T20:37:38.4863027Z",
      "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\":30320,\"maxPlayers\":3}",
      "state_json": "{\"roomCode\":30320,\"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": 31020,
      "room_session_id": 173,
      "created_at_utc": "2026-07-21T20:37:38.9568699Z",
      "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\":30320,\"dobles\":false,\"rounds\":[\"ultima\",\"bajar\",\"subastado\"]}",
      "state_json": "{\"roomCode\":30320,\"currentRoundIndex\":0,\"roundType\":\"\",\"roundCards\":0,\"dealerName\":\"\",\"turnName\":\"\",\"started\":false,\"finished\":false,\"roundsConfigured\":[\"ultima\",\"bajar\",\"subastado\"],\"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": 31021,
      "room_session_id": 173,
      "created_at_utc": "2026-07-21T20:37:39.1870902Z",
      "event_type": "player_joined",
      "player_name": "VoiceTestA",
      "round_index": 0,
      "round_type": null,
      "round_cards": null,
      "dealer_name": null,
      "turn_player_name": "VoiceTestA",
      "payload_json": "{\"connectedPlayers\":1,\"maxPlayers\":3,\"shouldStartGame\":false}",
      "state_json": "{\"roomCode\":30320,\"currentRoundIndex\":0,\"roundType\":\"\",\"roundCards\":0,\"dealerName\":\"\",\"turnName\":\"VoiceTestA\",\"started\":false,\"finished\":false,\"roundsConfigured\":[\"ultima\",\"bajar\",\"subastado\"],\"doubles\":false,\"bidders\":[],\"subastadoBidders\":[],\"disconnectedPlayers\":[],\"trump\":null,\"subastado\":null,\"totals\":{\"bids\":0,\"made\":0},\"players\":[{\"name\":\"VoiceTestA\",\"id\":\"d9d4bd7b-70d8-4735-afd6-8faf9e9e2f01\",\"bid\":0,\"made\":0,\"points\":0,\"variation\":0,\"cardCount\":0,\"hand\":[]}],\"table\":[]}",
      "before_state_json": null,
      "after_state_json": null
    },
    {
      "id": 31023,
      "room_session_id": 173,
      "created_at_utc": "2026-07-21T20:37:40.9067248Z",
      "event_type": "player_joined",
      "player_name": "VoiceTestB",
      "round_index": 0,
      "round_type": null,
      "round_cards": null,
      "dealer_name": null,
      "turn_player_name": "VoiceTestA",
      "payload_json": "{\"connectedPlayers\":2,\"maxPlayers\":3,\"shouldStartGame\":false}",
      "state_json": "{\"roomCode\":30320,\"currentRoundIndex\":0,\"roundType\":\"\",\"roundCards\":0,\"dealerName\":\"\",\"turnName\":\"VoiceTestA\",\"started\":false,\"finished\":false,\"roundsConfigured\":[\"ultima\",\"bajar\",\"subastado\"],\"doubles\":false,\"bidders\":[],\"subastadoBidders\":[],\"disconnectedPlayers\":[],\"trump\":null,\"subastado\":null,\"totals\":{\"bids\":0,\"made\":0},\"players\":[{\"name\":\"VoiceTestA\",\"id\":\"d9d4bd7b-70d8-4735-afd6-8faf9e9e2f01\",\"bid\":0,\"made\":0,\"points\":0,\"variation\":0,\"cardCount\":0,\"hand\":[]},{\"name\":\"VoiceTestB\",\"id\":\"9ebc5c3d-fb7e-4ce0-b0de-62c889a6d6a1\",\"bid\":0,\"made\":0,\"points\":0,\"variation\":0,\"cardCount\":0,\"hand\":[]}],\"table\":[]}",
      "before_state_json": null,
      "after_state_json": null
    },
    {
      "id": 31024,
      "room_session_id": 173,
      "created_at_utc": "2026-07-21T20:37:41.4346050Z",
      "event_type": "player_disconnected",
      "player_name": "VoiceTestA",
      "round_index": 0,
      "round_type": null,
      "round_cards": null,
      "dealer_name": null,
      "turn_player_name": "VoiceTestB",
      "payload_json": "{\"connectedPlayers\":1,\"maxPlayers\":3,\"partidaIniciada\":false}",
      "state_json": "{\"roomCode\":30320,\"currentRoundIndex\":0,\"roundType\":\"\",\"roundCards\":0,\"dealerName\":\"\",\"turnName\":\"VoiceTestB\",\"started\":false,\"finished\":false,\"roundsConfigured\":[\"ultima\",\"bajar\",\"subastado\"],\"doubles\":false,\"bidders\":[],\"subastadoBidders\":[],\"disconnectedPlayers\":[],\"trump\":null,\"subastado\":null,\"totals\":{\"bids\":0,\"made\":0},\"players\":[{\"name\":\"VoiceTestB\",\"id\":\"9ebc5c3d-fb7e-4ce0-b0de-62c889a6d6a1\",\"bid\":0,\"made\":0,\"points\":0,\"variation\":0,\"cardCount\":0,\"hand\":[]}],\"table\":[]}",
      "before_state_json": null,
      "after_state_json": null
    },
    {
      "id": 31025,
      "room_session_id": 173,
      "created_at_utc": "2026-07-21T20:37:41.6582206Z",
      "event_type": "player_disconnected",
      "player_name": "VoiceTestB",
      "round_index": 0,
      "round_type": null,
      "round_cards": null,
      "dealer_name": null,
      "turn_player_name": null,
      "payload_json": "{\"connectedPlayers\":0,\"maxPlayers\":3,\"partidaIniciada\":false}",
      "state_json": "{\"roomCode\":30320,\"currentRoundIndex\":0,\"roundType\":\"\",\"roundCards\":0,\"dealerName\":\"\",\"turnName\":\"\",\"started\":false,\"finished\":false,\"roundsConfigured\":[\"ultima\",\"bajar\",\"subastado\"],\"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": 31354,
      "room_session_id": 173,
      "created_at_utc": "2026-07-21T20:53:03.5442007Z",
      "event_type": "room_removed",
      "player_name": null,
      "round_index": 0,
      "round_type": null,
      "round_cards": null,
      "dealer_name": null,
      "turn_player_name": null,
      "payload_json": "{\"reason\":\"expirada por limpieza\"}",
      "state_json": "{\"roomCode\":30320,\"currentRoundIndex\":0,\"roundType\":\"\",\"roundCards\":0,\"dealerName\":\"\",\"turnName\":\"\",\"started\":false,\"finished\":false,\"roundsConfigured\":[\"ultima\",\"bajar\",\"subastado\"],\"doubles\":false,\"bidders\":[],\"subastadoBidders\":[],\"disconnectedPlayers\":[],\"trump\":null,\"subastado\":null,\"totals\":{\"bids\":0,\"made\":0},\"players\":[],\"table\":[]}",
      "before_state_json": null,
      "after_state_json": null
    }
  ]
}