Problem
same_shape() compares the abstract written-unit sequences produced by this project's UTN #57 / mongfontbuilder-derived shaping model. It does not invoke HarfBuzz with a specific font or compare rendered glyph IDs or outlines.
The current name and wording around "visual identity" can be interpreted as a guarantee that two strings render identically with every Mongolian font and platform. Real-world fonts may differ in FVS support, OpenType rules, or implementation details.
Proposed changes
- Clarify in the README and API docstring that
same_shape() means equality under mongol-norm's abstract shaping model.
- Distinguish Mongolian-specific shaping equivalence from font-specific rendering equivalence.
- Document that applications requiring a particular font's final rendering should validate with HarfBuzz and that font.
- Consider adding a short "Model and limitations" section with an example of the distinction.
Acceptance criteria
- Public documentation no longer implies universal font-independent visual equivalence.
- The reference model (UTN #57 v4 plus mongfontbuilder-derived data/rules) is named explicitly.
- The behavior and API remain backward compatible.
Problem
same_shape()compares the abstract written-unit sequences produced by this project's UTN #57 / mongfontbuilder-derived shaping model. It does not invoke HarfBuzz with a specific font or compare rendered glyph IDs or outlines.The current name and wording around "visual identity" can be interpreted as a guarantee that two strings render identically with every Mongolian font and platform. Real-world fonts may differ in FVS support, OpenType rules, or implementation details.
Proposed changes
same_shape()means equality under mongol-norm's abstract shaping model.Acceptance criteria