Hi Brian,
Its not adding a new object type, just a new property so both score and progress use the score object. In the case of the progress property the score object shows percent (or x out of y) completion, and in the case of the score property, the score object shows percent (or x out of y) success. There is no progress object, just a progress property, for which the valid object type is a score object. 

The language change was second - initially I just copied and pasted score and then changed the name but I thought I needed to say something to explain the difference. 

Think of it as being like timestamp and stored. Both properties have the same format and type, but mean different things. We also reuse the agent, group, activity,substatement, statementref and language map objects for different properties of the statement. Also consider the actor property for which the valid object is an agent or the object property for which the valid object can be all sorts of things. 

Does that make more sense? Can you suggest any amends to make this clearer to first time readers?