migrations
No inbound migration — this is the base version.
flow_specs v1 has no predecessor, so there is nothing to migrate from: this
module intentionally defines no upgrade/downgrade.
See runs/v1/migrations.py for the full rationale. In short: the ORM
(schema.py) owns table existence — a missing table is created directly from
its target-version ORM by ensure_types — while migrations model only the
incremental delta between two existing versions (vN.upgrade =
v(N-1) -> vN). v1 has no prior version and so has no delta to emit, and
_apply_upgrades never asks for one.