Update the metadata tables so there's one convention, applied everywhere: definition is always a URI to an external authority; description is always our own text; type/code are unprefixed.
ProcessingLevel: add name, rename explanation to description (required), definition becomes optional URI (reads code=0 / name=Raw / description=..., like every other table).
ObservedProperty: observed_property_type to type, definition becomes optional URI. Unit: unit_type to type, definition optional URI.
Table names stay ObservedProperty and Unit - we name internals for clarity and map to standards at the interface (unit already maps to unitOfMeasurement for SensorThings; a USGS-style API would be its own interface). Chemistry speciation is encoded in the property name ("Nitrate as N" vs "Nitrate as NO3").
Update the metadata tables so there's one convention, applied everywhere: definition is always a URI to an external authority; description is always our own text; type/code are unprefixed.
ProcessingLevel: add name, rename explanation to description (required), definition becomes optional URI (reads code=0 / name=Raw / description=..., like every other table).
ObservedProperty: observed_property_type to type, definition becomes optional URI. Unit: unit_type to type, definition optional URI.
Table names stay ObservedProperty and Unit - we name internals for clarity and map to standards at the interface (unit already maps to unitOfMeasurement for SensorThings; a USGS-style API would be its own interface). Chemistry speciation is encoded in the property name ("Nitrate as N" vs "Nitrate as NO3").