rankedRewards.length = 5 where reward distribution is [4000, 2500, 1500, 1200, 800]numberOfWinners[sessionId] == winners.length check during getReward() returns false.The issue is straightforward so I have not included a PoC.
We cannot force players to stay to ensure NUM_PLAYERS >= rankedRewards.length.
We need to ensure that inside startAndRevealGameQuestion() the game.numContestants is GTE the rankedRewards.length for fixed rewards, or numberOfWinners for proportional rewards.
We could also allow for the lower number of players but mutate the rewards distribution back to 100% total for the 3 winners.
See above.