persistable sclass SignalWithStrength { settable S type; settable S reason; // 0 = no signal, 100 = full signal // can be outside of [0; 100] too settable double strength; settable O createdBy; toString { ret or2(type, "Unspecified ") + " signal " + appendRoundBracketed( commaCombine(reason, strength >= 100 ? null : iround(strength) + "%") ); } bool isTrigger() { ret strength >= 100; } bool nonNegative() { ret strength >= 0; } bool positive() { ret strength > 0; } }