The existing string format specification is used by numbers: __format__() methods of int, float, complex, and decimal.Decimal.
I propose to have a different format spec only used by type.__format__(). Are there reasons to use the same format spec for all stdlib types?
There are other existing stdlib types which use a different format spec, such as datetime.datetime:
>>> import datetime; d=datetime.datetime.now(); f"{d:at %Hh%M}"
'at 22h56'
Other examples:
ipaddress.IPv4Address:b,X,xandnformatsfractions.Fraction: use the same format spec than intenum.Enum: similar toformat(str(value), format_spec)