bayes for days

perf(candidates): split the volley memo into what fires and what it does master

The fast key memoised a whole volley, so side and target id were in a key they do not affect: 454,024 entries, ~36 MiB, consulted twice an exchange against an L2 of one or two. Split in two, level one keyed on the geometry and to-hit terms alone with an interned shot list as its value: 119,507 geometries, 1,071 shot lists and 12,024 outcomes. 2x off the sweep.


+377 -74
2 changed files