The PackSelectionCondition class, and its use in RulesEngineImpl.initStandardConditions() use the Pack.id attribute to identify packs.
This is the wrong attribute. Pack.id is the localisation identifier, and is optional. Its supposed to be used to derive a pack name for the current locale.
PackSelectionCondition should be using Pack.name instead.
The reason it works currently is due to some code in Packager that assigns Pack.name to Pack.id if the id is null.