This was in my drafts folder from the last time I was playing, back
when there were dozens of contracts floating around. The intent here
was to allow a contract to transclude sections of other contracts,
thus allowing the elimination of mot of the boilerplate that was in
even trivial contracts. Just thought I'd post it in case anyone was
interested in having a look:


This is a public pledge named "Router" governed by the rules of Agora.

The System Administrator (syn. SA) is responsible for maintaining this
contract. The System Administrator is BobTHJ. An entity can send a
notice to the SA by e-mailing [email protected]. The Network is a
list of all Clients, plus all other entities which request to be part
of the Network and provide a valid e-mail address for notification.
The System Administrator SHALL regularly report a list of all
published methods, their text, and all known subscribers to those
methods to the Network.

For the purposes of this contract a Binding Document is a document to
which one or more persons (its parties) have agreed to abide by. This
includes (but is not limited to) the rules of a nomic or a legally
binding contract governed by an outside agency.

A Method is a block of text. Each method has a type and a unique name
- both alphanumeric strings of characters. Methods may be defined in
any Binding Document (hereafter known as a Server). A Server (or its
agent) CAN (through the document's internal mechanisms) publish a
method by sending notice of that method's type, name, and text to the
SA clearly indicating that the method should be published. If that
method's name is unique among all published method names (past and
present) the method becomes published upon the reciept of such a
message.

A Server (or its agent) CAN (through the document's internal
mechanisms) revise a method that has previously been published by that
Server by sending notice to the SA clearly indicating the unique name
of that method and specifying the new text for that method. Upon the
reciept of such a message that method becomes "CHANGE PENDING" and
BobTHJ SHALL as soon as possible issue a report to the Network clearly
indicating the CHANGE PENDING state of the method and the new text.
Exactly one week following the issuance of such a report the text of
the published method is changed to reflect the new text and the method
ceases to be CHANGE PENDING.

A Server (or its agent) CAN (through the document's internal
mechanisms) terminate a method that has previously been published by
that Server by sending notice to the SA clearly indicating the unique
name of that method and indicating that it should be terminated. Upon
the reciept of such a message the method in question ceases to be
published, and the SA SHALL report the terminated state of this method
to the Network as soon as possible.

Any Binding Document may become a Client by specifying its agreement
to this contract in its text in such a way that all members of that
document are bound by this contract as well. A Client can become a
Public Client by sending (possibly through its agent, as permitted by
its internal mechanisms) notice to the SA requesting to become a
Public Client. Upon the reciept of such a message the Client becomes a
Public Client. A Client which no longer specifies agreement to this
contract in its text ceases to be a Client.

A Client CAN specify a list of Subscriptions (either in its text or
through a mechanism described in that document). Each Subscription
contains a Method type followed by an ordered list of zero or more
names. These names SHOULD correspond to published methods of the
specified type. A Client may not have more than one Subscription for
each Method type. At any given time at most one published Method
corresponding to a name in the Subscription's ordered list and
corresponding to the type of the Subscription is the Provider. A
Client may define its own guidelines for determining which Published
Method from among those named in the Subscription is the Provider, but
in the absence of such a definition the first listed name in the
ordered list which corresponds to a Published Method of the
appropriate type is the Provider. The Client transcludes the text of
all Provider methods, and parties who have agreed to the Client agree
to the text of all Provider methods as well. A Client CAN modify its
list of subscriptions, or the ordered list of names in any
subscription through its own internal mechanisms.

METHODS
-------

This contract defines the following Methods. Creating, amending, or
deleting a method definition here is equivalent to the SA being
notified of that creation, amendment, or termination of the method as
described above.

AGORAN ANNOUNCEMENT
Type: Performance
Text: {
      A public message is a message sent via an Agoran public forum, or sent
      to all players and containing a clear designation of intent to
      be public.  A person "publishes" or "announces" something by
      sending a public message.

      Where this document defines an action that CAN be performed "by
      announcement", a person performs that action by unambiguously
      and clearly specifying the action and announcing that e performs
      it.  Any action performed by sending a message is performed at
      the time date-stamped on that message.
}

OPEN MEMBERSHIP
Type: Joining
Text: { Any person CAN agree to and become bound by this document by
announcement }

UNRESTRICTED DEPARTURE
Type: Leaving
Text: { Any party CAN cease to be bound by this document by announcement. }

AGORAN EQUITY
Type: Arbitrarion
Text: { Should the spirit and intent of this contract be violated, any
party CAN notify the SA of the Router contract of the nature of the
violation. Upon the reciept of such a message the SA shall initiate an
Agoran equity case for the Router contract, and indicate this Client
and the nature of the violation. }
Note: The intention here it to provide a means for non-Agoran
contracts to use the Agoran equity courts for dispute resolution.

Reply via email to