GridSpace declares 12 points (3 x 2 x 2)
RandomSpace draws 12 points

[grid  ] 12 points; best #8 = 4.2667 pips
[random] 12 points; best #9 = 1.6469 pips

shared param-space schema across both families:
  sma_cross.fast.length : I64
  sma_cross.slow.length : I64
  exposure.scale : F64

grid   best coords: ["sma_cross.fast.length=6", "sma_cross.slow.length=10", "exposure.scale=0.5000"]
random best coords: ["sma_cross.fast.length=6", "sma_cross.slow.length=10", "exposure.scale=1.2954"]
grid: 7 distinct total_pips over 12 points
random: 9 distinct total_pips over 12 points

OK: one `&impl Space` consumer drove both Grid and Random sweeps unchanged.
