Code/Nodes/Core/Display.cs
namespace Nodebox.Nodes {
    [Description("Outputs a value of your choosing")]
    [Tag("Core")]
    [ExecutionContext.Writer]
    [UI.Panel(typeof(UI.Display))]
    public class Display : Node {
        public override (List<Pin> In, List<Pin> Out) InitialPins => (
            [
                Pin.New<object>()
            ],
            []
        );

        public Display() : base() { }
    }
}


namespace Nodebox.Execution {
    using Nodebox.Nodes;
    using static ExecutionContext;

    public class DisplayImplementation : Implementation {
        const string Key = $"{nameof(ExecutionContext)}.{nameof(Display)}";
        public override Type Target => typeof(Display);
        public override void Evaluate(ExecutionContext context, Node node) {
            var io = context.Store[node];
            node.Meta[Key] = io.GetInput<object>(0);
            node.MakeDirty();
        }

        public static object GetValue(Node node) => node?.Meta?.GetValueOrDefault(Key, null);
    }
}