Decouple cards from their game state
The cards should be decoupled from their state in game. The cards' features should be stored in the card object while the game state (current HP / damage, status effects, attached cards, other effects, etc.) should be stored separately. This would make it easier to work with the data for many purposes, including gamestate copying.