&quot;It is specified - a struct tag is just a string literal after a struct field.&quot;<p>I meant the internals of a struct tag, not the grammar. The standard library implies some structure with things like `json:&quot;name,omit_empty&quot;` but that structure is not actually specified AFAIK. And I seem to recall finding a github issue where the core team said they don&#x27;t intend to specify one, basically for the reason that they don&#x27;t want struct tags to be used for things like this systematically, but I couldn&#x27;t google it up. If they fully &quot;specify&quot; struct tags I think they fear massive metadata additions, instead of little annotations here and there. I&#x27;m not <i>quite</i> sure enough of this to state it without qualification, but I am pretty sure it is accurate.