Knowledge representation and scalable abstract reasoning for simulated democracy in Unity