Makes it possible for external assemblies to use source generated JSON serialization on observation types, without requiring us to export a JsonSerializerContext with access to internals.
Removes the mess of JsonContructors, largely replacing with required init properties.
Removes JsonIgnore DateTimeOffsets with linked long timestamps using the unix time JSON converter and truncating to milliseconds on init (for Assert.Equivalent to pass in tests).
Extends tests of JsonSerialization, adding coverage all the way up to SnapshotSet.
This PR