code: @Override
      public int getAvailablePermits() {
          int minPermits = Integer.MAX_VALUE;
          for (PoolLimitDeterminationStrategy strategy : strategies) {
              int availablePermits = strategy.getAvailablePermits();
              minPermits = Math.min(minPermits, availablePermits);
          }
          return minPermits; // If will atleast be one strategy (invariant in constructor) and hence this should be the value provided by that strategy.
      }
docs: Returns the minimum number of permits available across all strategies.
  
  @return The minimum number of permits available across all strategies.