/**
 * Migration-parity contracts — the structured result of a generic
 * source→target SQLite migration equivalence check.
 *
 * These types describe the output of the reusable CORE `verifyMigration()`
 * primitive (T11551 · DHQ-045), the durable guard that prevents the exodus
 * dual-DB migration from silently losing rows ever again.
 *
 * ## Why a structured contract
 *
 * The exodus zero-loss campaign (T11531/46/47/48/49/T11550) lost ~805K rows
 * as-shipped because the original verify path returned a loose boolean and a
 * free-text error. A typed parity report makes each failure class
 * machine-inspectable:
 *
 *   - **Row-count parity** — per (source-table → target-table) row counts.
 *   - **Foreign-key integrity** — the `PRAGMA foreign_key_check` rows on the
 *     consolidated target (genuine data orphans, not copy-order artifacts).
 *   - **Content checksum** — an ordered canonical-JSON digest per table, over
 *     the intersection of source/target columns, so content drift is caught
 *     even when counts match.
 *   - **Enum/type drift** — values present in a source column that are NOT in
 *     the target column's CHECK enum. This is the exact failure class that
 *     `INSERT OR IGNORE` used to swallow silently.
 *
 * @task T11551 (DHQ-045 — exodus zero-loss durable guard)
 * @epic T10878
 * @saga T11242
 * @adr ADR-068, ADR-069
 * @public
 */
/**
 * Maximum number of distinct offending values captured per
 * {@link MigrationEnumDrift} entry, to keep the report bounded.
 *
 * @public
 */
export const MIGRATION_ENUM_DRIFT_SAMPLE_LIMIT = 20;
//# sourceMappingURL=migration-parity.js.map