public async Task RunOnEnterStateScript(
            State state,
            CancellationToken cancellationToken)
        {
            var key = state.OnEnterScriptAssetKey;

            if (string.IsNullOrEmpty(key))
            {
                return;
            }

            var scriptAsset = await assetsManager.GetScriptAsset(
                key,
                localeManager.GetLocale(),
                cancellationToken);

            var script = scriptHost.CreateScript <OnStateEnterInput>(
                key,
                scriptAsset.Data);
            var input = new OnStateEnterInput {
                State = state
            };
            await scriptHost.RunScript(script,
                                       sessionIdProvider.GetSessionId(),
                                       input,
                                       cancellationToken);
        }