A JavaScript text-based adventure framework