async fn make_typed_machine<K, V, T, D>(
cfg: &PersistConfig,
consensus: Arc<dyn Consensus>,
blob: Arc<dyn Blob>,
metrics: Arc<Metrics>,
shard_id: ShardId,
commit: bool,
expected_version: Option<Version>,
) -> Result<Machine<K, V, T, D>>