Add an option (probably it'll be the default) that allows writing an HMACSHA256 secret in the blob and support two options to provide the secret to the deserializer. Option 1 is that the assembly will have the secret embedded in it, and therefore the assembly itself must be guarded as a secret. And Option 2 will be that the deserializer will have an overload that takes in the secret as a `ReadOnlySpan'.
From a security perspective, it'll obviously be Option 2 that is desired but I feel like we should allow Option 1 and if we want to call it insecure that's fine and it can be used encode identity info in an untrusted manner.