A project can store splits for an arbitrary number of groups, such as for payout distributions or for reserved token distributions.
A split can specify an address, a Juicebox project, a contract that adheres to the IJBSplitHook interface, or the address that calls the transaction to distribute payouts or reserved tokens as its recipient.
By default, splits can be changed at any time for any ruleset configuration. A project's owner can also independently lock a split to a ruleset configuration for a customizable duration.