public ScriptNode Build()
        {
            var node = new ScriptNode();

            node.Type = Type;
            node.Name = Name;
            if (OutputTypes.Any())
            {
                node.Category = NodeCategory.Function;
            }
            else
            {
                node.Category = NodeCategory.Result;
            }
            node.InputPins.AddRange(InputPins.Select(_ => _.Clone()));
            node.OutputPins.AddRange(OutputPins.Select(_ => _.Clone()));
            return(node);
        }