Filters
A filter catalogue says which filters one list offers this caller: each filter's name and label, the operators it takes with the exact query parameter each is sent as, and how a person finds a value to give it. Read one to build an Add Filter menu without hard-coding a list's parameters.
A catalogue is per caller. A filter the caller could give only one value, such as the merchant filter for a merchant's own user, is left out, as is a filter over data the caller may not see. A catalogue is read with its list's own authority: a caller that cannot read the list is answered as though it had no catalogue.
Values come from the catalogue, never from another collection. A Listed filter carries its options. A Referenced filter's values, a merchant say, are found through /filter-catalogues/{filterCatalogueId}/filter-values, which runs that collection's search under the list's authority and answers each with its id and label only, so a caller that may read transactions and not merchants still finds a merchant to filter by. Pass value instead of q to read the labels of values already chosen.
The parameters themselves carry an x-filter extension in the document, naming the filter, the operator and the kind, for a client generated without a call. The catalogue is what to offer; the document is what can be sent.
