I played around until I was reasonably sure what the criteria to wake up each little dude was, then I wrote down each criteria. Then I spent several hours writing a haskell script to comb through a ~480,000 word dictionary I found on github, and filter by each criteria...
Except that I couldn't be bothered to figure out the best way to filter by yellow's criterion, so instead I just filtered by everyone else's and manually scanned the remainder until I found the first one that fit. I'm tired, give me a break.
What I learned:
1. I'm still an extreme novice in Haskell
2. Rust would have been several hours faster
3. I would have been done yesterday if I just used Python
4. a lot of other nerd stuff about Haskell that is probably better left to a personal blog than the comments of a cute webgame
9/10 needs more programmatically-solvable challenges that I can waste entire days on, otherwise it was perfect
Edit: I added the final filter (for yellow), it wasn't as hard as my sleep-deprived mind made it out to be