// Usa la clase TransitCard: crear objetos con new y enviarles mensajes.
void main() {
    TransitCard alice = new TransitCard("A-001");
    TransitCard bob = new TransitCard("A-002");

    alice.recharge(1000);
    boolean paid = alice.pay(250);
    IO.println(alice.id() + ": pagó " + paid + ", saldo " + alice.balance());

    // bob tiene su propio estado: el pasaje de alice no lo toca.
    paid = bob.pay(250);
    IO.println(bob.id() + ": pagó " + paid + ", saldo " + bob.balance());

    // Identidad: dos new crean dos objetos distintos.
    TransitCard same = alice;
    IO.println("alice == bob: " + (alice == bob));
    IO.println("alice == same: " + (alice == same));
}
