The problem here is like my nuggets of wisdom philosophies for creating new patterns conflict with each other and have tradeoffs.
Sometimes you end up writing code to do something your code base already does elsewhere in a different way. Because we are giving names to structures we can’t see or touch, it can be difficult to be sure code is doing what you think.
In contrast, sometimes you have a hammer and everything looks like a nail. You use the same pattern to implement something in another place and then realize you jammed a square peg in a round hole.