public async Task SendKeysAsync(params KeyOperation[] keyOperations)
        {
            var logString = keyOperations
                            .Select(x => $"[{x.Key}: {x.Direction}]")
                            .Aggregate((a, b) => $"{a}, {b}");

            logger.Information($"Sending key combinations {logString}.");

            var inputs = keyOperations
                         .Select(
                x => GenerateKeystoke(
                    MapKeyToVirtualKey(x.Key),
                    x.Direction == KeyDirection.Down ? 0 : KEYEVENTF.KEYUP))
                         .ToArray();

            nativeApi.SendInput((uint)inputs.Length, inputs, INPUT.Size);
        }