using a brand new 'nodes' object with no optimiser functionality
in the input / output channels to avoid serialisation issues.
Previously we were using the MscrDefinition object itself with some optimisation rules which
were memoising unserialisable information