The triad of context - SwiftAusterity/MarkovianEchoes GitHub Wiki
There will be 3 main parts to the system: the interpreter (reads input, outputs context/s), the Markovian Engine (merges contexts) and the Akashic Record. (there are also 3 types of content: Places, Things and Personas)
Interpreter
The interpreter will take text input which is typed as "action" or "spoken". (the players can indicate if they're speaking in the ui)
Actions will be turned into context for the targets of the action and generate Verbs and Decoration.
Spoken will link things to context. If something is spoken that exists somewhere globally (but not locally) it will be linked to the current context. If it's a Place a link to travel to that place will be added to the existing place. If it's a Thing or Persona some part of the target's context will be merged into the existing context and for anyone (personas) listening.
Speaking about entities conveys pieces of meaning and definition to those that can listen (personas).
Acting against entities contributes meaning to the actor, the target and the Place that it occurs in.
Observing actions contributes meaning to the observer (persona) but that contribution can become mutated based on their own context.
Markovian Engine
The Markovian Engine will merge a context or set of contexts with an entity's existing full set of context.
The mutation of context is a very important element to the process. Each context within the entity's full set of contexts can get altered based on the verbs and decorations they already know.
Akashic Record
Each Persona keeps its own Akashic Record which is a full set of things the persona has done and observed. It will be used to convey memories for human players assuming the Persona.