Base fields shared by all order sync events.
type: "schedule" | "active"
Which order the sync gate is about:
Listener throw semantics (resolved into IBrokerOrderVerdict): a plain Error or
OrderTransientError = "transient" — the open rolls back and retries
identity-stably (same signalId, attempt increments) up to
CC_ORDER_OPEN_RETRY_ATTEMPTS, the close is skipped and retries up to
CC_ORDER_CLOSE_RETRY_ATTEMPTS (then force-close); OrderRejectedError =
"rejected", terminal at once (open dropped without retry / close force-closed);
OrderDeletedError here is a protocol violation and degrades to "transient".
symbol: string
Trading pair symbol (e.g., "BTCUSDT")
strategyName: string
Strategy name that generated this signal
exchangeName: string
Exchange name where signal was executed
frameName: string
Timeframe name (used in backtest mode, empty string in live mode)
backtest: boolean
Whether this event is from backtest mode (true) or live mode (false)
signalId: string
Unique signal identifier (UUID v4)
timestamp: number
Timestamp from execution context (tick's when or backtest candle timestamp)
signal: IPublicSignalRow
Complete public signal row at the moment of this event
attempt: number
Number of CONSECUTIVE prior failures of this gate for this signal (0 = first attempt / healthy). Managed by the framework: a rejected gate increments the counter carried by the next attempt; a confirmed gate resets it to 0. Bounded by CC_ORDER_OPEN_RETRY_ATTEMPTS (signal-open) / CC_ORDER_CLOSE_RETRY_ATTEMPTS (signal-close).