assertRevision((string) $input['projectId'], isset($input['revision']) ? (string) $input['revision'] : null); Http::json( [ 'success' => true, 'state' => $boardService->moveTask( (string) $input['projectId'], (string) $input['taskId'], (string) $input['column'], max(0, (int) ($input['index'] ?? 0)) ), ] ); } catch (HttpHalt $halt) { return; } catch (Throwable $exception) { Http::error($exception->getMessage(), $exception->getMessage() === 'conflict' ? 409 : 500); }