Support typeless damage
Let `Validator` add validation functions
Fix typo
Only accept an object for `set`