I would be happy to help you code or annotate, whoever word you are using, each 
message.
----
Publius Scribonius Scholasticus
p.scribonius.scholasti...@gmail.com



> On Sep 28, 2017, at 3:28 AM, Owen Jacobson <o...@grimoire.ca> wrote:
> 
>> This is the first stage of an attempt to create an annotation system 
>> designed to formalize game state changes by attaching formal descriptions of 
>> those changes to documents, represented by email messages. At this time, I 
>> plan only to archive messages, but there will be a read element allowing 
>> anonymous users to read and enumerate messages from the archive in the near 
>> future.
> 
> The broader scheme here is this:
> 
> 1. A client app forwards public messages to the archive. They sit in an 
> “unannotated messages” queue until someone - me, probably - picks them up and 
> annotates them.
> 
> 2. A user annotates each message with a short formal description of the 
> game-state changes imposed by a message. These annotations are mutable, so 
> mistaken annotations are not a permanent problem, and are versioned so that 
> vandalism can be undone. I haven’t worked out the exact schema for these 
> annotations, yet, but the concept I’m working with is loosely based on the 
> RFC 6902 JSON Patch format, adapted for Agora’s specific needs. For example, 
> an annotation transferring shinies might read, in YAML form for readability:
> 
>> - op: event
>>  office: Secretary
>>  summary: o paid Ørjan 1 sh.
>> 
>> - op: transfer
>>  from: /Shinies/Player/o
>>  to: /Shinies/Player/Ørjan
>>  delta: 1
> 
> Obviously, this is an awkward format, but it has some nice properties that I 
> think make it worth building on. I’m still tweaking the actual format for 
> annotaitons, and it’s likely I’ll add a UI or some variety of terse syntax so 
> that it’s possible to write this kind of simple action in fewer than eight 
> lines.
> 
> 3. The archive exposes an API that can sum up the annotations, starting from 
> the beginning of time, all the way up to a specific point in time, and then 
> return the computed state of the game plus a list of events by office. My 
> report scripts will become “query this API in a specific way, and feed the 
> resulting data to a template to render it for email.”
> 
> The idea is that instead of trying to reduce Agora to a set of formal 
> actions, I instead want to keep the prose forms as the primary documents and 
> allow formal note-taking alongside them. Many of Agora’s state changes are 
> formalizable, and from there, those parts of Agora’s state are computable, so 
> this could take a bunch of load off for computing those parts of the game.
> 
> I’ve had some success with a reduced version of this approach for the office 
> of Surveyor. All Surveyor’s reports have been generated by a built-to-purpose 
> Python script that applies the same principles to a set of local YAML files 
> instead of a web API.
> 
> -o

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to