Looking at the streets and street_polygon layers, they are inconsistent on their use of field not available vs empty string.
for streets you have tracktype and service defaulting to no field and surface, bicycle, and horse defaulting to empty string. For street_polygons you have service and surface defaulting to empty string.
This is inconsistent and hard to understand. As a practical matter I don't think there's any need to send an empty string as a default value, because detecting the lack of any value is easy enough.
Looking at the streets and street_polygon layers, they are inconsistent on their use of field not available vs empty string.
for streets you have tracktype and service defaulting to no field and surface, bicycle, and horse defaulting to empty string. For street_polygons you have service and surface defaulting to empty string.
This is inconsistent and hard to understand. As a practical matter I don't think there's any need to send an empty string as a default value, because detecting the lack of any value is easy enough.