public async Task <IActionResult> StartTask(StartMeeseeksTaskRequest request)
        {
            var(task, typeInfo) = GenerateMeeseeksTask(request);
            if (task.TaskCategory == MeeseeksTaskCategory.Unknown)
            {
                return(StatusCode(500, new TaskStartFailureInfo("Task generator was unable to determine task type")));
            }

            var meeseeksInfo = await _meeseeksManager.SpawnMeeseeksForTaskAsync(task);

            return(meeseeksInfo == null
                ? Problem()
                : Ok(new StartMeeseeksTaskResponse(meeseeksInfo, typeInfo.Name)));
        }
 private (IMeeseeksTask Task, Type TypeInfo) GenerateMeeseeksTask(StartMeeseeksTaskRequest request)
 => request switch