Hi, reflection does not guarantee order, ever--this was addressed in swagger-core 1.3 by adding a position annotation for each field. I don't think it can be backported to swagger 1.2.4 easily though:
case class DomesticAnimal (
@(ApiModelProperty @field)(value = "name of animal", position = 1) name: String,
@(ApiModelProperty @field)(value = "animals are safe for children", position = 2) safeForChildren: Boolean,
@(ApiModelProperty @field)(value = "date added", position = 3) date: java.util.Date)
It sounds like one of our users has mostly ported swagger-core 1.3 into play2, I'll follow up to see if that can be committed shortly.