Put the three examples through a default Intl.Segmenter, which means grapheme granularity.
const seg = new Intl.Segmenter();
for (const s of ["A", "e\u0301", "🇰🇷"]) {
console.log(s.length, [...seg.segment(s)].length);
}
It prints 1 1, 2 1 and 4 1, so counting segments matches the helper text that says "one character". A family emoji glued together with zero-width joiners is one segment too. The field counts segments now and the test lists all four as passing.
Then I saved one and the policy check on the server refused three of the four. That rule is Rego, count(input.label) > 1, and count on a string counts code points. There e plus U+0301 is two, the flag is two, the family is several. So the browser and the policy disagree about what one character is, and the error people see comes from the side I hadn't touched. Next is getting both sides onto one rule, and I'm not sure Rego has a grapheme count at all.