keep properties sorted so the source is generated the same way every time: