Design an Extensible Animal-Chess Game Engine
Company: Asana
Role: Software Engineer
Category: Software Engineering Fundamentals
Difficulty: medium
Interview Round: Technical Screen
Overview: Design an extensible object-oriented engine for a turn-based animal-chess game whose concrete rules arrive separately. Separate immutable state, move validation, rule components, turn orchestration, persistence, concurrency, and deterministic replay.