code: func (z *MessageExt) EncodeMsg(en *msgp.Writer) (err error) {
  	// array header, size 4
  	err = en.Append(0x94)
  	if err != nil {
  		return
  	}
  	err = en.WriteString(z.Tag)
  	if err != nil {
  		err = msgp.WrapError(err, "Tag")
  		return
  	}
  	err = en.WriteExtension(&z.Time)
  	if err != nil {
  		err = msgp.WrapError(err, "Time")
  		return
  	}
  	err = en.WriteIntf(z.Record)
  	if err != nil {
  		err = msgp.WrapError(err, "Record")
  		return
  	}
  	err = en.WriteMapHeader(uint32(len(z.Option)))
  	if err != nil {
  		err = msgp.WrapError(err, "Option")
  		return
  	}
  	for za0001, za0002 := range z.Option {
  		err = en.WriteString(za0001)
  		if err != nil {
  			err = msgp.WrapError(err, "Option")
  			return
  		}
  		err = en.WriteString(za0002)
  		if err != nil {
  			err = msgp.WrapError(err, "Option", za0001)
  			return
  		}
  	}
  	return
  }
docs: // EncodeMsg implements msgp.Encodable