## The Evolution of a Situation Space This is an overview of how a situation space and theory looks like over the course of playing. Read from top to bottom; the comments indicate the "current" action that led to the creation of the respective module or declaration. Note that the below presentation features a linearly developing situation space. This is just the easiest case. Situation spaces can develop arbitrarily complex in tree-like fashion (e.g., compare with quest and side quest systems of MMORPGs). ```mmt fixmeta http://mathhub.info/FrameIT/frameworld?FrameworldMeta ❚ theory SituationSpace = // Player starts with SituationTheory1 below that includes this root situation theory, providing access to scrolls that are available by default ❙ theory Root = include ?OppositeLen ❙ include ?AngleSum ❙ include ?Midpoint ❙ ❚ // Player starts with this situation theory. ❙ theory SituationTheory1 = include ?SituationSpace/Root ❙ // The player collects some facts about the world. ❙ fact1: ... ❙ fact2: ... ❙ fact3: ... ❙ // The player formulates a scroll view... (continued below) ❙ view ScrollView1 : ?OppositeLen/Problem -> ?SituationSpace/SituationTheory1 = factslot1 = fact1 ❙ factslot2 = fact2 ❙ factslot3 = fact3 ❙ ❚ ❚ // (continued)... and applies the scroll and thus lands in a new derived situation theory. ❙ theory SituationTheory2 = include ?SituationSpace/SituationTheory1 ❙ // The player gets access to facts obtained by the scroll (these are precisely the ones pushed out from ?OppositeLen/Solution over ?SituationSpace?SituationTheory1?ScrollView1). ❙ out_fact1: ... ❙ out_fact2: ... ❙ out_fact3: ... ❙ // Also, the player gets the view into the pushout ❙ view ScrollView1_pushout : ?OppositeLen/Solution -> ?SituationSpace/SituationTheory2 = out_fact1 = out_fact1 ❙ out_fact2 = out_fact2 ❙ out_fact3 = out_fact3 ❙ ❚ // The player goes on collecting more facts. ❙ fact4: ... ❙ fact5: ... ❙ // The player again formulates a scroll, now being able to combine facts they measured themselves and facts they previously obtained via scroll application. ❙ view ScrollView2 : ?OppositeLen/Problem -> ?SituationSpace/SituationTheory2 = factslot1 = out_fact1 ❙ factslot2 = fact4 ❙ factslot3 = out_fact3 ❙ ❚ ❚ theory SituationSpace/SituationTheory3 = include ?SituationSpace/SituationTheory2 ❙ out_fact4: ... ❙ // and so on and so forth ❙ ❚ ❚ ```