!7 static double interval = 4.0; static S lastFacts; static new LatestAppearance factAppearance; p-experiment { autoRestart(); SS map = mechMap("Thing on screen => Fact"); repeat with sleep interval { long time = sysNow(); Set factsSet; S facts = lines(factsSet = lookupAllAsCISet(map, thingsOnScreen())); if (neq(facts, lastFacts)) printWithAsciiHeading("FACTS", or2(facts, "-")); lastFacts = facts; //done2_always(time, localDateWithSeconds() + ": Found: " + list); L factsList = factAppearance.recordAndSort(factsSet); consoleTitle(trim(l(factsList) + " " + first(factsList))); } }