public function addArgumentFilter(string $argumentName, string $columnName, ArgFilterDirective $argFilterDirective): self
    {
        if ($argFilterDirective->combinesMultipleArguments()) {
            $filterKey = "{$columnName}.{$argFilterDirective->name()}";

            $this->multiArgumentFilters[$filterKey] = $argFilterDirective;
            $this->multiArgumentFiltersArgNames[$filterKey][] = $argumentName;
        } else {
            $this->singleArgumentFilters[$argumentName] = [
                'filter' => $argFilterDirective,
                'columnName' => $columnName,
            ];
        }

        return $this;
    }