code: func (gw *Gateway) FindCanonicalMsgID(protocol string, mID string) string {
  	ID := protocol + " " + mID
  	if gw.Messages.Contains(ID) {
  		return mID
  	}
  
  	// If not keyed, iterate through cache for downstream, and infer upstream.
  	for _, mid := range gw.Messages.Keys() {
  		v, _ := gw.Messages.Peek(mid)
  		ids := v.([]*BrMsgID)
  		for _, downstreamMsgObj := range ids {
  			if ID == downstreamMsgObj.ID {
  				return strings.Replace(mid.(string), protocol+" ", "", 1)
  			}
  		}
  	}
  	return ""
  }
docs: // FindCanonicalMsgID returns the ID under which a message was stored in the cache.