Editor/Wiring/Bindings/Binding.cs

Abstract record type for editor wiring bindings. Declares a polymorphic JSON-serializable base type Binding with a Guid Id and registers derived types TextBinding, AttributeBinding, EventBinding, and VisibleBinding using System.Text.Json polymorphism.

Http Calls
using System;
using System.Text.Json.Serialization;

namespace Grains.RazorDesigner.Wiring;

[JsonPolymorphic( TypeDiscriminatorPropertyName = "$type" )]
[JsonDerivedType( typeof( TextBinding ),       "Text" )]
[JsonDerivedType( typeof( AttributeBinding ),  "Attribute" )]
[JsonDerivedType( typeof( EventBinding ),      "Event" )]
[JsonDerivedType( typeof( VisibleBinding ),    "Visible" )]
public abstract record Binding
{
    public Guid Id { get; init; } = Guid.NewGuid();
}