These objectTypes work much like Solutes in ph-scale, where they are basically just constants that have data about how an instance of that type would behave. So if you know that the model's selectedProjectileObjectTypeProperty is cannonball, I know what the defaults will be by looking at the initialState of projectileMotion.global.model.projectileObjectTypes.cannonball:
UPDATE: the companionless one is used in vectors/drag screens where you can't choose different types. That is the only (companionless) projectile type you can fire projectiles of.
"Companionless" isn't a particularly friendly/intuitive name. We would like to something clearer like genericObjectType or generalObjectType. (I don't have a preference between generic and general.)
@zepumph would this be relatively straightforward to change? Any objections?
For #244
@zepumph described the companionlessObjectType in https://github.com/phetsims/projectile-motion/issues/219#issuecomment-591732871:
"Companionless" isn't a particularly friendly/intuitive name. We would like to something clearer like
genericObjectType
orgeneralObjectType
. (I don't have a preference between generic and general.)@zepumph would this be relatively straightforward to change? Any objections?