!7 concept Suggestion { long date; S text; S author; S actionCode; } static Suggestion showing; static ReliableSingleThread rstUpdate = new(f updateImpl); p-subst { autoRestart(); db(); botWithInput("Suggestion Master.", [=[ me suggests hello with action [[infoBox("hello")]] ]=]); } answer { if "* suggests * with action *" { cnew(Suggestion, date := now(), text := $2, author := $1, actionCode := $3); rstUpdate!; ret "OK"; } } svoid updateImpl { Suggestion latest = highestByField(list(Suggestion), 'date); if (latest != showing) { showing = latest; showSuggestion(showing.text, r { optimizedJavaEval(showing.actionCode) }); } }