// ===== Command trait =====

///|
/// 命令:用户意图,可失败
pub trait Command {
  fn type_name() -> String

  /// 执行命令,产生事件或错误
  /// 这是业务校验的地方,不修改状态
  // execute(state : S, cmd : C) -> Result[Array[E], CommandError]
}