Highest-threshold stage whose key ≤ stackCount. Returns null when stackCount is 0 or no stage qualifies.
A stackable effect with no active stage contributes nothing — including no native AE changes — so we tell Foundry to skip it. Toggleable-feature suppression from the parent class still applies (super check first).
StatictriggerGet effects available for trigger outcomes (e.g., applyEffect). For ActiveEffects, returns sibling effects from the parent, excluding self.
Project the active stage's contributions onto the surfaces actor / Foundry code reads:
stackCount === 0 keeps every projection inert, so isSuppressed (below) reports true and Foundry skips the effect entirely.
StaticdefineStaticmigrateStatictriggerBuild the shared triggers TypedObjectField schema.
ActiveEffect subtype that "ramps" via a numeric stack count.
The stages map (TypedObjectField keyed by stringified threshold) holds discrete payloads — modifications, triggers, native AE changes, optional name/img — that are projected onto the live AE based on the highest threshold ≤ stackCount.
Sparse keys are intentional: { 1, 2, 4 } means stack 3 floors down to the level-2 stage, and stack 5 stays on level-4.
system.modificationsandsystem.triggersare inherited from BodyMindSoulActiveEffect and act as the "always-on" baseline; the active stage's contributions are appended during prepareDerivedData, not substituted.