TODO: ?? multiple custom validators per field. We could compose validators first with ops, but what if we TV.register_validator(type, v) twice? need to return value from validators so that we can transform the input