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 diagnosticsMigrationAction — 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.38 tests passing on Scala 3.7.4 and Scala 2.13.16, JVM.
Closes #519
/claim #519
Contact: adam@onetechnologies.com
k0880k
@Ig0tU
marianaguzmanguerrero16-dev
@marianaguzmanguerrero16-dev
ZIO
@ZIO