Is there a reason other then its how the other libraries do it that we have onUnitEnterVision() called only for visible enemies? It would be much more useful if the method was called or a new one was created to be called for the else case so we could handle creating or updating to snapshots our own unit classes without needing to go through the whole list of units again and without needing to store our own previous state data?