Notification API WebSocket subscription scope for Embeddable Client App SDK

How do we correctly scope the Notification API WebSocket subscription to only receive events for active conversations in our custom agent desktop? We are using the Embeddable Client App SDK to build a fully custom interface, and we need to handle real-time events like message deliveries and typing indicators without overwhelming the UI with noise from other agents or closed chats.

We have set up the WebSocket connection using the standard genesys-cloud-architect approach, but we are unsure about the subscription payload. The documentation mentions using the conversation topic, but it is not clear if we need to filter by conversationId in the subscription request or if we should handle the filtering client-side after receiving the event.

Here is the subscription payload we are currently testing:

{
 "topic": "conversation",
 "filter": {
 "conversationId": "<current-conversation-id>"
 }
}

When we send this, we receive a 200 OK response, but we are not seeing any events come through when the agent sends a message. We are logging the raw WebSocket messages, and nothing matches our filter criteria. Is there a specific permission required on the OAuth token for this to work, or are we missing a step in the subscription process? We have tried using the user topic as well, but that floods us with events we do not need.