What datui remembers about a measured dataset: a cache, not a catalog. Every field
is re-derivable, and the recorded size and mtime invalidate a changed dataset.
What an open learned about a dataset’s files, so the next open shows columns and
row count without reading footers (seconds for thousands of objects). The listing,
which happens anyway, decides via the fingerprint whether this still holds. A cache,
not a catalog, like DatasetFacts.
The footers a dataset’s count has read, each by file_identity, so a recount
reads only new files and a stopped count keeps its progress. By file, unlike
DatasetShape, so it stays right for a changed dataset.
Whether a history update happened. Contended updates are abandoned rather than
awaited, so “no error” and “written” differ; callers and tests can tell exactly.