I just want to say I loved this section.
Learning about the strategy pattern helped me simplify my approach to solving a completely different problem with my game. In my game, I generate a lot of things procedurally. I needed a way to set bounds and conditions on the procedural generation and the strategy pattern was a perfect fit.
For example to spawn characters/enemies, I will use one strategy to aggregate all the valid types of things that can be spawned. I plan to reuse this same aggregator in a few places. Then I will use tailored filtering strategies to shrink my list. My spawning criteria is basically an combination of the aggregator and filter. When I combine that with a lookup into BaseStats (e.g. player level) and Player Traits, I can dramatically shrink my code base and code complexity.
I still have to work out a few final details before I do final implementation but you have no idea how useful this whole section was for me.