OptionaldataThe signal's own free-form payload, what the strategy put there with signal.set(...). Whoever may read the run may read it, so on a public run it is public. A signal whose data is over 8 KiB (8,192 bytes of its JSON) is not pushed on the WebSocket channel, and GET /live/{runId}/signals returns it whole.
Content hash, for checking that two independent deliveries of the same signal agree.
Time it was published — always at or after eventTsMs.
Market time the signal was produced.
The instrument the signal is about. null only for a paper item about a whole account (equity, mark, kpi), whose data.currency names the account.
OptionalkindBUY/SELL for a hint, the command name for a command; for paper, what the item is: fill, trade, equity, mark, kpi or gap. Absent otherwise.
OptionalorderOptionalparamsThe parameter set in force when this signal was produced.
Optionalregeneratedtrue only for a signal republished to fill a gap in the record.
Stable id for this exact signal — dedupe on it across reconnects or overlapping reads.
The stage the run was in when this signal was produced.
paper items appear only for a run whose paper.output is mix; they are not relayed over the WebSocket channel.
Envelope schema version.
One signal, in the same shape the real-time signal channel delivers.