Form field validation with Nim Table errors

Nim
import std/[tables, strutils]

type Form = object
  name, email: string
  age: int

proc validate(f: Form): Table[string, string] =
  if f.name.strip.len < 2:
    result["name"] = "must be at least 2 characters"
  if not f.email.contains('@') or not f.email.contains('.'):
    result["email"] = "must be a valid address"
  if f.age < 18 or f.age > 120:
    result["age"] = "must be between 18 and 120"

let errors = validate(Form(name: "A", email: "nope", age: 12))
for field, msg in errors:
  echo field, ": ", msg
echo "valid: ", errors.len == 0