It wouldn't break any existing externals since at the moment you can't specify 'optional' without specifying 'default' for precisely this reason. We can be relax it for types that map to native pointers at the moment because there is 'nil' to play with for 'unspecified'.

When added, an 'optional boolean' parameter would map to a 'bool *' in the function the external implemented. i.e.
    command foobar
        in foo_defaulted as optional boolean default false
        in foo as optional boolean
        in bar as optional integer
would map to:
```c
    void foobar(bool foo_defaulted, bool *foo, int *bar)
```