Right.  I share your concerns about large data sets.  Plus, I don't think the data is an invariant of the result.  That's why I didn't include the data in my original concept.  I had originally just intended the result to contain a `valid` flag and the `messages` array.