Validator must return False for error to be raised

If None is returned, validation will pass
Allow extra metadata to be stored on an Arg