My solution was to just put add_to_group(“interface”) in PlayerDetection and then add the two night vision and dark vision functions. This makes everything work without any other changes.
Can a node belong to multiple different groups? In other words, can guards belong to a group that has night vision functions, and also a different group that has guard-specific functions? If so, this feels like the way to go to me: Everyone who cares about night vision joins the “nightvision” group, everyone who needs guard-specific functions joins “guards”, etc.