Contact and label representations
Keep address lines, locale labels, names and contact choices structured.
Split an address block while preserving blank lines
Keep line structure and the raw block together.
Map locale rows without losing extra languages
Require two declared labels and preserve unrecognised locales separately.
Build display names from declared person or company parts
Retain name components instead of guessing them from one string.
Separate subscriber digits from a phone extension
Remove declared spacing while preserving extension zeros and the raw subscriber.
Extract one preferred contact while retaining alternatives
Reject conflicting preferences and avoid inventing one when absent.