that framework allows any mechanics, like using a confuse card to confuse an enemy which inflicts a status which makes their next move target a random card in play or whatever
user2: @bot cards > user2 accepted the duel! Shuffling deck... > (user1) Your cards are $(img:A), $(img:B), $(img:C). > (user2) Your cards are $(img:D), $(img:E), $(img:F). > user1 (HP)'s turn! Play or select a card.
user1: @bot play A > user1 (HP) plays A! Select your target or pass.
user1: @bot target D > No such card in play, please try again.
user1: @bot pass > user2 (HP)'s turn! Play or select a card.
something like that
play/select occur in the same phase so you can either play a new card and use it or use an existing card target will attempt to use the selected card on the target card if available players start with 10 HP and lose 1 HP each time a card is killed