On Mon, 2017-09-04 at 23:10 -0700, Aris Merchant wrote: > A few design principles: > > 1. Contracts should be easy to use. The primary cause for the failure > of organizations was their complexity. You had to come up with a name. > You had to deal with member's budgets. You had to specify whether > things were "appropriate", without the ease of CANs and CANNOTs. You > couldn't specify SHALLs and SHALL NOTs.
Agreed. I'd put one caveat on this: contracts should probably not be free to create. When they were, people tended to create a lot of junk contracts that bogged down the Notary, and sometimes created huge series of contracts all at once for scams. Given Agora's current economic woes, I'd suggest something like a 1 sh. fee for creating a contract, and a 1 sh. upkeep fee per month (paid by the contract to Agora). This is small enough to not meaningfully impact any legitimate uses, but would probably help keep contract spam in check. We could increase the fee slightly if we wanted to. > 2. Contracts should be powerful, but not too powerful. The primary > cause for the limited adoption of agencies was that you couldn't do > much with them. Yeah, sure, you can do CANs and CANNOTs now. That's > great, but the agency can't own assets, or create obligations, or even > have more than one "Director". There was only one agency (the PDA, > which I created to let someone else run Promotor temporarily) before > Free Agency passed, greatly expanding what you could do with agencies. > Now there are many of them, but they're still not as versatile as they > could be. It goes without saying that we would like to avoid > mousetraps or other scams too, so some limitations are necessary. We probably want arbitrary SHALL and SHALL NOT on members, plus arbitrary rules for updating the contract's internal gamestate (which is effectively a CAN/CANNOT limited to the contract itself). Old Agoran contracts let each contract specify its own rules for joining, leaving, amending, etc.; we might want to change that, or to preserve it (it certainly lead to some interesting "socially driven" scams against contract wording, which might or might not be a good idea depending on your point of view). > 3. Reuse what worked. A lot of my new contract rules is drawn from the > successful parts of the existing organization system. Agreed. Agora's had too many attempts to produce a contract-like system that's different from everything that's gone before, and yet it keeps converging back on contracts. If something works, we should probably use it. > My proposal has three parts. Part 1 cleans up (tweaks and repeals) > existing rules. A lot of it is drawn from o's organization repeal > proposal, which I borrowed and then edited. Thank you, o. The second > part consists of new rules to create contracts. The third part > modifies the assets rule, both to conform with contracts and for some > general minor fixes of ambiguities that have been pointed out. Each > part has subheadings, which should hopefully make it easier to > read/not get lost in. > > Without further ado, here is my draft proposal. Comments and concerns > appreciated, though please try not to complain about the length :). > > -Aris > > --- > > Title: Contracts v.1 > Adoption index: 3.0 > Author: Aris > Co-author(s): o, G. > > > Lines beginning with hashmarks ("#") and comments in square brackets ("[]") > have no effect on the behavior of this proposal. They are not part of any > rules > created or amended herein, and may be considered for all game purposes to > have been removed before its resolution. It might be worth getting some confirmation on whether this actually works. (The last paragraph of rule 106 would suggest yes, but I think this is untested territory in Agora. B Nomic and BlogNomic both explored this space quite thoroughly, though, so it certainly can work in a successful nomic.) > # 1 Cleanup > # 1.1 Gamestate Cleanup > > Destroy each organization. > > Destroy each agency. > > Destroy each contract. [Just in case.] What about pledges? (Note that in the past, a pledge was just a contract with one member.) > # 1.2 Organization, Secretary, and Economic Cleanup > # 1.2.1 Repeal Organizations > > Repeal rule 2459 ("Organizations"). > > Repeal rule 2461 ("Death and Birth of Organizations"). > > Repeal rule 2460 ("Organizational Restructuring"). > > Repeal rule 2457 ("Lockout"). This isn't technically tied to Organizations, but I agree with repealing it anyway just because it's likely to become a dead-end mechanic without them. > Repeal rule 2458 ("Invoking Lockout"). > > Repeal rule 2462 ("Bankruptcy"). > > # 1.2.2 Change Secretary to Treasuror > > Amend rule 2456 ("The Secretary") by > > * Changing its title to "The Treasuror", then by > * Replacing its text, entirely, with: > > {{{ > The Treasuror is an office, and the recordkeepor of Shinies. > > The Treasuror's weekly report also includes: > > 1. the current Floating Value, and all derived values > defined by the Rules. > 2. the list of all public classes of assets. > > }}} > > Make o the Treasuror. > > Amend the following rules, in order, by replacing the word > "Secretary" with the word "Treasuror" wherever it appears: > > * Rule 2487 ("Shiny Supply Level") > * Rule 2498 ("Economic Wins") > * Rule 2497 ("Floating Value") > > # 1.2.3 General Economy Fixes/Cleanup > > Amend rule 2489 ("Estates") by replacing the first sentence with: > > {{{ > An Estate is a type of indestructible liquid asset. > }}} > > Amend rule 2491 ("Estate Auctions") by replacing its text, > entirely, with: > > {{{ > At the start of each month, if Agora owns at least one > Estate, the Surveyor CAN and SHALL put one Estate which is owned by > Agora up for auction, by announcement. Each auction ends > seven days after it begins. > > During an auction, any player or contract may bid a number of Shinies > by announcement, provided that the bid is higher than all > previously-placed bids in the same auction. > > If, at the end of the auction, there is a single highest > bid, then the player or contract who placed that bid wins the auction. > The winner CAN cause Agora to transfer the auctioned Estate to the > emself by announcement, if e pays Agora the amount of the bid. The There's a typo here. You probably want to delete the "the" at the end of the previous line. > person who placed the bid SHALL see to it that this is done in a > timely fashion. > }}} > > Amend rule 2483 ("Economics") by replacing its text, entirely, with: > > {{{ > Shinies (singular "shiny", abbreviated "sh.") are an > indestructible liquid currency, and the official currency > of Agora. The Treasuror is the recordkeepor for shinies. > > The Treasuror CAN cause Agora to pay any player or > contract by announcement if doing so is specified by a > rule. > }}} > > Repeal Rule 2485 ("You can't take it with you"). > > > # 1.3 Agency Cleanup > > Repeal Rule 2467 ("Agencies") > > Repeal Rule 2468 ("Superintendent") > > # 2 Contracts > # 2.1 Core Contract Features > > Create a new power 2.5 rule, entitled "Contracts", with the following text: Any reason behind the choice in power here? I vaguely remembered Contracts working at power 1.7, although looking through the actual old rules, they were at power 2.0. If we're going to have a power split between 2.0 and 2.5, it'd be helpful to have guidelines and reasoning for which goes there. Incidentally, my feelings on the matter are that contract rules should definitely be below the power of rule 2166 (but that's power 3 anyway), probably below the security limit of voting strength (which is 2.0; see rule 2422), and arguably below the security limit of Cards (1.7). I can't see any reason to take the power below 1.5, and as such, I'd consider 1.6 to be a reasonable Power for most contract actions. Note that "escalator mousetraps", where a player is forced into a contract via a scam-created rule, probably aren't worth worrying about much as it'd be easier to place the restrictions on the player directly. The exception is related to the use of contracts as Agencies, which is very powerful (and probably needs to be power 3 to function); that might need to be in a separate rule that specifically requires the player to have explicitly consented to the contract and any changes to it (or in a form of "constitutional law"). > A contract is a document, and the ruleset described entity embodied therein. Need something like "A contract is a document that has been made into a contract via a process described in the Rules", to stop random documents becoming contracts by default when the proposal is enacted. "Document" also has a rules-defined meaning, which may not be what we want; and the ability to amend a contract's text can easily interfere with several possible wordings (I'm finding it hard to make a good one where the contract /is/ its text). Perhaps better to make a contract /have/ text, rather than /be/ text. > The following changes are secured at power 2.0: creating or modifying a > contract or causing an entity to become a contract. [Note that, > as a precaution, causing an entity to cease being a contract is not > secured.] > > The properties of contracts, as described by other rules, include the > following: > > - Parties, persons who agree to be bound by and assume powers under > the contract. > - The ability to be amended or destroyed. > - The ability to compel actions by their parties. > - The ability to allow persons to take actions on the part of their > parties. > - The ability to define arbitrary classes of asset. > - The ability to possess and control assets. > > Create a new power 2.5 rule, entitled "Parties to Contracts", with the > following > text: > > Contracts have parties, who are persons. The person(s) who create(s) a > contract is/are automatically a party/parties. Other persons CAN become > parties by announcement if the contract permits them do so. Parties can > leave > a contract by announcement, ceasing being parties, if the contract permits > the to do so. A contract CAN expel a party or group of parties, causing em > to cease being parties. "A contract CAN" is very hard to define; by what mechanism does it do so? Is it pragmatic or platonic? I'd recommend pragmatising this, so that some player (/ contract party?) has to explicitly expel the players by announcement. > It is IMPOSSIBLE, by any means, for a person to become a party to a > contract, > or for an contract to be created with a person as a party, without that > person's clear, willful consent. This rule takes precedence over any rule > that might make such a change possible. There's a potential loophole here: making an existing non-contract entity that has parties into a contract. In general, the terminology is unclear as to whether a contract is a "legal fiction" type of entity that the rules deem to have been created out of nothing from scratch, or whether a contract is some other sort of entity that's been made into a contract. (Proposals have similar issues but they are at least immutable, which makes things simpler. I don't want to repeat the issues here, though.) > Create a power 2.5 rule entitled "Birth and Death of Contracts", with the > following text: > > A person CAN create a contract by an announcement, specifying text. A person > SHALL NOT create more than 3 contracts per week by this method, and the > Notary CAN destroy any excess (i.e. beyond the 3 permitted) contracts > by announcement in a timely fashion. CAN with a time limit? That's pretty unusual, although I guess it works. Also note that this rate limit is useless against players who are willing to break the rules if they think they can weather the resulting punishment; although I consider intentional rulebreaking to be something you don't do in games, we've had such players in the past. Spamming second-class players has traditionally been a very easy way to scam, and contracts have a tendency to turn into players in Agora more often than you'd think. > Any public textual agreement or set of inseparably linked public textual > agreements between a group of two or persons, made with the intention that > the > agreement(s) be binding and governed by the rules, is a contract. Hmm, this seems like yet another definition of what a contract is. Also, when written like this, it arguably resurrects all the past Agoran conrtracts (which were made this way). Given that this is meant to be public anyway, it'd make things a lot simpler if creating a contract were done by announcement, rather than implicitly. > The person or persons who create a contract CAN and SHOULD also specify a > name for the contract; if e/they do/does not do so, the Notary CAN and > SHALL assign a name in a timely fashion. > > A contract CAN amend, destroy, or retitle itself if its text permits it to > do > so. A player CAN amend, destroy, or retitle a contract without objection, > even > if the text denies em the ability to do so. Players SHOULD only use this > mechanism to recover from situations where the Charter is underspecified or > has unintended effects. It's probably best not to allow contracts to perform actions platonically (i.e. without someone sending a message causing the action to happen). There's already been a couple of Wins by Paradox off that, and they were triggered in a much more dubious way than this very clear one. In general, "paradox escalation" is a real issue with contract- like rulesets, in which the contract creates an internally undefined or paradoxical gamestate, and then promotes its internal gamestate into something that the rules as a whole can see (such as contract text). I was excessively paranoid about letting this happen with Organizations and ended up making them unworkably clunky, but requiring players to trigger this sort of automatic contract action explicitly makes sense. Perhaps we could create a new mechanism via which contracts could take actions, requiring a party to the contract to announce that the contract takes the action /and/ that the contract's text says that it will take that action, and wording rules like "A contract CAN, by party announcement, …". > If a contract has fulfilled its purpose, does not specify any gamestate > affecting statements, or otherwise seems unlikely to be used, the Notary > CAN and SHOULD destroy it Without 2 Objections or with Agoran Consent. Any > player may destroy a contract with 2 Agoran Consent. I'm not convinced these are the right dependent actions. Imagine a player has a contract where they loan out assets and get repaid later (with all the loanees joining so that they can be forced to pay them back). Then the loanees just get out of the contract without 2 objections, as only the lender will have an incentive to object. The standard should probably be "without objection" or "without party objection" (the latter might need defining). Incidentally, "without party objection" would mean that a 1-person contract could easily be dissolved; a "pledge" used to simply mean a contract that couldn't be amended or repealed by unanimous agreement of parties, and was used when a player wanted to make a promise that they couldn't back out from. > > # 2.2 Powers of Contracts > > Create a new power 2.4 rule, entitled "Contracts as Agreements", with the > following text: > > The text of a contract CAN specify obligations upon its parties. Parties to > a contract SHALL abide by its terms and SHALL NOT deliberately or > negligently > breach them. The fact that the action described by the contract is in > violation of the rules is not a defense if the violative nature is > reasonably clear from its text. > > As an exception to the provisions of the previous paragraph and the > circumstances in which cards would ordinarily be appropriate, a person > awarding a card under this rule MAY consider the equitable interests of > justice and interests of the game, including the importance of the > observation > of contracts, as a mitigating or aggravating circumstances when awarding a > card. Such a person MAY and SHOULD also consider the instructions of the > contract or contracts in question when issuing a card. I think we'll want to bring back equity CFJs eventually (and overhaul SHALLs in other ways), but this will do as a starting point. > Create a new power 2.4 rule, entitled "Acting on Behalf via Contract", with > the following text: > > A person CAN, by announcement, cause a contract perform any action the rules > authorize that contract to perform, if the contract states that it is > possible for em to so. Ah, so this is how contracts take actions. It's typoed (missing a "to" after "contract"), and isn't clear enough IMO; it really needs to define "A contract CAN" not only so that it's clear how you can make a contract do something, but also so that it's clear that a contract can't perform such actions by, say, stating in its text that it performs such actions. Contracts would also have more autonomy if we allowed the action to be performed by a public message stating that the contract performed the action, even if the action wasn't performed by a person. (Last time we had a contract act as Promotor, we had the occasional proposal distribution sent from a server connected with the contract, and triggered by Googlebot.) > If a rule specifies that contract SHALL or SHALL NOT do something, it is > equivalent to saying that the parties to the contract are jointly > and severally liable to see to it that that thing is done or not done. > [Thoughts? Should I save this for when I actually write a partnership > proposal?] We can word this without needing to import existing legal language: "If a rule specifies that a contract SHALL or SHALL NOT do something, each party to the contract SHALL ensure that the contract respectively does or does not do that thing." > The text of a contract CAN permit persons to act on behalf of a party or > group of parties. It must specify: > > a. Which of it's parties can be acted on behalf of; > b. What actions can be taken; > c. Who can take the actions; and > d. Any conditions or limitations upon the actions. Such limitations > and conditions CANNOT be inextricable, and if they are, > the actions CANNOT be used. "it's" is a typo. I'm shocked that this is possible at power 2.4 (although under the current ruleset, it's possible even at power 1!). Rule 2466 could definitely do with being secured at at least power 2, or there's a pretty trivial 1→3 escalator right there. > # 2.3 Contract Interpretation and Maintenance > > Create a new power 2.5 rule, entitled "Interpreting Contracts", > with the following text: If we're having a Power split in the contract rules, I'd prefer this one to be highest. > A contract should generally be interpreted according to its text, including > any clauses giving directions for its interpretation or construction. Such > clauses are ineffective if they are manifestly unjust or contrary to the > best interests of the game. > > A contract is subservient to the rules. Although a contract may specify > obligations or powers beyond those created by the rules, a contract may not > override the rules: in particular, any provision of a contract that would > unreasonably violate an inalienable right of players and/or persons or > cause any rule defined statement about the gamestate or the possibility of > an action to become false is void and without effect. > > The following are protected actions: > > 1. Deregistering; > 2. Submitting, pending, distributing, voting freely on, and assessing > a proposal, where the sole effect the proposal would have if adopted > is to create, modify, or destroy a contract or group of contracts, > or to cause an entity or group of entities to become or cease to be > a contract or group of contracts; and This is a little hard to read. "where" should probably be "but only if" to make it clearer how the parts of the sentence relate. > 3. Intending to destroy a contract, and supporting, objecting to, or > resolving > such an intent. > > [Can anyone think of any additions to this list?] It's worth considering adding registering (it's quite common for players who aren't very connected with Agora to make a contract/agency/promise/whatever that lets other players reregister them if they deregister, which seems problematic; and a contract forbidding registration seems broken). More importantly, a contract that forbids its parties from accurately describing the contract could be a huge problem, especially if the Notary ends up as a party. I'd recommend banning a contract from requiring false reports. (Sorry, G.) Along similar lines, I'd recommend banning contracts from requiring false judgements. (Sorry, BobTHJ.) > Rules to the contrary notwithstanding, a contract CANNOT compel, forbid, > or in any way alter, tamper with, or modify the performance of a protected > action. A contract CANNOT reward or punish a player for performing or > failing > protected action, or for doing so in a particular manner. A contract > also CANNOT allow a person to do any of the things prohibited to the > contract > by this paragraph. Insofar as a contract or a provision or clause of a > contract contravenes the letter or spirit of this paragraph, it is void > and without effect. "CANNOT allow" here seems broken; arguably that implies that a contract is void if it doesn't explicitly forbid performing all that stuff. I'm not sure what you're trying to block here, but when you figure it out, it needs rewording. > Create a new power 3.0 rule, entitled "The Notary", with the following text: > > The Notary is an office, and the recordkeepor of contracts. The Notary > tracks > contracts, including their name, text, and parties. The Notary also tracks > the list of private classes of asset. > > The Notary's monthly report inludes all information which e tracks as a part > of eir offical duties. The Notary's weekly report includes all changes to > this > information. [Should the monthly report be self-ratifying?] > > Make <someone> Notary. [Any volunteers? Maybe our current Secretary or > Superintendent?] Why power 3? I can't see a reason why this rule would need to be above 1, other than theme. (Also, we don't have a Superintendent right now; the previous holder resigned.) Self-ratifying contracts is probably a bad idea, incidentally. Contracts can come up with all sorts of ridiculous internal gamestate by themselves, it's probably worth reducing the stakes for reporting it inaccurately; and on the other hand, a misidentified contract is rarely a huge problem as it normally only promotes up into SHALLs. (Again, Agency-like behaviour could be a problem here.) > # 3.0 Asset Changes > > Amend Rule 2166, "Assets", by changing it to read in full: > > An asset is an entity defined as such by a rule, authorized regulation, > group of rules/regulations, or contract (hereafter its backing > document), and existing solely because its backing document defines its > existence. > > Each asset has exactly one owner. If an asset would otherwise > lack an owner, it is owned by Agora. If an asset's backing document > restricts > its ownership to a class of entities, then that asset CANNOT be gained by or > transferred to an entity outside that class, and is destroyed if it is owned > by an entity outside that class (except if it is owned by Agora, in which > case > any player CAN transfer or destroy it without objection). The restrictions > in > the previous sentence are subject to modification by its backing document. > > Unless modified by an asset's backing document, ownership of an asset is > restricted to Agora, players, and contracts. > > A contract's text CAN specify whether or not that contract is > willing receive assets or a class of assets. Generally, a contract CANNOT > be given assets it is unwilling to receive. If the contract is silent on the > matter the procedure to determine its willingness is as follows: Should be "can", not "CAN". This could also do with anti-paradox- escalation technology (either in a separate proposal or this one). > 1. If the contract appears to anticipate being given assets (e.g. by > authorizing parties to spend the contract's assets), then the contract > is willing to receive all assets. > 2. Otherwise, it is unwilling to receive all assets. > > The recordkeepor of a class of assets is the entity (if any) > defined as such by, and bound by, its backing document. That > entity's report includes a list of all instances of that class > and their owners. This portion of that entity's report is > self-ratifying. We need some clarification as to what happens if a contract defines a class of assets without defining a recordkeepor for them. I know there were previous attempts in former Contracts rulesets to create gamestate purely so that the default-recordkeepor had to report on it. > An asset generally CAN be destroyed by its owner by > announcement, subject to modification by its backing document. An > indestructible asset is one defined as such by it backing document, and > CANNOT > be destroyed except by a rule, other than this one, specifically addressing > the destruction of indestructible assets or that asset in particular; any > other asset is destructible. In circumstances where another asset would be > destroyed, an indestructible asset is generally transferred to Agora, > subject > to modification by its backing document and the intervention of other rules. > > To "lose" an asset is to have it destroyed from one's > possession; to "revoke" an asset from an entity is to destroy it > from that entity's possession. > > An asset generally CAN be transferred (syn. payed, given) by its owner to > another entity by announcement, subject to modification by its backing > document. A fixed asset is one defined as such by its backing > document, and CANNOT be transferred; any other asset is liquid. To cut off CuddleBeaminess, "by announcement by its owner", surely? This is more important with contracts, because "A contract CAN" will probably end up defined, so how does "A contract CAN by announcement" fit into that? > To spend an asset is to pay it for the purpose of doing some other action or > fulfilling an obligation; if the action would not be completed, the > obligation > would not be at least partially fulfilled, or more of the asset would be > spent > than is needed to perform the action/fulfill the obligation, then the > attempt > to spend fails. Generally, when an asset is spent, it is paid to Agora. The last sentence isn't precise enough IMO. Something like "If a rule specifies that an asset should be spent, but not the entity to which the asset is paid, then the asset is paid to Agora." > When a rule indicates transferring an amount that is not a natural number, > the specified amount is rounded up to the nearest natural number. > > A currency is a class of asset defined as such by its backing document. > Instances of a currency with the same owner are fungible. > > The "x balance of an entity", where x is a currency, is the number of x that > entity possesses. If a rule, proposal, or other competent authority attempts > to increase or decrease the balance of an entity without specifying a source > or destination, then the currency is created or destroyed. > > When a player causes one or more balances to change, e is ENCOURAGED > to specify the resulting balance(s). Players SHOULD NOT specify > inaccurate balances. > > Where it resolves ambiguity, the asset or currency being referred to is the > currency designated as "Agora's official currency", if there is one. > > Amendments to a backing document shall not be construed to alter, transfer, > destroy, or otherwise effect any assets defined by that document, unless > that is their clear intent. > > An asset or class of assets is public, rather than private, if its backing > document is a rule, group of rules, or a regulation or group of regulations. -- ais523