Usage: akm-migrate <command> [options]

The one migration tool for an akm installation. The CLI proper reads every
shape akm has ever written (in memory, with a warning); `apply` makes the
current shape durable on disk. `status` and `apply` run every step, in
order, and print one combined JSON plan (exit 1 when any step is blocked):

  1. config.json rewritten in its current shape (unknown keys dropped,
     legacy `extraParams` lifted onto engine fields, the legacy source
     layout converted, `configVersion` set to the current value) -- backed
     up first
  2. pending state.db migrations, historical-destructive ones included,
     with a verified sibling safety copy (the only path that admits them)
  3. task files at version 2 or 3, and version 4 files still carrying the
     retired `schedule[].enabled` key, rewritten as task source v4 under
     one backup directory per run
  4. superseded residue removed: pre-0.9.0 `.akm` leftovers in the stash,
     and the transaction-journal, maintenance-barrier, lock-mutex and
     version-stamp files older releases kept under $DATA, $STATE and $CONFIG

`akm migrate status|apply` wraps this executable; `akm upgrade` runs
`apply` after its install step, so an image that ships akm can put either
in its entrypoint (a current installation is a no-op).

Commands:
  status               Inspect every pending migration without changing anything.
  apply [--dry-run]    Back up and apply every pending migration.
