I'm open on this but leaning towards requiring all ``CommandIn`` in ``kwargs`` on ``Command`` call and all ``CommandOut`` in ``results`` on ``Command`` return. They don't have to take a value, and could simply be ``None``, e.g.:

```python
kwargs = {'some_required_commandin':'foo', 'some_optional_commandin':None}
cmd = SomeCommand()
result = cmd(kwargs)

# assume SomeCommand has two CommandOuts, 'some_required_commandout' and
# 'some_optional_commandout'
# NOTE: sets and dicts play nice like this
expected_commandout = set(['some_required_commandout', 'some_optional_commandout'])
assert not expected_commandout.symmetric_difference(result)
assert result['some_required_commandout'] is not None
```

I don't think ``kwargs`` on ``Command`` call is doing this yet but I prefer the stringency personally as it reduces ambiguity in the return.