A data-driven village simulation with pluggable cognition backends