- "random" is not an accurate description
- I've noticed long (sha256 hashes in hex) being rejected by some relays. So there seems a need to specify a max length.
- "non empty", cause an empty string could be interpreted as `null`
To be decided:
- Max length number
- Are `subscription_id`s case sensitive?
- Will `subscription_id`s be white space trimmed?
Most implementation ignore this line. Enforcing that usernames not include spaces, special chracters, unicode, emojis, etc has no benefit and is unnecessarily user hostile.
It appears the regex given in NIP1 for setting the username in the setmetadata event was slightly off. I think the fix here is what was intended. Though I think what was meant here was pretty obvious, to make it easier on future developers, I updated the regex to something that should work with just copying and pasting.