_findAllProtoActions = function (gameSession) {
  let protoActions = [];
  // if no active f/u, then compile actions for all friendly entities in play and in hand
  //* ** ATTACKS
  // Logger.module("AI").debug("[G:" + gameSession.gameId + "] gathering move actions...");
  protoActions = protoActions.concat((_findMoveProtoActions(gameSession)));
  //* *** MOVES
  // Logger.module("AI").debug("[G:" + gameSession.gameId + "] gathering attack actions...");
  protoActions = protoActions.concat((_findAttackProtoActions(gameSession)));
  //* *** PLAY CARDS
  // Logger.module("AI").debug("[G:" + gameSession.gameId + "] gathering play card actions...");
  protoActions = protoActions.concat(_findPlayCardProtoActions(gameSession));

  return protoActions;
}
Summary: Returns all possible actions for a gameSession, sorted by score (descending - best to worst actions)
 and organized by entity, then by action type
@parameter: gameSession
 -type: {GameSession}
 -Description: the gameSession to use for finding available actions. Used for branched gamesessions.
@returns [actions]