pub trait BlockRuntime: Send + Sync {
// Required methods
fn is_alive(&self) -> bool;
fn sleep_for(&self, duration: Duration) -> Result<(), BlockError>;
fn sleep_until(&self, instant: Instant) -> Result<(), BlockError>;
fn wait_for(&self, port: &dyn Port) -> Result<(), BlockError>;
fn yield_now(&self) -> Result<(), BlockError>;
fn random_duration(&self, range: Range<Duration>) -> Duration;
}