use crateResult;
use crateProjectionTxn;
use crateEventId;
/// Decoded event representation
///
/// Applications define their own event types and implement decoding
/// Event decoder: convert raw bytes to structured events
/// Event applier: apply events to projection store
///
/// Note: Takes a mutable reference to the concrete transaction type,
/// not a trait object, to avoid object-safety issues