Evidence and receipts
Every positive row carries a speaker, timestamp, source, and an immutable evidence_id. A miss is a null_reason.

Every quote comes with a receipt
Open any row and the evidence viewer shows the transcript excerpt, the source URL, the evidence_id, and confidence for transcript, speaker, entity, and extraction.
Share one row as a public card at /e/{evidence_id}: people get HTML, agents get JSON, and the recipient can run the same job on their own list. Null rows are not shareable.
null_reason
When no supporting spoken evidence exists, interpretive fields stay null and null_reason records why. Baruly does not invent speaker or claim text to fill the row.
Rights tiers
Whether Baruly may store a source's words and whether it may return them are separate permissions. Both default to restrictive. Rights-restricted cards are pointer-only: timestamp and source, no quote.