13. The one or more non-transitory computer-readable media of claim 11 , wherein the first attribute value is an arbitrary attribute value selected by the user that is customizing the custom product.
11. One or more non-transitory computer-readable media storing one or more sequences of instructions which, when executed, cause performance of: receiving, from a user that is customizing a custom product, a first attribute value that defines an attribute of the custom product; in response to receiving the first attribute value, generating, based at least in part on the first attribute value and one or more other attributes of the custom product, a particular key-value expression that includes a plurality of key attributes and values; matching the particular key-value expression to a set of one or more filters; determining, from the set of one or more filters, a legal set of attribute values for a second attribute of at least one of the custom product or an accessory product; wherein the legal set of attribute values identifies one or more attribute values of the second attribute of the custom product or the accessory product that are compatible with the first attribute value and the one or more other attributes of the custom product.