validateEmail static method
Pure — no I/O — so the validators are unit-testable without a prompt.
null means proceed, mirroring TermsAcceptance.refusalMessage and
LoginCommand.ciRefusalMessage.
Implementation
static String? validateEmail(String email) {
if (email.isEmpty) return 'Email is required.';
if (!_emailPattern.hasMatch(email)) {
return "That doesn't look like a valid email address.";
}
return null;
}