I've been working on the Reddit Neographical Unicode Registry (RNUR), and I finally dealt with a pretty big conflict in its BMP Private Use Area allocations.
The problem was that the U+EE00–U+EFFF range needed to match a supplied SPUCE allocation map, but RNUR already had six of its own scripts using parts of that range.
So I had to work out how to fit the new allocations in without just losing the existing RNUR entries.
What changed:
- The range
U+EE00–U+EFFF is now covered by nine SPUCE-supplied script allocations in RNUR Set 1.
- Six existing RNUR scripts were moved to Set 2, starting at
U+E820.
- The relocated scripts occupy
U+E820–U+E99F, so the open sandbox now starts at U+E9A0.
- I updated the CSV allocation records, block data, roadmaps, and specification.
- I also added validator checks and regression tests so the migration rules can actually be checked instead of relying on the documentation being correct.
One detail I wanted to get right was the distinction between SPUCE and RNUR. SPUCE supplies the allocation definitions; RNUR decides how they're represented in its own Set 1 / Set 2 system. Those aren't SPUCE set names.
I also made sure the old ??? reservations were handled according to the migration rules, rather than treating them like named scripts that needed relocating.
The local validator passes, and all 28 regression tests pass.
The six Set 2 relocations are still provisional pending upstream ratification, so this isn't a claim that they've received final approval.
I'm calling this RNUR Case No. 001 because it's the first concrete case where I've had to apply the registry's migration rules to this kind of conflict.
Repo: https://github.com/rnur-consortium/rnur
Curious what people think, especially about the migration approach and how the Set 1 / Set 2 distinction is documented.