Snapshots

One test failed but it's unrelated to these changes, so I think it was being flaky.
Event deserialization is resilient to unknown event types (e.g. two versions of the app running at once, one of them introduces or deprecates a domain event that the other then consumes.) I believe this was how this scenario was dealt with but may be unnecessary now that AnonymousEvent<T> is supported.