A router registration is the canonical deployment signal. Do not enable settlement until the corresponding AccountCore
SpotMarketRegistered confirms the orderbook, base, and quote relationship.
For market-state changes, the nested OrderBook MarketStateUpdated is the actual market mutation; the later SpotRouter event supplies the initiating operator. Process both in transaction log order.
Cache each market’s immutable getters at discovery: base, quote, price and size precision, tick, quote decimals, passive spread, and notional limits. Re-read implementation and market-state pointers after their relevant events.