Optional Fields (Pointers)
If a field is optional, represent it as a pointer and validate with *P validators.
var middleName *string
val := v.Is( v.StringP(middleName, "middle_name").BlankOrNil(),)For optional numbers:
var discount *intval := v.Is(v.NumberP(discount, "discount").ZeroOrNil())