One run of the analyzed input mapped back to the original.
Identity runs are retained (the spec's requirement) so a consumer needs no
second coordinate contract for un-normalized input. A run is coalesced only
while the mapping inside it is 1 byte : 1 UTF-16 unit; every non-ASCII code
point gets its own entry, because the mapping across a 4-byte/2-unit
character is not linear and a coalesced run could not be indexed into.
One run of the analyzed input mapped back to the original.
Identity runs are retained (the spec's requirement) so a consumer needs no second coordinate contract for un-normalized input. A run is coalesced only while the mapping inside it is 1 byte : 1 UTF-16 unit; every non-ASCII code point gets its own entry, because the mapping across a 4-byte/2-unit character is not linear and a coalesced run could not be indexed into.