- using P_VALIDATE_CALLBACK in Repo::validateInput() has changed: now the callback receives value but must return true on success or error message on fail