EmptyStructsAreVariantsOnly
A Variant MAY declare zero fields (a tag-only message). A standalone Struct declaration MUST declare at least one field.
An empty variant is meaningful — the tag IS the message (e.g. a CLOSE op). An empty standalone struct encodes zero bytes and means nothing.