I really enjoyed reading this.
I love Automerge, and I think Ink & Switch are doing awesome, cutting-edge work around p2p app frameworks.
But: YAML as a programming language? Blergh. Why not just go ahead and define lenses in Typescript? There’s significant prior art on writing type-safe lenses (eg.: https://github.com/topics/lenses?l=typescript) and JSON schema/TS type system interop (eg.: https://github.com/topics/json-schema?l=typescript). I for one really like having a type-checker right there in my editor/build/lint tools that can make sure I’m mapping from one schema into another correctly.
(I have a whole ‘nuther set of opinions on the claim that “Stripe has an elegant model for [schema evolution]” as stated in the article but that should probably just stay under my ex-Stripe NDA clauses and vague descriptions like, “it’s complicated.”)