Issue 3233: Separated out the SpawnViewModel for Courtenay to (hopefully!) use