I would like to note that
1. There are other factors than surface roughness that affect whether a certain way is usable for a certain vehicle and that are not covered by the smoothness tag. That is, if smoothness is not defined as “usability by certain wheeled vehicles’ as is suggested here, but only describes surface roughness which is then used to evaluate usability by wheeled vehicles.
2. The tracktype tag is a mess because it is skunked: different mappers take surface firmness and degree of development and other factors into account in different degrees, which makes it insufficiently clear how a certain tracktype tag on a way should be interpreted (it depends too much on the mapper who tagged it)
3. The surface tag for unpaved surfaces is a mess, judging by the lengthy discussions on the meaning of several surface tags such as gravel, fine_gravel, pebblestone, ground/dirt/earth, etc. The values are descriptive: they are based on what they are called in the different dialects of English and other languages, and not on verifiable criteria such as their physical properties that are more useful for map users.
4. What follows below is a brainstorm that needs to be discussed and thought about further and is not a well-considered proposal.
It would be good to have a firmness tag to be able to add information to ways that routers can use to judge whether a way is usable. This should be based on verifiable physical properties of the surface, i.e the composition of hard and soft materials (like the iD preset and the StreetComplete quest for tracktype do) so that it is independent of weather conditions at the time of survey.
However, I think it would be more powerful if we would create or more precisely define values in the surface key space that imply firmness. This would also help to solve the issue in item 3 above. Most unpaved ways in my mapping area have a surface “in their natural state” (composition the same as the topsoil next to the way, with no material from elsewhere added). I am tagging them as either ground (when it contains rocky components) or dirt (when it contains only sand and clay, with very little larger fragments). This already implies a firmness: ground implies firmness=grade2 or 3, dirt implies firmness=grade4 or 5. We could add further detail by defining other surface values that correspond more closely to the values of tracktype. We could for instance hijack surface=clay to mean a very soft surface of natural clay corresponding to grade5, not usable by narrow tire bicycles and with difficulty for fatbikes and motorbikes while 2-tracked vehicles (cars) are likely to get stuck in it. We could also assign default firmness values to existing surface tags such as gravel, compacted, fine_gravel, etc. so that they need to be tagged with firmness only when they deviate from the default.
It would also be very useful esp. for cyclists to introduce surface=loose_sand and surface=loose_gravel to tag surfaces that are especially difficult to cycle on. surface=loose_sand is sand that is usually very dry, so that narrow bicycle tires sink into it. This causes increased resistance and makes steering very difficult. It is nearly impossible to use for city and racing bikes but may be usable for fatbikes and motorbikes and is firm enough to cause no usability problems for 2-track vehicles with broad tires.
surface=sand is then also sand that is however usually humid (making it firmer) so that it is almost always usable for fatbikes and motorbikes, and usable with difficulty for city bikes. Likewise surface=loose_gravel is similarly difficult to use for bikes with narrow tires (city bike and racing bikes), but its firmness is not affected by its humidity (it doesn’t become firmer when wet) and it is firm enough for 2-track vehicles.