Alright, here’s a V2:

{
This contract accepts shinies as long as it has fewer than ((Pend Cost) + 1) 
shinies. It accepts no other assets.

This contract maintains a piece of state known as the Proposal Puddle, 
containing a set of micro-proposals each consisting of a title, adoption index, 
author, and body of 50 words or fewer.

A proposal cycle is the period between the publication of two Promotor reports 
containing the contents of the Proposal Pool.

Any player may add a micro-proposal to the Proposal Puddle by transferring one 
shiny to this contract if it is currently accepting shinies, or by announcement 
otherwise. Each player may do this no more than twice per proposal cycle.

Once per proposal cycle, Gaelan SHALL create and pend a proposal with the 
following properties:

Title: Any title containing “Micro-Proposals”
Author: Gaelan
Co-authors: The set of all players who authored one or more micro-proposals in 
the Proposal Puddle
Adoption Index: The maximum Adoption Index of any micro-proposal in the 
Proposal Puddle
Text: The below text, followed by the contents of the Proposal Puddle.
{
The micro-proposals below are not part of the effects of this proposal, and do 
not take effect as a result of this proposal except for as specified below.

For each of the micro-proposals below:
1. Gaelan SHALL resolve the votes cast on the micro-proposal as if it were an 
Agoran Decision for a full proposal, taking into account votes from all players.
2. Upon the resolution, if the result of the resolution is FOR, the 
micro-proposal takes effect, gaining power equal to its Adoption Index.
}

Once each proposal cycle after pending this proposal, Gaelan CAN and SHALL 
remove the contents of the Proposal Puddle. When this occurs, if the proposal 
was pended with shinies, this contract transfers the Pend Cost in shinies to 
Gaelan.

Any player may amend this contract with 2 Agoran Consent, as defined in the 
ruleset.
}

Changes:
- Changed proposal text to actually work (hopefully), as well as making me 
resolve the decisions.
- Actually clear out the Proposal Puddle each week.
- Added mechanism for amendment.

> On Feb 14, 2018, at 9:58 PM, Kerim Aydin <ke...@u.washington.edu> wrote:
> 
> On Wed, 14 Feb 2018, Gaelan Steele wrote:
>> I disagree—just because a proposal provides the text of a document doesn’t 
>> mean that the document is part of the proposal and is evaluated when the 
>> proposal gains power. 
> 
> R2350:A proposal is a type of entity consisting of a body of text and
>      other attributes.
> 
> The "body of text" is the proposal.  The whole body of text.  You can't
> have something in there without it being part of the body of text, therefore
> part of the proposal.  I don't really know what it means for the whole body
> of text to have one power, and a sub-portion to have a different power.
> 
> So R106 requires you to step through the full proposal at the power of
> that proposal.
> 
> But really, the power's a red herring.  Let's step through your loop.  
> 
> For each of the micro-proposals below:
>  {
>  1. Resolve the votes cast on the micro-proposal as if it were an
>     Agoran Decision for a full proposal, taking into account votes from all
>     players.
>  2. If the result of the resolution is FOR, give the micro-proposal 
>     power equal to its Adoption Index.
>  }
> 
> Ok, now your micro-proposals have power.  But so what?  They haven't
> actually done anything because they don't actually take effect until
> you get to them in sequence.  Now we go on.
> 
> Micro-Proposal 1:  Do X
> 
> Well, Rule 106 is still implementing the Proposal as a whole:
>      "a proposal that
>      takes effect CAN and does, as part of its effect, apply the
>      changes that it specifies."
> 
> The phrase "do X" is implemented by the Proposal at the power of the
> whole Proposal, whether or not it was FOR or AGAINST, and whether or not
> the "micro proposal" has power, because the 'Do X' is an assertive part
> of the main proposal and thus takes effect, regardless of its labeling.
> 
> In programming terms, if each micro-proposal is a Function, your loop
> sets some properties of each function (power) but doesn't actually
> call each function (doesn't say it takes effect).  Then you pass
> through and, missing a break statement, step through each function
> and it takes effect, still at the power of the original proposal
> (because R106 is driving the step-through until you reach the end
> or explicitly terminate).
> 
> Here's a re-writing that fixes it, I think:
> 
> For each of the micro-proposals below:
>  {
>  1. Resolve the votes cast on the micro-proposal as if it were an
>     Agoran Decision for a full proposal, taking into account votes from all
>     players.
>  2. If the result of the resolution is FOR, its clauses take effect as if
>     they were taking effect at the power of the AI indicated for that 
>     micro-proposal. Otherwise, its clauses do not take effect.
>  }
> The clauses below this line have no further effect.
> 
> 

Reply via email to