How matching works
Each model_id has its own in-memory order book. A buyer bid specifies a
model and a max_price. The matcher walks asks from lowest price to highest
and takes the first ask whose price is at or below the bid and that still has
remaining capacity.
Fills use the resting (maker) price. Partial fills consume capacity from the
ask and leave the residual on the book. If nothing crosses before the bid
wait expires, the gateway returns 408 with bid_timeout / no_match.
Asks expire on ttl_seconds (default five minutes) or when the seller
cancels them. A suspended or banned seller cannot rest new asks; the circuit
breaker also evicts their live book.