Imagine that you have a small virtual machine, which is implemented as a state machine. It might be driven by a program like:
open SERIAL_NUMBER
begin-transaction
read-do 0x63
end-transaction
The state machine's state can't easily hold both the card and the transaction, because Rust doesn't like self-referential data structures. To work around this, the transaction could own the card.