SmartObjects (and underlying ServiceBrokers) understand that some inputs are mandatory, some optional. To indicate the difference, the methods are decorated with string[] requiredproperties. Those properties which are not in that list are optional and may (or may not) be supplied, whether via SmartObject tester or programmatically.
Methods can also have parameters beyond SmarytObejct properties, those are decorated with Attibutes.Parameter attribute.
I am under impression that all parameters decorated with Attibutes.Parameters become mandatory. Is there a way to make them optional? I could not find any relvant remarks in the documentation.