Node Meta Data
Marker interface that every node's per-type metadata payload must implement.
The single contract — surfacing an error string — is what lets generic code (UI badges, the SSE event pump, the polymorphic JSON serializer) treat any node uniformly without knowing the concrete subtype.
The implementation classes are @Serializable data classes registered in the consuming module's Serializer.kt polymorphic module; missing such a registration is a runtime crash, not a compile error, so when adding a new subtype always update the serializer module alongside it.