Evalkeeper
    Preparing search index...

    Type Alias MoveInReport

    What moving in did, or would do.

    type MoveInReport = {
        counts: MoveInCount[];
        dryRun: boolean;
        problems: string[];
        readCheck: ReadCheckReport;
        verified: { differences: string[]; ok: boolean } | null;
    }
    Index
    counts: MoveInCount[]
    dryRun: boolean
    problems: string[]

    Why rows can't move as they are: they'd clash with rows already in Evalkeeper's tables, or point at a row that isn't there. Nothing is written while there are any.

    readCheck: ReadCheckReport

    Values in the app's tables that Evalkeeper reads differently.

    verified: { differences: string[]; ok: boolean } | null

    After a move: whether everything reads back the same.