code: func (a *AAgent) Transition(name string, version string, path string, id string, transition string) error {
  	m := a.findMachine(name, version, path, id)
  	if m == nil {
  		return fmt.Errorf("could not find machine with id %s", id)
  	}
  
  	if !m.machine.Can(transition) {
  		return fmt.Errorf("transition %s is not valid while in %v state", transition, m.machine.State())
  	}
  
  	err := m.machine.Transition(transition)
  	if err != nil {
  		return err
  	}
  
  	return nil
  }
docs: // Transition transitions a running machine using a supplied transition event. Success is not guaranteed as the machine might be in a state that does not allow the transition