I've added two features to revalidator to make it help enforce schema on objects.
One function allows it to add missing properties when it's declared with a default value in schema.
The second one remove properties not declared in schema.
In order to keep compatibility with legacy code they both feature are disabled by default.
To use the first one must pass addMissingDefaults option as true (ugly name, feel free to change if you decide to accept the feature). For the second, the deleteUnknownProperties options must be true.
Also, during tests I noticed that the mixin function was always imposing default values over options passed by the user. The fix as simple, just altered the order in which objects are passed in the mixing.
adding default values int object when not present
added deleteUnknowProperties to options
fixed deleteUnknowProperties bug
+1 I'd definitely use this feature. Please consider merging it! Thanks Eric.