Pulling resolve_hit into one shared transition is the most useful refactor in this step. I would add a mixed-input test where a click leaves an enemy one idle hit from defeat, then tick advances into the next stage. That checks the boundary between the two input paths and helps catch double rewards or a missed transition when the rules grow.