Trying to keep track of everything based on array indexes is a very bad idea. The amount of bookkeeping to swap between device definitions in different message versions causes a ton of bugs whenever we try to upgrade anything. We also don't really have a good way to tell when differences pop up between user config files and the main config (i.e. we add/remove features). We should be able to assign UUIDs in the config file and compare on those for lookup instead of constantly trying to keep random array indexes aligned.
Trying to keep track of everything based on array indexes is a very bad idea. The amount of bookkeeping to swap between device definitions in different message versions causes a ton of bugs whenever we try to upgrade anything. We also don't really have a good way to tell when differences pop up between user config files and the main config (i.e. we add/remove features). We should be able to assign UUIDs in the config file and compare on those for lookup instead of constantly trying to keep random array indexes aligned.