v0.3.0
Adds identifier naming helpers, moving the readout identifier grammar into the library alongside the enumeration decoding.
split_camel()—VentPositionLeewardSidebecomesVent position leeward side, keeping acronyms such asCO2intact.readout_display_name()— turns an identifier into a friendly name, dropping the defaultMeasuredkind (and Ridder'sMeasueredtypo of it) and parenthesising the others.readout_subject()— the identifier without its-kindsuffix, lowercased.disambiguate_source_names()— resolves clashing source display names by appending the source type, then a number from the technical name.
No behaviour changes to existing API.