Design an Extensible Simulation Engine | OpenAI Interview Question