public IState <T> AddSyncState(T id, ISyncState <T> syncState)
        {
            UniTask OnEnter(T from)
            {
                syncState.OnEnter(from); return(UniTask.CompletedTask);
            }

            UniTask OnExit(T to)
            {
                syncState.OnExit(to); return(UniTask.CompletedTask);
            }

            State <T> state = new State <T>(id, OnEnter, OnExit);

            AddState(id, state);
            return(state);
        }