pricer method
A client-side board pricer for one market: ONE simulate reads the
chain's resolved pricer (already forward-selected + rolled to now), then
prices every strike LOCALLY with no further chain calls —
pricer.up(strike), .down(strike), .range(lo, hi),
.strikeAt(p). Use this to paint a whole board instantly; price /
quoteMint stay the authoritative per-strike quote at trade time.
Throws the same typed stale-oracle/expired PredictMoveError that
price would when the chain itself cannot quote.
Implementation
Future<BoardPricerWithSources> pricer(
{required String underlying, required Object expiryMs}) async {
final feeds = _c._feeds(underlying);
final resolved =
await _c._resolveMarket(underlying: underlying, expiryMs: expiryMs);
final snap =
await readPricerSnapshot(_c._client, _c._config, resolved.id, feeds);
final board = boardPricer(snap);
return BoardPricerWithSources(
forward: board.forward, svi: board.svi, asOf: snap.sources);
}