the ranges are defined, 10k is replaceable, 20k is ephemeral, 30k is parameterized replaceable - there are a few exceptions to that based on numbers that were defined before that range scheme was defined (such as kind 0 being replaceable) - other than that, people just pluck numbers out of teh air and they stick if they get used and baked into the nips repo