type TagProps … type Tag … // MarshalJSON marshal this to JSON func (t Tag) MarshalJSON() ([]byte, error) { … } func (t Tag) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error { … } // UnmarshalJSON marshal this from JSON func (t *Tag) UnmarshalJSON(data []byte) error { … } func (t *Tag) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error { … }