Okay, I've done to v2 what I already did to v0: kill the scope creep. It
was much less extreme this time, but I realized that the scope creeped
into contract safety. This version is basically just fixing
interpretation and expanding some useful clauses to apply to more than
just the Rules.
Here's the new change list, and the reasoning behind it:
- Contracts, the Ruleset, and regulations are binding. Reasoning: they
essentially have the same basic functions, just different scopes and
ways of creating/modifying them. (I have some plans for using this term
in other proposals, for this same reason.)
- Amend regulated action definition: add "defines", "requires", and
"forbids" to requirement (1), place quotation marks around the word
"recordkeepor" in part (3). Reasoning: the first resolves a question
that came up during CFJ 3737, this wording pretty clearly includes
SHALL/SHALL NOT; the second part resolves the statement in CFJ 3740 as TRUE.
- Protecting action definitions from arbitrary modification: a contract
cannot state that you CAN or CANNOT do something that the rules say you
CAN or CANNOT do, it can only say you SHALL or SHALL NOT do that thing.
Reasoning: obvious, I think.
- Expand the "only using the methods" clause to all binding entities.
Reasoning: useful clause, should apply to more than just the Rules
- Expand the bar on interpretation clause to all binding entities.
Reasoning: again, useful clause, should apply to more than just the Rules.
- Remove criminal liability on interpreting the rules, just state that
certain interpretations are invalid. Reasoning: CFJ 3737.
- No additional list of things contracts CAN/CANNOT do. Reasoning: Aris :)
I think this might benefit from a clause from v0, the unique action
definition clause, which would prevent contracts from hijacking the
action of physically breathing.
Call this v3, I guess:
{
Amend Rule 2493 ("Regulations") as follows:
Append the following text to the first paragraph: "Regulations are
binding."
Amend Rule 1742 ("Contracts") as follows:
Append the following sentence to the first paragraph: "Contracts are
binding."
Amend Rule 2125 ("Regulated Actions") to read:
An entity is binding if and only if the Rules designate it as such.
The Rules as a whole is an entity that is binding; this entity is
known as the ruleset.
An action is regulated by a binding entity if: (1) the entity
directly and explicitly defines, limits, allows, enables, permits,
forbids, or requires its performance; (2) the entity describes the
circumstances under which the action would succeed or fail; or (3)
the action would, as part of its effect, modify information for
which the entity requires some player to be a "recordkeepor".
Rules to the contrary notwithstanding, a binding entity CAN only
require or forbid an action that it does not define; it CANNOT
modify anything else about the action in any way.
The set of actions that are regulated by an entity is the entity's
set of regulated actions.
An action that is defined by a binding entity CAN only be performed
as described by the entity, and only using the methods explicitly
specified in the entity for performing the given action.
Interpretations that result in the entity directly proscribing
actions that are not regulated by it are invalid.
Retitle Rule 2125 to "Binding Entities".
Set the power of Rule 2125 to 3.1.
}
Jason Cobb
On 6/24/19 12:28 PM, Jason Cobb wrote:
I think the main issue with contracts is that there are fairly complex
desires for what we want them to do. The changes to R1742 ensure that
they can prohibit/require anything that the Rules define, which I
think is desirable. If that's all we wanted contracts to be able to
do, then that would be enough; we wouldn't need the bulleted list at
the end. But we want contracts to be able to do more than that: we
want them to be able to define assets, allow parties to act upon each
other's behalf, etc. But we also specifically don't want them to be
able to say you CAN or CANNOT do something that the Rules say that you
CAN or CANNOT do.
Jason Cobb
On 6/24/19 11:58 AM, Aris Merchant wrote:
In large part, it’s the whole thing together. It feels like a complex
set
of changes across multiple rules. The fact that such a change is
necessary
suggests that the entire approach is inelegant. In general, the best
approaches to solving problems require relatively few rule changes,
and it
feels like there should be a simpler way of solving the same problem.
In particular though, the Rule 1742 changes leave a really bad taste
in my
mouth. Part of that is no doubt the historical record of the contract
rules: long lists of what contracts can and can’t do have pretty
conclusively shown to be bad idea. The fact that this solution seems to
require one also makes me doubt it’s advisability.
Sorry for giving you a bunch of problems and no solutions.
-Aris
On Mon, Jun 24, 2019 at 8:07 AM Jason Cobb <[email protected]>
wrote:
Is it any parts specifically, or is it just the entire thing when
looked
at together?
If it's any part specifically, I imagine it's either the Rule 1742 or
the Rule 2125 changes.
The Rule 2125 changes were intended to mirror the old Rule 2125 as
closely as possible. The big changes (outside of adding some
definitions) were extending the existing clauses to work with all
binding entities, and adding the override clauses so that the Rules can
explicitly specify whether or not an actions is regulated.
If it's the Rule 1742 changes, I can see where you're coming from. The
changes to the very end of the rule were intended to be the simplest
possible phrasing changes to get it to make sense; although I did add
the safety net of including an announcement (so that everybody else
knows that it was done) and add joining/leaving (which weren't there
before and could have cause issues with contracts that purport to allow
people to leave).
Jason Cobb
On 6/24/19 9:38 AM, Aris Merchant wrote:
It’s getting to the point where this is feeling inelegant again,
which is
usually a very bad sign.
-Aris
On Sun, Jun 23, 2019 at 3:57 PM Jason Cobb <[email protected]>
wrote:
Here's v2 for further comment. Since we've got a while before the
next
distribution, I'll leave it up for much longer.
omd: any of your previous comments that I did not specify a
resolution
for are resolved as WONTFIX (I think it's just inextricable
conditionals
and not regulating matters of external reality, for which there's no
simple wording that I see).
I also permit contracts to regulate joining and leaving the contract.
{
Amend Rule 2493 ("Regulations") as follows:
Append the following text to the first paragraph:
"Regulations are
binding."
Amend Rule 1742 ("Contracts") as follows:
Append the following sentence to the first paragraph:
"Contracts
are
binding."
Insert the following paragraph after the paragraph beginning
"Parties to a contract governed by the rules":
Contracts CAN define and regulate new actions. These
actions
CAN
only be sequences of actions that are game-defined, but may
include conditionals, repetition, and other similar
constructs.
Contracts CAN require or forbid actions that are defined in
other binding entities. To the extent specified by the
Rules,
contracts CAN define or regulate other actions. Any actions
that
meet these criteria are regulated by the contract. Any
actions
that do not meet these criteria are not regulated by the
contract.
Replace the paragraph beginning "A party to a contract CAN"
and the
following list with the following text:
A contract CAN define and regulate the following actions,
except
that the performance of them must include at least
clearly and
unambiguously announcing the performance of the action:
* Acting on behalf of a party to the contract.
* Revoking destructible assets from the contract.
* Taking liquid assets from the contract.
* The creation, transfer, and destruction of any
asset for
which the contract is the backing document.
* Changing from being a non-party to being a party
to the
contract
* Changing from being a non-party to being a party to
theandand
contract
Amend Rule 2125 ("Regulated Actions") to read:
An entity is binding if and only if the Rules designate it
as such.
The Rules as a whole is an entity that is binding.
An action is regulated by a binding entity if: (1) the entity
directly and explicitly defines, limits, allows, enables,
permits,
forbids, or requires its performance; (2) the entity
describes the
circumstances under which the action would succeed or fail;
or (3)
the action would, as part of its effect, modify information for
which the entity requires some player to be a
"recordkeepor"; or
(4)
the Rules state that the action is regulated by the entity.
The above notwithstanding, if the Rules state that an action
is not
regulated by an entity, the action is not regulated by that
entity.
Rules to the contrary notwithstanding, a binding entity CAN
only
require or forbid an action that it does not define; it CANNOT
modify anything else about the action in any way.
The set of actions that are regulated by an entity is the
entity's
set of regulated actions.
An action that is defined by a binding entity CAN only be
performed
as described by the entity, and only using the methods
explicitly
specified in the entity for performing the given action.
Interpretations that result in the entity proscribing
actions that
are not regulated by it are invalid.
An action is game-defined if and only if it is a regulated
action
of
some binding entity.
Retitle Rule 2125 to "Binding Entities".
Set the power of Rule 2125 to 3.1.
}
Jason Cobb
On 6/22/19 12:54 AM, Jason Cobb wrote:
Thanks! Responses inline.
Jason Cobb
On Fri, Jun 21, 2019 at 9:03 PM Jason Cobb <[email protected]>
wrote:
Contracts CAN define new actions. These actions CAN
only be
sequences of actions that are game-defined, but may
include
conditionals, repetition, and other similar constructs.
This seems like it could allow contracts to create ambiguous game
states through unreasonably complex conditionals or repetition...
though that possibility may already exist.
This should probably be fixed with extricability in general, rather
than just only applying to contracts.
Contracts CAN require or forbid actions that are
defined in
other binding entities. To the extent specified by the
Rules,
contracts CAN define or regulate other actions. Any
actions
that
meet these criteria are regulated by the contract. Any
actions
that do not meet these criteria are not regulated by
the
contract.
The last sentence seems to do nothing, since "these criteria"
include
"regulat[ing] other actions" "to the extent specified by the
Rules",
but it's true in general that you can only regulate things to the
extent specified by the Rules.
I put the "to the extent specified by the Rules" clause there
primarily to allow the final section of the proposal to allow
contracts to let its parties do things listed there.
I put that "Any actions that do not meet these criteria are not
regulated by the contract." there to explicitly invoke the override
clause in the new Rule 2125. By the definition of "regulated", a
contract could still forbid/require/etc. actions that it defines,
even
if it CANNOT define those actions. This clause prevents that.
A contract CAN define and regulate the following
actions,
except
that the performance of them must include at least one
announcement:
"at least one announcement" seems overly broad – e.g. "X CAN act on
behalf of Y to deregister by announcing that e likes cupcakes."
That's probably valid, although it's at least better than
allowing it
to be performed secretly. I will withdraw and submit a v1.1 to fix
this.
An action is regulated by a binding entity if: (1) the
entity
directly and explicitly defines, limits, allows, enables,
permits,
forbids, or requires its performance; (2) the entity
describes
the
circumstances under which the action would succeed or
fail; or
(3)
the action would, as part of its effect, modify
information for
which the entity requires some player to be a
"recordkeepor";
or (4)
the Rules state that the action is regulated by the entity.
There are actions which are forbidden but not meant to be
regulated,
e.g. making a public statement that is a lie (which, given the
definitions in R478, refers to the real-world action of sending an
email).
If in the previous wording "limit" is interpreted to include "SHALL
NOT", then this is a bug in both versions. I can't think of a clear
way to fix this other than trying to find all such places in the
Rules, which doesn't sound fun.
Rules to the contrary notwithstanding, a binding entity CAN
only
require or forbid an action that it does not define; it
CANNOT
modify anything else about the action in any way.
This arguably conflicts with the "CAN only be performed" clause
below,
in which case the latter would take precedence by R2240.
Correct, the latter clause should say "An action that is
*defined* by
a binding entity..." Will fix in v1.1.
The set of actions that are regulated by an entity is the
entity's
set of regulated actions.
An action that is regulated by a binding entity CAN only be
performed as described by the entity, and only using the
methods
explicitly specified in the entity for performing the given
action.
The entity SHALL NOT be interpreted so as to proscribe
actions
that
are not regulated by it.
The SHALL-NOT-interpret clause really needs to go away; I'm pretty
sure it was only added by mistake (i.e. it wasn't intended to
use the
definition implied by the capitalization). It makes no sense to
attach criminal penalties to interpretations at all, let alone
without
saying those interpretations are wrong.
Unfortunately there's no standardised wording for stating that
interpretations are valid or invalid.
Perhaps "Interpretations that result in the entity proscribing
actions
that are not regulated by it are invalid"?