Puzzlebox: Coordinate Agents with Finite State Machines