@Override
    public StringPredefined copy() {
        return new StringPredefined(getLabel(),
                                    getLevelOrNull(),
                                    getArg(0),
                                    args().stream()
                                          .skip(1)
                                          .map(StringBucket.class::cast)
                                          .map(arg -> arg.copy())
                                          .toList());
    }
Constructs a new instance of this class.

@param exp  The expression to evaluate, must evaluate to a string.
@param arg1 The compulsory bucket.
@param argN The optional buckets.
container-search/src/main/java/com/yahoo/search/grouping/request/StringPredefined.java