+ err := validateMetadata(envelope.Metadata)
+ if err != nil {
+ return fmt.Errorf("validate metadata: %w", err)
+ }
+
+ if !isObject(envelope.Payload) {
+ return fmt.Errorf("payload must be a JSON object")
+ }
+
+ return nil
+}
+
+func validateMetadata(metadata Metadata) error {
+ if !ValidID(metadata.MessageID) {