In working on https://github.com/721labs/partial-common-ownership/pull/32, I realized how the complexity of PartialCommonOwnership721.sol's business logic makes developing on top of it difficult. This PR breaks the core logic into composable, domain-specific modules.
This provides the added benefit of making the library more extensible. Partial Common Ownership is highly theoretical and these changes make it easier to compose a PCO-compliant contract with alternative business logic, for example swapping out the current Harberger tax system for a depreciating license.
Summary
In working on https://github.com/721labs/partial-common-ownership/pull/32, I realized how the complexity of
PartialCommonOwnership721.sol
's business logic makes developing on top of it difficult. This PR breaks the core logic into composable, domain-specific modules.This provides the added benefit of making the library more extensible. Partial Common Ownership is highly theoretical and these changes make it easier to compose a PCO-compliant contract with alternative business logic, for example swapping out the current Harberger tax system for a depreciating license.