code: func (m *Message) unmarshalInterface(v interface{}) error {
  	strdata, err := stringMap(v)
  	if err != nil {
  		return err
  	}
  	for k, v := range strdata {
  		switch strings.ToLower(k) {
  		case "id":
  			m.ID = v
  		case "description":
  			m.Description = v
  		case "hash":
  			m.Hash = v
  		case "leftdelim":
  			m.LeftDelim = v
  		case "rightdelim":
  			m.RightDelim = v
  		case "zero":
  			m.Zero = v
  		case "one":
  			m.One = v
  		case "two":
  			m.Two = v
  		case "few":
  			m.Few = v
  		case "many":
  			m.Many = v
  		case "other":
  			m.Other = v
  		}
  	}
  	return nil
  }
docs: // unmarshalInterface unmarshals a message from data.