No version migration system for schema changes #104

Closed
opened 2026-04-04 18:42:22 +02:00 by shahondin1624 · 0 comments
Owner

Description

All @Serializable model classes have version: String = "v0.1" but no migration logic exists. When the schema changes (new fields, renamed fields, structural changes), old saved characters will fail to deserialize with no recovery path.

Files

  • All model classes implementing Versionable

Expected Behavior

  • Version migration functions that transform old schemas to current
  • Graceful handling of unknown fields or missing fields
  • Clear version bump strategy

Acceptance Criteria

  • Migration system that handles v0.1 → v0.2 (and future) transitions
  • Unknown fields in JSON are ignored (not crash)
  • Missing fields use sensible defaults
  • Version is checked on load and migration applied if needed
  • Unit tests for migration paths
## Description All `@Serializable` model classes have `version: String = "v0.1"` but no migration logic exists. When the schema changes (new fields, renamed fields, structural changes), old saved characters will fail to deserialize with no recovery path. ## Files - All model classes implementing `Versionable` ## Expected Behavior - Version migration functions that transform old schemas to current - Graceful handling of unknown fields or missing fields - Clear version bump strategy ## Acceptance Criteria - [ ] Migration system that handles v0.1 → v0.2 (and future) transitions - [ ] Unknown fields in JSON are ignored (not crash) - [ ] Missing fields use sensible defaults - [ ] Version is checked on load and migration applied if needed - [ ] Unit tests for migration paths
shahondin1624 added the type:architecturepriority:must-have labels 2026-04-04 18:42:22 +02:00
Sign in to join this conversation.