イベントソーシングは概念はわかるけど実装方法がわからん
時刻=t、ID=idのHogeのエンティティを取得するメソッドのシグネチャはどうなる?

Hoge getHoge(id, t)

Hogeはシステムの保守拡張で型定義が変わっていく
けどこの定義じゃ最新版のHogeしか取れない
任意のtに対してこれを実装したかったら過去のバージョンのHogeもコードに残さないといけない

Object getHoge(id, t)

var h = getHoge(id, t)
if (h is Hoge_V1) ...
if (h is Hoge_V2) ...
...