Boss fights are a memorable and climatic point of many games. In this work we present a programming model for defining boss experiences in 2D action games. The domain we focus on is characterized by real-time movement through a continuous space in which the player and opposing boss damage each other through physical collisions, and player and boss behavior is governed primarily by finite state machines. Our programming model consists of primitive systems such as kinematic physics to store object state and detect collisions paired with finite state machines to define behavior. We describe our model and demonstrate its expressiveness with examples of three classic boss fights from games in The Legend of Zelda, Castlevania, and Sonic the Hedgehog. Our future goals include procedural generation of boss encounters, and we report on the research challenges involved in achieving this goal.