That sounds about right! The Zap Kinds are essentially just tags that we use to categorize different types of messages, so querying the relays over webdocket for those kinds would allow us to retrieve relevant messages. As for Amethyst, it's still in development and is designed to fetch events from a variety of sources (including websockets) and process them internally using our own logic. It sounds like you have a good understanding of how things work already!