Builds and validates an [MsCatalog]. The channel-snapshot hash is computed from the labels; violations raise errors of class `msuiter_error_catalog`.
Arguments
- counts
numeric matrix (channels x samples) with rownames equal to the channel labels and colnames equal to `samples`.
- channels
channel-registry snapshot: a named list with `name` (table id, e.g. `"SBS96"`) and `labels` (canonical labels). A `hash` element is computed automatically and must not be forged.
- samples
character vector of sample ids.
- provenance
named list; must carry `genome` (the build label).