Our usual heuristic for underscoring a property is if it is a public object (i.e., an object that your average developer might have floating around in their app), and the property is private. We aren't completely consistent in when we do this, however. Typically, it's most often done in the cases where:

1. There may be temptation to treat it as a public property (see the `container` to `__container__` rename), or
2. There is the likelihood of colliding with a property that a developer may want to use in a subclass. Extremely configurable classes, like `DS.Model`, are most susceptible to collisions like this.