SignalIngestResult
@Serializable
What ingest did with a batch.
Ingest answers 202 even when every signal was rejected — an unregistered signalType, or a payload tripping the PII denylist, is reported here rather than as an HTTP error. A caller checking only for an exception would believe the batch landed, so the counts are part of the result rather than buried in a response body.