Files
TheDeclineOfWarriors/docs/tasks/items/TASK-0018.md
T

109 lines
3.6 KiB
Markdown

---
id: TASK-0018
title: Добавить миграции формата сохранений между версиями
summary: Реализовать BackLog-задачу на версионирование save format и безопасные миграции world save и player save между версиями проекта.
priority: Medium
area: persistence
owner: unassigned
created: 2026-03-30
updated: 2026-03-30
execution_time: 1d
depends_on:
- TASK-0004
- TASK-0006
canonical_docs:
- docs/tasks/Index.md
related_files:
- Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs
---
# TASK-0018 - Добавить миграции формата сохранений между версиями
## Status
Статус задачи ведется в `docs/tasks/Index.md` и является каноническим там.
Допустимые значения статуса:
- `BackLog`
- `ToDo`
- `InProgress`
- `Review`
- `Done`
## Why
Миграции save format важны для долгоживущего проекта, но не блокируют первый MVP. Поэтому задача вынесена в `BackLog`.
## Expected Outcome
Система сохранений имеет version field и pipeline миграций, позволяющий безопасно читать старые world/player save после изменений схемы.
## Current Context
Базовая схема сохранений и enemy bitmask должны быть определены раньше. Иначе мигрировать будет нечего.
## Source Of Truth
- `docs/tasks/items/TASK-0004.md`
- `docs/tasks/items/TASK-0006.md`
- future save schema docs
## Read First
- `docs/tasks/items/TASK-0004.md`
- `docs/tasks/items/TASK-0006.md`
## Scope In
- versioning для world/player save
- up-migration pipeline
- базовые правила обратной совместимости чтения
- обработка ошибок и fallback policy
## Scope Out
- cross-game import/export tools
- поддержка всех исторических pre-release форматов без ограничений
## Constraints
- миграции не должны молча повреждать данные
- player и world save мигрируются независимо, но по общим правилам versioning
## If You Find Drift
- если save schema меняется без version bump, это нарушение задачи
## Suggested Approach
1. Добавить version field в save schemas.
2. Описать up-migration pipeline по шагам версий.
3. Подготовить тестовые старые примеры сохранений для проверки.
## Acceptance Criteria
- save format имеет версию
- старый save может быть прочитан и мигрирован в текущую схему
- ошибки миграции не приводят к тихой потере world/player state
## Verification
- ручной тест чтения старого save fixture после изменения схемы
## Risks / Open Questions
- нужно определить политику для несовместимых breaking changes worldgen или enemy slot layout
## Human Decisions Needed
- none currently
## Decision Log
- `2026-03-30` - задача добавлена в `BackLog` по явному запросу пользователя.
## Handoff Notes
Пока задача в `BackLog`, новые persistence changes все равно должны по возможности закладывать version field заранее.