Dart field validation with error map

Dart
Map<String, String> validateSignup(Map<String, String?> input) {
  final errors = <String, String>{};
  void check(bool ok, String field, String message) {
    if (!ok && !errors.containsKey(field)) errors[field] = message;
  }

  final email = input['email']?.trim() ?? '';
  final age = int.tryParse(input['age']?.trim() ?? '');
  final password = input['password'] ?? '';

  check(RegExp(r'^[^@\s]+@[^@\s]+\.[^@\s]+$').hasMatch(email), 'email', 'Enter a valid email');
  check(age != null && age >= 13 && age <= 130, 'age', 'Age must be 13-130');
  check(password.length >= 8, 'password', 'Use at least 8 characters');
  return errors;
}