mainly because there can be disputes against refunds, and I wanted it to be polymorphic across txn types.  It could also be implemented using anyOf against refunds and debits