Oracc uses the Plane 15 PUA from F0000-FFFFD as a space to create signs pending possible encoding, and to maintain variant forms of signs that do not merit separate encoding. All management of the Oracc PUA is consolidated in the OSL project.
The region from F0000-F0FFF is used for core Oracc additions; the region from F1000 and up may be used for font-specific additions.
Adding characters to the PUA is only one of several possible strategies for managing glyph variation of encoded characters or sequences. Individual glyphs can be assigned SALT or CVNN codes in fonts and ligatures can be defined for sequences without the need for additional PUA characters (unless the sequence contains one or more unencoded characters). These approaches are described, with examples, on the XXX and YYY pages.
Characters are added to the PUA but are never removed. If a PUA character is subsequently encoded the OSL is updated to reflect the encoded character but the version in the PUA is left as it is.
A running account of the PUA usage is kept in oracc-pua.tab [https://raw.githubusercontent.com/oracc/osl/refs/heads/master/00etc/oracc-pua.tab].
The data format for this table is:
OID SIGN-NAME PUA-CODE SCRIPT ORACC-PUA-BLOCK
An OID must be assigned in Oracc's OID table for any character that is being added to the Oracc PUA.
PUA-CODE is the uppercase hex codepoint in Plane 15.
SCRIPT is one of the script codes Xsux, Pcun, Pelm.
ORACC-PUA-BLOCK is an indicator of groups of characters added to the Oracc PUA; by convention these are numbered 9.x.
This block was created in Sept/Oct 2024 for number signs and variants that were not encoded at that point.
This block was created in Oct 2024 for non-numerical signs and variants that were not encoded at that point.
In some cases the use of characters in the PUA could subvert data integrity--the selection of an alternative stacking pattern for a number would not carry with it the semantics of the encoded stacking pattern. It is likely that the Oracc PUA will address this by using a mechanism such as SALT, Stylistic Sets (SS00), Character Variants (CVNN), and Ideographic Variation Selectors (IVS) to create font ligatures that enable the correct base character, with its appropriate semantics, to be morphed into the character in the PUA via the combination of BASE+IVS. This requires further investigation/implementation/documentation.