> the class does help distinguish the role, even if it's the same data underneath

Well the property name does that. By that logic, we shouldn't use `string` here but have a `NameString` class. :stuck_out_tongue: 

These are core git concepts. They're unlikely to change much right? And if they do, then they'd all change.

I think the real question is, are these actually the same __type__ of thing or not as far as Git is concerned? I kind of think they are.