Dataset
A wide table over the catalog's sources (-2), named as its queries read it, <context>.<name>: an analyst drafts and revises its definition, which the catalog checks against its sources as they are each time (DatasetBinder), and publishes it, each version compiled into its own view (DatasetCompiler) which the publication creates in the warehouse; queries read the current version until the dataset is switched back to another or retired, whose views are dropped once the retention ends.
Functions
Compiles the published definition again after a source changed (-2). The same compilation changes nothing (or clears a revision it needed). Another one is published as the next version only when its contract holds: the view gives the same columns, by name and type, as the published one, and it takes no new approval, so only its masking or its rendering differs. Anything else (a definition that no longer compiles, columns that would change, a new approval) marks the dataset as needing revision; the published version goes on serving while its view still gives the columns it was published with, and is refused otherwise.
Replaces the definition and title, checked as a draft's are. A dataset that needs revision says, from then on, what is wrong with the revised definition rather than with the one it replaced: none of it once the revision compiles, which a publication then serves.