code: func registerCommand(msg structs.MessageType, fn unboundCommand) {
  	if commands == nil {
  		commands = make(map[structs.MessageType]unboundCommand)
  	}
  	if commands[msg] != nil {
  		panic(fmt.Errorf("Message %d is already registered", msg))
  	}
  	commands[msg] = fn
  }
docs: // registerCommand registers a new command with the FSM, which should be done
  // at package init() time.