Implementations should use sound events, which will be dispatched in the correct order, and only have one duration per event.
Clients events are dispatched whenever the number of connected clients changes.
Message events are "raw" events. They may arrive out of order, and can have multiple durations. The Vail class parses these into properly-sequenced "sound" events.