Summary

Implements the Schema Migration System for ZIO Schema 2 as specified in issue #519.

Changes Made

  • Added DynamicMigration - pure, serializable migration representation
  • Added MigrationAction ADT with all specified operations:
    • Record operations: AddField, DropField, Rename, TransformValue, Mandate, Optionalize, ChangeType, Join, Split
    • Enum operations: RenameCase, TransformCase
    • Collection operations: TransformElements, TransformKeys, TransformValues
  • Added Migration[A, B] - typed user-facing API
  • Added MigrationBuilder - fluent builder for constructing migrations
  • Added DynamicMigrationInterpreter - functional interpreter for migrations
  • Added MigrationError - path-based error reporting
  • Added PrimitiveConversions - safe type coercions
  • Added MigrationSpec - tests for basic functionality
  • Added documentation in docs/reference/migration.md

Key Features

  • Pure data: All migrations are represented as pure data, enabling serialization
  • Reversible: Full support for structural reverse operations
  • Composable: Migrations can be composed sequentially using ++
  • Error reporting: Errors include path information for debugging
  • Type-safe: Typed Migration[A, B] API

Implementation Notes

This is an initial implementation with:

  • Core migration actions implemented
  • Basic interpreter functionality
  • Path-based transformations via DynamicOptic

Full macro support for selector extraction and complete serialization will be added in subsequent PRs.

/claim #519

Claim

Total prize pool $8,000
Total paid $0
Status Pending
Submitted February 24, 2026
Last updated February 24, 2026

Contributors

ER

Erichhhhhcat

@Erichhhhhcat

100%

Sponsors

MA

marianaguzmanguerrero16-dev

@marianaguzmanguerrero16-dev

$4,000
ZI

ZIO

@ZIO

$4,000