pub fn emit_effect_events(
    emitters: &mut (impl EmitExt<HealthChangeEvent> + EmitExt<PoiseChangeEvent> + EmitExt<BuffEvent>),
    time: Time,
    entity: Entity,
    effect: Effect,
    source: Option<(Uid, Option<Group>)>,
    inventory: Option<&Inventory>,
    msm: &MaterialStatManifest,
    char_state: Option<&CharacterState>,
    stats: Option<&Stats>,
    tgt_mass: Option<&Mass>,
    source_mass: Option<&Mass>
)