Parent
#1
What to build
Mechanics are never stale after a balance patch. Today item and hero assets expire on a fixed multi-day timer, but patches have shipped a day apart — so the coach can serve outdated mechanics for up to a week.
That is the worst possible thing to be wrong about. Mechanics are the layer supplying the reason behind a recommendation, and the layer a player will trust most. Telling someone to buy an item for an effect a patch removed is a confident, well-formatted, wrong answer.
After this ticket, the arrival of a new patch event invalidates stored mechanics and triggers a re-sync. Freshness is driven by patch detection, not elapsed time.
Implement at the snapshot layer, not per table. Invalidation should apply to mechanics snapshots generally, so ability mechanics (#6) inherit this automatically when they land, with no follow-up work. Writing it per-table would mean revisiting this ticket later.
Keep the timer as a backstop for the case where no patch has ever been observed locally, so a fresh workspace still behaves sensibly.
Only mechanics need this. Statistics degrade gracefully with window age and are handled separately; mechanics are either current or wrong.
Acceptance criteria
Blocked by
Parent
#1
What to build
Mechanics are never stale after a balance patch. Today item and hero assets expire on a fixed multi-day timer, but patches have shipped a day apart — so the coach can serve outdated mechanics for up to a week.
That is the worst possible thing to be wrong about. Mechanics are the layer supplying the reason behind a recommendation, and the layer a player will trust most. Telling someone to buy an item for an effect a patch removed is a confident, well-formatted, wrong answer.
After this ticket, the arrival of a new patch event invalidates stored mechanics and triggers a re-sync. Freshness is driven by patch detection, not elapsed time.
Implement at the snapshot layer, not per table. Invalidation should apply to mechanics snapshots generally, so ability mechanics (#6) inherit this automatically when they land, with no follow-up work. Writing it per-table would mean revisiting this ticket later.
Keep the timer as a backstop for the case where no patch has ever been observed locally, so a fresh workspace still behaves sensibly.
Only mechanics need this. Statistics degrade gracefully with window age and are handled separately; mechanics are either current or wrong.
Acceptance criteria
Blocked by