///|
/// Read-only committed event projection. Run-bound events carry attribution;
/// operation-level diagnostics may have no run scope. Use PipelineHook for
/// interception, approval or asynchronous side effects.
pub(open) trait Observer {
fn on_event(Self, scope : @types.EventScope?, event : @types.TurnEvent) -> Unit = _
}
///|
impl Observer with fn on_event(
_self,
_scope : @types.EventScope?,
_event : @types.TurnEvent,
) -> Unit {
()
}