public ActionResult <StateDto> StartTable(
            TableType tableType,
            [FromQuery] int?simulationTime    = null,
            [FromQuery] int philosophersCount = 10)
        {
            var timeout = simulationTime == null
                ? Timeout.InfiniteTimeSpan
                : TimeSpan.FromSeconds(simulationTime.Value);

            var simulationTimeCts = new CancellationTokenSource(timeout);

            var tableId = runnerService_.Start(
                tableType,
                philosophersCount,
                simulationTimeCts.Token,
                () =>
            {
                simulationTimeCts.Dispose();
                return(Task.CompletedTask);
            });

            return(Ok(tableId));
        }