Перейти к содержимому

Stable IDs — это данные, а не branding

✅ Реальная migration policy Political World 💾 Compatibility

Political World сменил публичную identity на:

Lous12.PoliticalWorld

но специально оставил многие исторические IDs:

ukiol_

Почему?

Persistent IDs — это data compatibility, а не branding.

Документ 1.6 → 1.7 говорит addon developers обновить:

old dependency / namespace → new public identity

но отдельно предупреждает:

не переименовывать старые ukiol_* content/save IDs

Internal identity doc объясняет: gameplay assets, localization keys, traits, powers, ideology IDs, currents, map IDs и saved values уже использовали эти strings.

Смена публичного имени автора не делает save references одноразовыми.

Lous12.PoliticalWorld

Используется mod loader и addons.

Lous12.PoliticalWorld

Используется source code.

ukiol_...

Исторические strings, которые уже могут жить в saves.

У всех трёх разные migration rules.

Legacy compatibility не означает, что новые addons должны копировать old prefix.

Новый addon:

someauthor.DragonPolitics

Owned content:

someauthor.DragonPolitics.ideology_dragonism

Перед переименованием спросите:

Может ли string уже быть в старом save?
Может ли другой mod хранить/reference её?
Может ли она быть в player configuration?
Может ли участвовать в localization/content registry links?
Является ли частью external API?

Если хотя бы да — вероятно нужна migration.

Для data keys безопасный pattern:

read new
if missing:
read old
if old exists:
write new = old
keep old
return value

Именно так работает addon-data v2 migration Political World для legacy int/string state.

Сохранение old data на migration window полезно для rollback и mixed-version recovery.

Refactor меняет organization source.

Migration меняет identity данных.

Это не одна и та же операция.