In the toIndividualDetails object it's allowed that a secondaryGrantReason can be specified without a primaryGrantReason. This requires a special case in the code when we're processing the data as we can't rely on the fact that if there is no secondaryGrantReason if primaryGrantReason is unspecified.
A possible improvement to this would be an array of grantToIndividualsReasons which has an allowed number of entries from 0-2 (or inf if so desired).