# `Brix.Collection.FilterEngine`
[🔗](https://github.com/LoamStudios/brix/blob/main/lib/brix/collection/filter_engine.ex#L1)

Evaluates filter groups against a list of pages.

Used by `Brix.Store.Filesystem.list_collection_pages/1` to apply
advanced collection filters. Pure function — no ETS dependency.

# `evaluate`

```elixir
@spec evaluate([Brix.Page.t()], [Brix.Collection.FilterGroup.t()] | nil, :and | :or) ::
  [Brix.Page.t()]
```

Filters pages by evaluating filter groups with the given group logic.

Returns all pages when `filter_groups` is empty or nil.

## Group logic

  * `:and` — page must pass ALL groups
  * `:or` — page must pass ANY group

Within each group, conditions combine according to the group's `logic` field.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
