@matthewlisp, Clara is pretty flexible with the terminology of fact, clara provides extension points(fact-type-fn & ancestors-fn) to allow users to define their own “facts” or whatever that means to their system. I’m having trouble visualizing the sort of system that you described with the state map above, perhaps you could provide a small example?