Open
Description
Following up to my #977 audit:
The value of the operand's currency MUST be either a string containing a well-formed Unicode Currency Identifier or an implementation-defined currency type. Although currency codes are expected to be uppercase, implementations SHOULD treat them in a case-insensitive manner.
Why is this SHOULD and not MUST? Pick a behavior but don't let this be implementation-defined.
The value of the operand's unit SHOULD be either a string containing a valid Unit Identifier or an implementation-defined unit type.
Huh? So the operand is a TR35 Unit ID or an implementation-defined unit type, but hey, it's not necessarily either one due to the SHOULD?
I suggest:
- The string MUST be a TR35 unit identifier
- An implementation MAY allow other syntaxes (although I prefer to just be strict and require TR35 unit IDs)