For agents, on top of README.md, which they read first.
- Rule order is priority. Of the rules that hold, the first with something left to do decides. An ending placed after an effect it should pre-empt will not pre-empt it.
- Every answerable way the Jev facts can fall must show something or do
something. The test
every_way_the_jev_facts_can_fall_ends_or_does_somethingwalks all of them, split readings included; a new fact or kind needs it extended, or an answerable question can end with nothing to show. - A fact's question id (
ask::question_id, mostly itsname) is in the request to Jev, so renaming one changes the request and abandons every kept response. The name is also the parameter in a/ruleslink. - The network is real, not decoration:
nextevaluates the joins the diagram draws. Do not add a second code path that decides from the facts directly. - The engine is
rete's (third-party/rustcrates, never edited from here). This crate holds only the domain:Fact,Value,Effect,End,Note,RULESand theDomainimpl. A fact's, effect's or note's name (Domain::*_name) is also its name in a rules file, so renaming one breaks every file that uses it, as well as the diagram. Networkis a wrapper over the engine's, byDeref. TheTest,Then,Known,NextandRulehere are the engine's types with this domain filled in; add a method that only this domain needs to the wrapper, and anything every domain needs torete.