def redact_logical_AND(field):
    """
    If all rules were satisfied, keep this element. Else, redact.
    Note - field argument must start with `$` (e.g. ""$dist_matches"")
    """
    stage = {
        "$redact": {
            "$cond": {
                "if": {
                    "$setIsSubset": [
                        ["false"],
                        {
                            "$ifNull": [field, ["true"]]  # if field is not set, don't redact
                        }
                    ]
                },
                "then": "$$PRUNE",
                "else": "$$DESCEND"
            }
        }
    }
    return stage