Dear Megan,
This is indeed an interesting application. In principle you can define different risk sets for different types of events (assuming that the different event types are modeled by different observation generators). I'm not sure whether it solves your task - this depends on details. My full response is a bit lengthy:
You can specify a dynamic risk set by defining a node-level attribute that is non-zero for nodes at risk. You then could define two such attributes, say "at.risk.speak" and "at.risk.message", to specify different risk sets for the observation generator for "speak" events and for "message" events. To update the attribute "at.risk.speak" - which apparently is only possible during meeting events - you would have to provide events "meeting.start" (which sets the meeting participants to at.risk.speak=1) and "meeting.end" (which sets the meeting participants to at.risk.speak=0). But now I'm not sure whether two meetings (with different participants) could have overlapping time periods. For instance, if Meeting 1 with participants {A,B,C} and Meeting 2 with participants {D,E} overlap in time, then the model would think that, say, A could also speak with D (since they are both at risk to speak) but - as I understand it - they could not speak to each other since they are not in the same meeting. If the time periods of the different meeting events are disjoint, then the approach would work fine.
If the speak (and/or message) events are dyadic, then you could define a dyad-level attribute "at.risk.speak" for all pairs of actors currently co-participating in the same meeting (use "DYAD_LEVEL_ATTRIBUTE_FROM_UHE" to set this attribute to one and to zero as descibed above). Then you could specify in an observation generator for the dyadic speak events that the dyad has to be non-zero on the attribute "at.risk.speak". With that you could ensure that speak-interaction is only possible among participants of the same meeting.
For hyperedge observations there is also the possibility to specify the risk set via "UHE has to be non-zero on attribute" (DEFAULT_UHE_OBS) or "DHE has to be non-zero on attribute" (DEFAULT_DHE_OBS) and the given attributes are (undirected or directed) hyperedge attibutes. This has for instance been used in Table 3 in the preprint Lerner et al 2019 (
https://arxiv.org/pdf/1912.07403) to define separate models for "new" scientific collaboration or "repeated" scientific collaboration. But here the participants of the repeated hyperedge must be exactly the same as in the earlier event. In your case it would mean that the participants of the speak-event are exactly those of the ongoing meet-event. (There is currently no possibility to define that they should be subsets of the meeting participants.)
Seen from a wider angle, the task you've sketched seems to be related to what I'm tempted to call "events with internal structure" (e.g., there are meeting events and within the meeting events there is a sequence of finer-granular speak events). I have a set of slides discussing this; see here:
But (at least in its full generality) this is really future work.
I'm not sure whether any of this helps for your task. Would be happy to hear more about it.
Best wishes
Juergen