Does this make sense with just one value? Also, here's a neat trick, you can turn insufficient arguments into a compiler error. implement optimizeDynamic, throw a ConfigCompileException if children.size() < minSize, then return null.