anchor.diff:  -define(MAX_BATCH_COUNT, 100000).
   -define(CREATE_BATCH_COUNT, 100).
   -define(CREATE_BATCH_BUSY_WAIT, 1000).
  +-define(CREATE_BATCH_ALWAYS_WAIT, 500).
   -define(BOT_QUEUE_BUSY_LENGTH, 100).
   
   -define(BAD_BATCH_START_REQUEST, {error, <<"Bad batch start command or batch count exceeded">>}).
  
positive.code:     end.
  
  bot_is_busy(GameType, Bot) ->
      case global:whereis_name(?BOT_GID(Bot, GameType)) of
          undefined ->    false;
          Pid ->
              QueueLen = erlang:process_info(Pid, messages_queue_len),
              ?Info("Bot ~p has queue length ~p",[QueueLen]),
              (QueueLen > ?BOT_QUEUE_BUSY_LENGTH)
      end. 
  
  -spec start(egGameTypeId(), egAccountId()) -> egGameId() | egGameError().
  
negative.code:         , play_bot/5        % trigger a bot to play one move (async)
          , bots_are_busy/3
          , bot_is_busy/2
          , read_bot/1
          ]).
  
  -safe([create, start, cancel, accept, play, result, resume, moves, time]).
  