/** * Логика группы: ANY = хотя бы один член «в огне»; ALL = все члены «в огне». * `memberFiring` — только включённые правила группы, по порядку. */ export function groupShouldFire(combineMode: "any" | "all", memberFiring: boolean[]): boolean { if (memberFiring.length === 0) return false if (combineMode === "any") return memberFiring.some(Boolean) return memberFiring.every(Boolean) }