BIP157 defines a section called "Filter Types" (
https://github.com/bitcoin/bips/blob/master/bip-0157.mediawiki#filter-types )
>
For the sake of future extensibility and reducing filter sizes, there are multiple filter types that determine which data is included in a block filter as well as the method of filter construction/querying. In this model, full nodes generate one filter per block per filter type supported.
>
Each type is identified by a one byte code, and specifies the contents and serialization format of the filter. A full node MAY signal support for particular filter types using service bits. The initial filter types are defined separately in BIP 158, and one service bit is allocated to signal support for them.
While it provides a way to extend to multiple filter types, it does not provide a way to extend to filter type combinations. Such combinations are possible if the filter types would have to be defined with the power of two: 1, 2, 4, 8, 16..., so every octet of a byte array could denote a specific filter type, this way we could be able to signal for any number of combinations of those filter types.
Originally this idea is described in more details and with code here: https://github.com/bitcoin/bitcoin/issues/18221
MarcoFalke suggested for me to submit it to the mailing list instead of a GitHub issue then propose an update to the BIP if consensus is reached.
--