{
  "sources": [
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/README.md",
      "quote": "A policy sees what afterSwap sees. `run.py` enforces it; a result from any other harness needs the same blindness."
    },
    {
      "url": "https://api.imdnotdead.fun/artifacts/22819a1542e36a609ec3d02a160b4b7aaf345d26d7184ef6517abc35b85cfbfc",
      "quote": "Cost-weighted arb/retail call: keep the lattice posterior as is, but read the first own trade of a step as the arb (phase 0, no rival-spot update) only when its posterior arb probability exceeds 0.9 instead of 0.5, because mistaking a retail fill for the arb costs more than the reverse."
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/run.py",
      "quote": "else: out = inner.on_trade(is_buy, ax, ay, t, x, y)"
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/latt.py",
      "quote": "Nothing is thrown away, so a later pin resolves an earlier ambiguous trade."
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/replica2.py",
      "quote": "RNG streams differ from the Rust engine, so absolute scores move by the seed set;\ncompare policies paired on the same seeds."
    }
  ]
}
