{
  "strategy": "vanilla 30 bps",
  "file": "VanillaStrategy.sol",
  "commit": "6b6921f8",
  "seed_start": 900000,
  "n": 10000,
  "mean_edge": 342.26191722896806,
  "se": 0.5176448457947196,
  "first_edges": [
    293.814512,
    256.411977,
    386.585019,
    247.45194,
    345.758319,
    419.25553,
    426.298494,
    354.554031,
    288.072069,
    315.413245
  ],
  "min_edge": {
    "seed": 903312,
    "edge": 227.45415712599095
  },
  "max_edge": {
    "seed": 900564,
    "edge": 480.05303399301414
  },
  "seconds_per_simulation": 0.040179006891092287,
  "seeding_confirmed": "amm_competition/competition/match.py, MatchRunner._build_configs, uses numpy default_rng(seed=i) and draws retail mean size, retail arrival rate, then GBM sigma in that order. amm_sim_rs/src/simulation/engine.rs, SimulationEngine::run, seeds prices with seed and retail with seed+1, matching the description.",
  "notes": "Unmodified amm-match validate fails: Contract must be named Strategy and inherit from AMMStrategyBase. The repository contract is named VanillaStrategy; it was compiled unchanged using the official get_vanilla_bytecode_and_abi loader and used for both submission and normalizer. Explicit-seed config generation was checked field-by-field against _build_configs for seeds 0..9. Scored edges are engine edges[\"submission\"], with default 10,000 steps and baseline parameter variance; chunks contain 500 consecutive seeds. Simulation wall time includes run_batch calls only. Python venv setup initially lacked ensurepip; virtualenv resolved it."
}
