At some point, if your option validation requirements are too complex for the built in patterns, the easiest solution is to make all the options nullable and do the validation manually, either in a
validate{}
or
check{}
on the options, or in your
run
method.