public static CapturedConstraint Matching(this IIsConstrainFactory self, Func <IJsonValidationContext, JToken, bool> constraintFunc, string explain)
 => self.Capture(new FunctionalConstraint(constraintFunc, explain));
 public static CapturedConstraint Required(this IIsConstrainFactory self)
 => self.Capture(new RequiredConstraint());
 public static CapturedConstraint Matching(this IIsConstrainFactory self, Func <JToken, bool> constraintFunc, string explain)
 => self.Capture(new FunctionalConstraint((c, t) => constraintFunc(t), explain));