Objective-C form field validation with error map

Objective-C
#import <Foundation/Foundation.h>

static NSDictionary *ValidateUser(NSDictionary *input) {
    NSMutableDictionary<NSString *, NSString *> *errors = [NSMutableDictionary dictionary];
    NSString *name = input[@"name"];
    if (![name isKindOfClass:NSString.class] || name.length < 2) errors[@"name"] = @"must be at least 2 characters";
    NSString *email = input[@"email"];
    if (![email isKindOfClass:NSString.class] || ![email containsString:@"@"]) errors[@"email"] = @"must look like an email address";
    NSNumber *age = input[@"age"];
    if (![age isKindOfClass:NSNumber.class] || age.integerValue < 18 || age.integerValue > 120) errors[@"age"] = @"must be between 18 and 120";
    return errors.count ? @{@"ok": @NO, @"errors": errors} : @{@"ok": @YES};
}