"read_immundata() upgrades legacy v1 metadata on the fly"
"ImmunData$provenance is read-only and matches helper output"
"read_repertoires() writes metadata with lineage array and provenance"
"write_immundata() appends snapshot lineage event"
"read_repertoires() writes metadata-derived files in ingestion lineage"
"write_immundata() auto-creates snapshot folders and increments versions"
"snapshot tests use projectA/projectB tree in temporary snapshot root"
"read_immundata() resolves tag latest and specific versions"
"snapshot path resolution validates missing tags and versions"
"write_immundata() validates tags and missing provenance for auto-snapshots"
"write_immundata() rehome controls future auto-snapshot root"
"operation outputs preserve provenance for auto-snapshots"
"write_immundata_internal() validates lineage as complete set"

read_repertoires() writes metadata with lineage array and provenance