In decentralized finance, it is common for automated market makers to provision liquidity from external parties. The market maker rewards these liquidity providers with a cut of the trading fees, in exchange for the risk they take on. A handful of protocols for liquidity provisioning have been proposed, such as Uniswap V2 and V3, with specific and sometimes complex rules for collecting liquidity deposits, executing trades, and dividing up fees. Beyond these examples, and a broader understanding of liquidity provisioning, and particularly the design space from which one could choose a different protocols, has been out of reach. In this work, we show that one can view liquidity provisioning very broadly as the practice of running several market makers "in parallel": each market maker provides its own liquidity, yet the combined group can operate as a single coherent market. We prove that this general protocol, when restricted to specific forms of the constituent market makers, recovers Uniswap V2 and V3 as special cases. We then go on to propose a new restriction which may have advantages over Uniswap V3. In the context of prediction markets, where computation costs are less constrained, our general protocol gives a maximally flexible way to provision liquidity. We conclude with remarks about the nature of liquidity and fees in markets with more than 2 assets, and several open questions.