ImtStateMachine
FSMのc#実装
icemilkteaというフレームワークで使われていた。
https://github.com/Sinoa/ImtStateMachine
概略
よくまとまっている
https://qiita.com/BelColo/items/a94c9ccc2d5174dc29a3
内部クラスであるStateクラスから外側のクラスの関数、変数にアクセスするにはContextを使うとよい。
ステート間で共有する値や処理は外側のクラスで定義しておけばよい
ref:
https://zenn.dev/kagamimoti/articles/42484c4fc317d2
https://qiita.com/BelColo/items/a27b66b18794b33943f9