# Supported incoming message types The Worker uses `SupportedMessageType` for its two incoming commands: | AMQP MessageType (unchanged) | Public enum | Consumer queue | | --- | --- | --- | | `Notification.SendEmail.v1` | `SendEmailV1` | `notification.send-email` | | `Notification.SendPush.v1` | `SendPushV1` | `notification.send-push` | `SupportedMessageTypeParser` maps the transport string at the validation boundary. Matching is exact and case-sensitive. Unknown versions, missing values, whitespace variants, enum names and numeric strings return no enum value and are rejected. Each consumer's delivery validator accepts only its own enum member; a supported command sent to the other consumer is also rejected before delivery. The public enum lives in `HrynCo.NotificationService.Contracts/Messages/SupportedMessageType.cs`, in namespace `HrynCo.NotificationService.Contracts.Messages`, and is included in the existing `HrynCo.NotificationService.Contracts` package. The Worker parser remains internal and all consumers, validators and tests reference this single Contracts enum. It does not change RabbitMQ headers, serialized payloads, queues, producers or the shared RabbitMQ library. Result messages are not incoming delivery commands and are outside this enum's scope. Existing payload and correlation validation remains unchanged. The Push Channels change removes the draft Firebase project/access-token fields from SendPushMessageData. The enum and AMQP header stay unchanged; see [push channels](android-push.md) for producer compatibility and rollout order.