I'm somewhat figured out how to implement enemy learning behaviours, but there seems to be some sort of inherent unknowability about what a player does that makes it difficult to properly implement the ability to narrow down search results from random purely by using multi-dimensional dictionaries and arrays, which pretty much means having to use classical Not based constraints.