I ended up doing that on top of the protocol using named events and ids