Apple: see bug report 24316134.
GKRuleSystem's class reference claims that it is supposed to add rules to its "agenda" in order of each of its rules' "salience" property. In turn the agenda is said to control the order in which the rules are evaluated. At the end we get an array called "facts" that contains any facts that are the result of successful assertions (or the remainder after successful retractions).
"Facts" should get added to their facts array in the order their parent rules are evaluated. Therefore the order of the resulting "facts" in the array should be in the same order as the order of the rules in the agenda, which in turn is the order of salience.
However this is not how it works. RuleSys's agenda is broken. Facts appear in random order in the array.
Please fix this. There is basically no point to having a "salience" property if facts are in random order...
Thanks