The additional mapping rule of a profile specifies whether additional
mappings are performed on the characters of a string, such as:
Mapping of delimiter characters (such as '@', ':', '/', '+',
and '-')
Mapping of special characters (e.g., non-ASCII space characters to
ASCII space or control characters to nothing).
The case mapping rule of a profile specifies whether case mapping
(instead of case preservation) is performed on a string and how the
mapping is applied (e.g., mapping uppercase and titlecase code points
to their lowercase equivalents).
The directionality rule of a profile specifies how to treat strings
containing what are often called "right-to-left" (RTL) characters
(see Unicode Standard Annex #9 [UAX9]).
Enforcement entails applying all of the rules specified for a
particular string class or profile thereof to an individual
string, for the purpose of determining if the string can be used
in a given protocol slot.
The "OpaqueString Profile" specified in "Preparation, Enforcement, and Comparison of Internationalized Strings
Representing Usernames and Passwords", RFC 8265.
Applying the rules for any given PRECIS profile is not necessarily an idempotent
procedure (e.g., under certain circumstances, such as when Unicode
Normalization Form KC is used, performing Unicode normalization after
case mapping can still yield uppercase characters for certain code
points).
The "UsernameCaseMapped Profile" specified in "Preparation, Enforcement, and Comparison of Internationalized Strings
Representing Usernames and Passwords", RFC 8265.
The "UsernameCasePreserved Profile" specified in "Preparation, Enforcement, and Comparison of Internationalized Strings
Representing Usernames and Passwords", RFC 8265.