static F1 itemToMap_ExecutedRule() { ret func(ExecutedRule r) -> Map { Map map = litorderedmap( Output := nullIfEmpty(join("|", r.output)), Facts := nullIfEmpty(join("|", r.facts)), "New Input" := nullIfEmpty(join("|", r.newInput))); RuleWithParams rule = r.rule; if (rule cast FailedRule) { mapPut(map, "Failure Level" := nlLogic_failureLevelString(r)); mapPut(map, "Satisfied Conditions" := empty(rule.satisfiedConditions) ? null : join(" && ", allToString(rule.satisfiedConditions))); mapPut(map, "Remaining Conditions" := simpleSpaces3(strOrNull(rule.remainingCondition))); } mapPut(map, "Rule ID" := r.ruleID()); mapPut(map, Details := rule); ret map; }; }