code: func (z *Archive) UnmarshalMsg(bts []byte) (o []byte, err error) {
  	var field []byte
  	_ = field
  	var zb0001 uint32
  	zb0001, bts, err = msgp.ReadMapHeaderBytes(bts)
  	if err != nil {
  		err = msgp.WrapError(err)
  		return
  	}
  	for zb0001 > 0 {
  		zb0001--
  		field, bts, err = msgp.ReadMapKeyZC(bts)
  		if err != nil {
  			err = msgp.WrapError(err)
  			return
  		}
  		switch msgp.UnsafeString(field) {
  		case "MetricDefinition":
  			bts, err = z.MetricDefinition.UnmarshalMsg(bts)
  			if err != nil {
  				err = msgp.WrapError(err, "MetricDefinition")
  				return
  			}
  		case "SchemaId":
  			z.SchemaId, bts, err = msgp.ReadUint16Bytes(bts)
  			if err != nil {
  				err = msgp.WrapError(err, "SchemaId")
  				return
  			}
  		case "AggId":
  			z.AggId, bts, err = msgp.ReadUint16Bytes(bts)
  			if err != nil {
  				err = msgp.WrapError(err, "AggId")
  				return
  			}
  		case "IrId":
  			z.IrId, bts, err = msgp.ReadUint16Bytes(bts)
  			if err != nil {
  				err = msgp.WrapError(err, "IrId")
  				return
  			}
  		case "LastSave":
  			z.LastSave, bts, err = msgp.ReadUint32Bytes(bts)
  			if err != nil {
  				err = msgp.WrapError(err, "LastSave")
  				return
  			}
  		default:
  			bts, err = msgp.Skip(bts)
  			if err != nil {
  				err = msgp.WrapError(err)
  				return
  			}
  		}
  	}
  	o = bts
  	return
  }
docs: // UnmarshalMsg implements msgp.Unmarshaler