Task 6: universe/world/cluster schemas as embedded SQL scripts applied by
DatabaseMigrator (DbUp, journal public.schema_versions, transaction per
script) and a console runner reading NEBULA_DB. Row-level invariants are
enforced in the database: complete-or-absent orbits, one star per system,
same-system parents and field belts via composite FKs, belts only on belt
bodies, field ids bound to their system, value ranges. Testcontainers tests
cover clean apply, idempotent re-run and 25 rejected-row scenarios.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>