As a larger architectural thought, I wonder if we should pass the service object into each validator by default.  IOW, make the signature of a validator function "validate(service, request)" or similar.  How common is it to make a validator that closes over the service object like this?