The Scope struct has an input field that represents the message that is being sent into the scope when the scope gets activated. When the Scope struct was originally created it was meant to be like an inversion of the Node struct, so the input field became an Output type and the output field became an InputSlot type.
After using the API for a while, I realized that it wasn't obvious that the InputSlot of Scope::output would end up terminating the whole scope, so I renamed output: InputSlot to terminate: InputSlot. However I didn't give much thought to input: Output, so it was left as it was.
In retrospect I think it would be a good idea to rename the Scope::input field to Scope::start. This should give the user a much more clear sense of what the purpose of that Output is, and it should reduce the confusion that comes from the apparent contradiction between the field name and data type of input: Output.
The Scope struct has an input field that represents the message that is being sent into the scope when the scope gets activated. When the Scope struct was originally created it was meant to be like an inversion of the
Nodestruct, so the input field became anOutputtype and the output field became anInputSlottype.After using the API for a while, I realized that it wasn't obvious that the
InputSlotofScope::outputwould end up terminating the whole scope, so I renamedoutput: InputSlottoterminate: InputSlot. However I didn't give much thought toinput: Output, so it was left as it was.In retrospect I think it would be a good idea to rename the
Scope::inputfield toScope::start. This should give the user a much more clear sense of what the purpose of thatOutputis, and it should reduce the confusion that comes from the apparent contradiction between the field name and data type ofinput: Output.