Since release 3.0.0 all fields on Payment became optional. What is the rational for this? How are these types should now be used? Should we be using not-null assertion?
According to the api reference fields like amount cannot be undefined. Also it is very strange now that some fields can be both undefined and null.