## Descripción El backend `cards_game_service` ya expone `hiddenHandIds` en el `View` redactado (ids reales, sin `type`, de la mano rival cuando hay un trío de gatos pendiente contra ella — ver `cards_game_service#9`, ya mergeada en ese repo), pensado justamente para que el cliente pueda armar un `ChooseCardAction` válido al elegir a ciegas. El lado Flutter (`online_wire_codec.dart`) nunca llegó a consumir ese campo: seguía generando ids sintéticos (`_placeholderCard`) para la mano rival, que el servidor nunca va a reconocer (`stealChosenCard` busca la carta por id exacto). El trabajo existía como commit suelto en una rama sin PR (`de71c77`, "consumir hiddenHandIds del backend para el trío de gatos a ciegas") — quedó huérfano durante el trabajo de Fase 7. ## Fix `_playerFromWire` en `online_wire_codec.dart` ahora arma la mano rival con los ids reales de `hiddenHandIds` cuando el backend los manda, en vez de placeholders sintéticos, cuando no hay `hand` completa ni `hiddenHandIds` sigue cayendo al placeholder de siempre por tamaño (`handSize`).