code: func (c *Conversation) commitToVersionFrom(versions int) error {
  	if c.version != nil {
  		return nil
  	}
  
  	var version otrVersion
  
  	switch {
  	case c.Policies.has(allowV3) && versions&(1<<3) > 0:
  		version = otrV3{}
  	case c.Policies.has(allowV2) && versions&(1<<2) > 0:
  		version = otrV2{}
  	default:
  		return errUnsupportedOTRVersion
  	}
  
  	c.version = version
  
  	return c.setKeyMatchingVersion()
  }
docs: // Based on the policy, commit to a version given a set of versions offered by the other peer unless the conversation has already committed to a version.