New thoughts (voting groups, and group control of funds):
I realized that OT is the ideal class library to add objects performing voting protocols for group control of contracts and asset accounts.
Using the existing system of asset accounts, OT is capable of weighted voting (for share ownership of stocks.)
Using the existing mint and token classes, OT is capable of secret ballots. (Using chaumian blinding.)
Using existing inboxes, ballots could be sent to relevant Nyms.
Then I realized that a class could be written, a VOTING GROUP, maybe “OTVoterGroup”, that would have a list of members, or a way to verify members (based on stock ownership, etc) and that could have its own rules about how decisions are made.
Such as, single member authorization, single member veto, majority vote, winner takes all, preferential voting, 2/3rds vote, 3/4s vote, X out of Y, etc. CONFIGURABLE.
These voting groups could be used ALL OVER the place. They can be used for multi-signer accounts, they can be used for escrow agreements, they can be used for corporate ownership or agency, they can be used any time you have to make a decision about something.
Then I realized that a “political body” is just a collection of voting groups, with the ability to edit its own laws. For example, one model of the USA voting process would have the voters as one voting group, the Senate as another voting group, and the House as another voting group. The first group merely selects the members of the other two groups, who edit the laws.
This is also like a corporation. The shareholders are one voting group, with weighted voting and proportional representation on the board of directors, who are another voting group. The shareholders only job is to select the members of the board. The board is responsible to edit the bylaws, and to select the members of the executive team, who are another voting group, with a “dictator” (CEO).
Then I realized that what corporations add is the hierarchical distribution of money; the ability to open asset accounts and to have funds flow to them, based on the decisions of the voting groups.
I saw that the entire hierarchy after that is really just nested departments (the same object repeated inside copies of itself), with funds flowing down and up the hierarchy, with rules set from above.
The board just selects the dictator of the top “department” (the CEO) and the rest of the departments are created recursively from there, growing organically based on need, each one able to receive funds from above, and distribute funds to departments below (with full ability to view all their receipts, and the minutes from their voting groups.)
This is all possible from only adding a couple of classes: voting group, ballot, political body, and department.
I think those 4 classes would enable everything from a model of a real democracy, to a model of a real corporation, to a model of a real multi-constituency republic, or really any political / financial structure that you wanted.
A corporation itself would be an actual “articles of incorporation” filed as a contract (probably a SMART CONTRACT)
The bylaws of the corporation would be edited by the board, just as the bylaws of a democracy might be edited by the members, and these could contain various scripts that trigger at certain key times, allowing them to configure their organization however they wanted to, with money flows, weighted votes, secret votes, ballots in the inbox for any committee decisions, etc.
Think of how powerful that could be, just from adding a few extra classes!