Four different changes deserve four identities
A dataset release names the source versions used together. A matching-engine version identifies retrieval and scoring behavior. A policy version identifies the decision rules applied to candidates. A package version identifies fixed membership of a named source selection.
Store all returned versions with the result ID. A new source file is not the same kind of change as a revised matching policy, even when both alter a potential match. A source parser version and original file hash also support investigation into how source facts became normalized records.
Updates qualify before they become active
Imports are validated for parse completeness, stable identifiers, declared counts when supplied, and suspicious volume changes. Broken or suspicious files are quarantined. The previous qualified release remains available until it expires under the freshness policy; an unqualified file does not become live merely because it was downloaded.
Activation publishes an immutable release and switches the active pointer in a transaction. Each screening pins one release, so it does not mix old and new source versions partway through the request. Reproducing a retained result still depends on retaining its necessary inputs and source history.
Read timestamps according to their meaning
Retrieval time records when the system obtained the file. Publication time exists only when the authority supplies it. A designation’s legal effective date belongs to that designation. None of these dates should be substituted for another simply to fill an empty field.
KEEP BUILDING