BossDefeatedEventSystem uses BossDefeatedProcessedTag for one-shot semantics — once added, the event never re-fires even if the corpse lingers (fade-out delay). Do NOT remove BossDefeatedProcessedTag to “reset” a boss — destroy/re-create the entity.
BossRewardSystem appends a DOTSEconomy.WalletTransaction (v2) on the KILLER entity — NOT the deprecated DOTSInventory.CurrencyTransaction. Two silent-drop failure modes: (a) if the demo’s damage system doesn’t set LastAttacker, the killer lookup fails; (b) if the killer lacks the v2 wallet buffer set (Wallet tag + WalletEntry + WalletTransaction + WalletLedger + 3 event buffers — easiest via DOTSEconomy.WalletAuthoring), HasBuffer<WalletTransaction> is false and the reward never lands. See t1k:unity:dots-combat:core gotcha #8 for the full v2 wallet contract.
BossPhaseShakeSystem fires CameraShakeEvent — requires the Camera module (DOTSCore) to be present in the world. Without it, no shake occurs but no error fires either.
BossWindUp window is non-interruptible by design — there is no cancellation API. If a demo needs interruptible wind-ups, it must disable BossWindUpSystem and implement its own.
WagerCardSystem applies BEFORE battle start — wager modifiers are baked into boss stats via WagerEffectApplyJob at BossArenaConfig.BattleStartEvent. Changing wager mid-battle has no effect.
BossVFXTriggerSystem depends on VFXSpawnRequest buffer — the VFX bridge must be wired or phase-transition FX silently skip. Pair with t1k:unity:dots-core:bridges → VFXBridge.
PhaseTransitionEvent was RENAMED to BossPhaseTransitionEvent (de-dup pass 2026-05-31, demo commit 44d95b4e). The old PhaseTransitionEvent survives one cycle as a distinct [Obsolete] struct — it is NOT an alias, it is a SEPARATE type. BossPhaseSystem now queries WithPresent<BossPhaseTransitionEvent>(), so any entity still carrying the old PhaseTransitionEvent is never matched and the event never raises. Silent failure mode: phase-threshold logic (and tests gated on the event) report 0 transitions instead of the expected 1/2/3. Migration: in bakers, add BossPhaseTransitionEvent (not PhaseTransitionEvent); in any consumer system that reads phase transitions (e.g. HitStopSystem, ScreenShakeOnDeathSystem), query BossPhaseTransitionEvent. Update tests’ component references too. Remove all PhaseTransitionEvent references before the obsolete alias is dropped next cycle.