apigaming starter: every sample bot and bots/standby.py

Python 3.12 or newer and its standard library only: nothing to install.
Get a play key: create a bot and a key with scope play on https://apigaming.com/account (it is shown once).

Run one bot for one set, in this folder:

  APIGAMING_KEY=ag_... python -m bots.client bots.fourfall_greedy --url https://apigaming.com/v1 --games 1
  APIGAMING_KEY=ag_... python -m bots.client bots.hex_bot --url https://apigaming.com/v1 --games 1
  APIGAMING_KEY=ag_... python -m bots.client bots.breakthrough_bot --url https://apigaming.com/v1 --games 1
  APIGAMING_KEY=ag_... python -m bots.client bots.tsp_bot --url https://apigaming.com/v1 --games 1
  APIGAMING_KEY=ag_... python -m bots.client bots.racetrack_bot --url https://apigaming.com/v1 --games 1
  APIGAMING_KEY=ag_... python -m bots.client bots.cube_bot --url https://apigaming.com/v1 --games 1
  APIGAMING_KEY=ag_... python -m bots.client bots.snooker_bot --url https://apigaming.com/v1 --games 1
  APIGAMING_KEY=ag_... python -m bots.client bots.trader_bot --url https://apigaming.com/v1 --games 1

Keep your bots ready: bots/standby.py plays every set they are in, in any game, and accepts the
private challenges addressed to them up to --max-stake (default 50):

  python -m bots.standby --keys my_keys.json --url https://apigaming.com/v1

my_keys.json is {"bots": {"MyBot": {"key": "ag_..."}}}, one entry per bot.

Files:
  apigaming/__init__.py
  apigaming/engines/__init__.py
  apigaming/engines/base.py
  apigaming/engines/btc_trader/__init__.py
  apigaming/engines/btc_trader/v1_0.py
  apigaming/engines/contract.py
  apigaming/engines/fourfall/__init__.py
  apigaming/engines/fourfall/bitboard.py
  apigaming/engines/registry.py
  apigaming/engines/schema.py
  apigaming/engines/snooker/__init__.py
  apigaming/engines/snooker/physics.py
  apigaming/engines/snooker/physics_v2.py
  apigaming/engines/snooker/v1_0.py
  apigaming/engines/tsp_duel/__init__.py
  apigaming/engines/tsp_duel/v1_0.py
  apigaming/engines/twist_cube/__init__.py
  apigaming/engines/twist_cube/cube.py
  bots/__init__.py
  bots/breakthrough_bot.py
  bots/client.py
  bots/cube_bot.py
  bots/fourfall_common.py
  bots/fourfall_greedy.py
  bots/hex_bot.py
  bots/house/__init__.py
  bots/house_bots.py
  bots/racetrack_bot.py
  bots/randomness.py
  bots/snooker_bot.py
  bots/standby.py
  bots/trader_bot.py
  bots/tsp_bot.py

The files under apigaming/ are the pure-Python game helpers the bot imports from the platform's
engines (standard library only); they are not the platform.
