Note that "as null" does not mean _only_ null but null or anything in the list. You could do "as null|text," but that actually means null, or a text value, or anything in the list, which is not the same thing. Another way to make an argument optional is to assign it a default value (arg1=null in list("a","b")). That has the same effect as using the null input type. Note that one should _not_ simply add null to the expansion list to make the argument optional. The client requires immediate access to information about whether a given argument is optional and the expansion list is server-side information which is therefore not immediately accessible.