We couldn't *only* use the Match API because there needs to be the ability to define additional constraints for sub-properties. For example, if I wanted to say that the `date` in an `updatesHistory` object must be today or later, I would have to define that in the `updatesHistory.$.date` key. The `type: [{date: Date, content: String}]` syntax wouldn't work. For cases where only a type check is necessary, it's possible we could allow the pattern syntax and then internally convert it to the standard syntax in the constructor function. I don't know how useful that would be in general.

In any case, I don't plan to do that in this current round of updates, so this example will need to be changed for now.