In filter context, is the filter array AND or OR?

In query DSL, I have a function score with a date decay, and a filter on that date decay, and I'm surprised to find that the filters in the filter array appear to be OR'd, not ANDed. In other words, the date decay is apply for things that match either filter clause. I cannot find any documentation about how the list of filter clauses in the array are treated.

 "function_score": {
          "functions": [
            {
              "filter": [
                {"term": {"mcontenttype": "Grant"}},
                {"term": {"mcontenttype": "Event"}}
              ],
              "linear": {
                "mdateprimary": {"scale": "365d","offset": "0d","decay": 0.7}},
              "weight": 100
            },

From Elastic Search to Elasticsearch