diff --git a/internal/domain/collectible_username.go b/internal/domain/collectible_username.go index 84fc157e..85a06a59 100644 --- a/internal/domain/collectible_username.go +++ b/internal/domain/collectible_username.go @@ -15,18 +15,12 @@ import ( // the same global registry, so occupancy checks and username resolution have a // single source of truth. // -// The editable slot keeps the service-level 5..32 length rule for -// self-service (account.updateUsername / channels.updateUsername); the admin -// path can go as low as 3 (see users.minUsernameLenAdmin / -// channels.minChannelUsernameLenAdmin). Collectible names are minted by the -// operator and may be shorter: short names are precisely what a collectible -// market distributes. Every kind of username still has to be syntactically -// resolvable by clients (contacts.resolveUsername, the public web landing -// page), so this floor doubles as the resolvability floor for the whole -// registry -- it must stay <= the lowest floor any write path can produce, -// currently 3. +// The editable slot keeps the service-level 5..32 length rule. Collectible names +// are minted by the operator and may be shorter: short names are precisely what +// a collectible market distributes. They still have to be syntactically +// resolvable by clients, so the character rules are identical. const ( - MinCollectibleUsernameLength = 3 + MinCollectibleUsernameLength = 4 MaxCollectibleUsernameLength = 32 // MaxPeerCollectibleUsernames bounds the collectible rows a single peer can // hold. The TL usernames vector is rendered in full by clients, so the bound