code: function createDispatchers(
    storeActionType,
    innerActionNames,
    store,
    playerID,
    credentials,
    multiplayer
  ) {
    return innerActionNames.reduce((dispatchers, name) => {
      dispatchers[name] = function(...args) {
        let assumedPlayerID = playerID;
  
        // In singleplayer mode, if the client does not have a playerID
        // associated with it, we attach the currentPlayer as playerID.
        if (!multiplayer && (playerID === null || playerID === undefined)) {
          const state = store.getState();
          assumedPlayerID = state.ctx.currentPlayer;
        }
  
        store.dispatch(
          ActionCreators[storeActionType](
            name,
            args,
            assumedPlayerID,
            credentials
          )
        );
      };
      return dispatchers;
    }, {});
  }
docs: createDispatchers
  
  Create action dispatcher wrappers with bound playerID and credentials