Discovery Provenance Dto
data class DiscoveryProvenanceDto(val locator: String, val sourceRevision: String? = null, val chunkId: String? = null, val startOffset: Int? = null, val endOffset: Int? = null, val contentHash: String? = null)
Primitive-only provenance attached to a discovery explanation.
The locator arrives as its stable key string rather than as a SourceLocator, so no domain type crosses the trust boundary. Null scalars drop out of the JSON, so a revisionless entry serializes the way it always did.