Interesting defense. Not sure I entirely agree. I admit there's less jumping around, which makes it easier when scanning code. But, the extra fields might be misleading to the uninformed code scanner (who might assume they were all applicable). I also generally opt for the more traditional design whenever possible unless strongly overruled by other considerations (such as performance, for instance, as was the case with continuing to support including payments on GET of registrations). 

Ultimately, I'm not wanting to be legalistic, as I see there is value in either solution. And, if I were to rewrite it, I might not like the extra overhead myself.

By the way, I think it's four fields, including `refundedPaymentId`. :-)