Nodes as Objects
Nodes are actually just another name for an object.
Each node must have a construct entry point that will be called by the flow system to create an instance of a particular node type.
Once an instance of a node has been added to the system, calling the forward entry points is exactly like calling a normal function. These entry points are exposed via the CallableSymbol functionality of the Loader.
To allow other nodes to exchange data, backward entry points can be added to the node object and exposed in the same way as forward entry points via the CallableSymbol functionality. Backward entry point functions are slightly different to forward entry point functions, in that, backward entry point functions are able to return data. Forward entry point functions should only return an error if an error occurs.
All entry points must be passed a context as the first parameter.