The Subasset CIP about to be implemented states that:
[code]Subasset names must meet following requirements :
1 to 250 characters in length (ie. PIZZA.X or PIZZA.REALLY-long-VALID-Subasset-NAME)
Contain only characters : a-zA-Z0-9.-_@!
Cannot start or end with a period (.)
Cannot contain multiple consecutive periods (…)[/code]
Let’s go through allowed characters step by step,
It’s obvious that A-Z
are allowed. These are the only ones allowed in regular assets.
Numbers will come in handy too, e.g. PIZZA.COUPON2017
.
The only potential issue with numbers is confusion between 0 / O and 1 / I.
a-z
will make really long names more easily readable, e.g. PIZZA.Discount.Coupon.5off.Lunch.Weekdays. It may add a little bit extra confusion between lowercase L, uppercase I and number 1 (l / I / 1). It may also add confusion if an asset owner decides to make PIZZA.Coupon and PIZZA.COUPON. We should also take into account that a wallet designer may make a bad choice to display all assets uppercase, e.g. if it becomes the norm only to use uppercase. Finally, allowing lowercase may make subasset names a little bit less recognizable.
Special characters -_@!
in addition to the necessasry .
will make it more difficult to memorize asset names and may also add confusion. Was it PIZZA.DISCOUNT-COUPON or PIZZA.DISCOUNT.COUPON?
Special characters (except .
) can be used consecutively, so a valid name can be PIZZA.------- or PIZZA.PEPPERONI!!CHEESE.
My advice is to simplify the rules:
[code]Subasset names must meet following requirements :
1 to 40 characters in length (ie. PIZZA.X or PIZZA.PEPPERONI.COUPON.5OFF.2017FEBRUARY)
Contain only characters : A-Z0-9.
Cannot start or end with a period (.)
Cannot contain multiple consecutive periods (…)[/code]
Regarding max length, see this thread.