Also, is there some link between `discountAmount` and `discountPercent`? E.g. should
```
amount * discountPercent = discountAmount
```
or some other invariant be true? In that case, should we validate this, or can we keep only two of the three and calculate the third?