fn parse_payload<T: DeserializeOwned>( tag: &str, payload: Option<Value>, ) -> Result<T, EnvelopeDecodeError>