Technique to evolve event schemas over time: events carry a version number and callbacks that upcast older versions. Upcasters must avoid touching external/view state (which can be rebuilt). Event-class-name mapping supports renaming classes without rewriting the immutable event store.