Killing the feed freezes the watermark: bars stop closing rather than being invented, and health reports degraded. On reconnect the engine resumes from its cursor, the server replays from there, the gate drops anything already applied, and the bars come out the same. That is the whole reason the sequence number and the exchange timestamp are kept apart.
ATR and ADX are Wilder-smoothed rather than simple means of true range. Both look plausible on a chart and they differ by enough to move a threshold, so the selftest checks these values against a separate batch implementation on every bar instead of trusting the running state.
The outbox is exactly-once per signal id and the wire is at-least-once: a retry re-sends the same key with a byte-identical body, so the receiving system can dedupe on the key. The payload carries engine event time rather than send time, which is what keeps the body stable across attempts.
checking
Each endpoint documents itself: open /api/webhook/XA1 in a browser for the contract, or post an invalid body to it and it answers 422 with the list of fields that failed. The receiver is same-origin only, so nothing here fetches a caller-supplied URL.