656da8c9b9
mission у КА хранился свободным x-localized текстом (краткое описание), дублировался, рассинхронизировался, не был связан со справочником mission (где уже есть программы миссий + поле spacecraft_codes). Теперь mission — строка-код, x-references → mission.code. Референсная целостность + единый источник. Маппинг 14 КА → 9 миссий взят из mission.spacecraft_codes (обратная связь уже была в данных). Проверено: все 14 мапятся однозначно, 0 пропусков, 0 конфликтов. - 0027-spacecraft-mission-fk.xml — Liquibase-миграция существующих БД: схема + 14 записей одной транзакцией прямым SQL (смена типа поля — chicken-and-egg, как 0020 raw SQL минует Envers/outbox; forward-only). schema_version → 2.0.0. - cuod-bundle: spacecraft.schema.json mission → x-references, records/spacecraft.records.json — 14 mission → код, manifest 2.0.0. Свежие установки получают новую форму сразу. Caveat: миграция через raw SQL не пишет Envers _AUD и Kafka outbox — проекции read-api нужно пересобрать после деплоя (как при 0020).