Summary

Implements the Schema Migration System requested in issue #519.

  • MigrationError — sealed ADT with 5 cases (FieldNotFound, TypeMismatch, TransformFailed, CaseNotFound, DecodeFailed); every error carries the DynamicOptic path for precise diagnostics
  • MigrationAction — pure-data sealed ADT with 14 action types. No functions, no closures — fully serializable, storable in a registry. Every action carries its own structural reverse.
  • DynamicMigration — applies an ordered Vector[MigrationAction] to a DynamicValue via a recursive path interpreter. Satisfies identity, associativity, and structural-reverse laws.
  • Migration[A, B] — typed wrapper: encodes A → DynamicValue, runs DynamicMigration, decodes DynamicValue → B. Exposes reverse and andThen.
  • MigrationBuilder[A, B] — immutable fluent DSL, cross-compiled Scala 2.13 + Scala 3.

Test results

38 tests passing on Scala 3.7.4 and Scala 2.13.16, JVM.

Closes #519

/claim #519

Contact: adam@onetechnologies.com

Claim

Total prize pool $8,000
Total paid $0
Status Pending
Submitted March 15, 2026
Last updated March 15, 2026

Contributors

K0

k0880k

@Ig0tU

100%

Sponsors

MA

marianaguzmanguerrero16-dev

@marianaguzmanguerrero16-dev

$4,000
ZI

ZIO

@ZIO

$4,000