def interpret_req(req):
    """Create user-facing string representation of the input requirement.

    Parameters
    ----------
    req : Tuple[..., int, int]
        req[1] is the minimum number of objects to create; req[2] is the
        maximum number of objects to create

    Returns
    -------
    str :
        human-reading string for how many objects to create
    """
    _, min_, max_ = req
    string = ""
    if min_ == max_:
        return str(min_)

    if min_ >= 1:
        string += f"at least {min_}"

    if max_ < float("inf"):
        if string:
            string += " and "
        string += f"at most {max_}"

    return string