Actually, a lot of the Harmony database was originally provided by end users- this is painfully clear when adding'replacing commands and seeing names for the commands that were created by the people who learned the commands. They should have just used the name for the command on the buttons, but I guess that was too easy. They also didn't learn the whole command string and then, Harmony had to find a way to fix it.
URC has always said they have the most complete data library, but that's not true. Even though they supply OEM remotes for many manufacturers, their database has really sucked, at times. Also and unfortunately, some of their tech support people have been far less than helpful, so they have changed to a remotely assisted tech help system and that worked well- I was trying to solve the programming problems in one remote and fortunately, the one who answered the call was the person who created several of their dealer training videos, so he really knew what he was dealing with. He told me what I needed to do in real time and when it didn't work, recommended sending the program in an e-mail, so he could inspect it and see if it had any inherent errors. Conversely, I was connected to someone in another call and when I asked if I should send the file for inspection, he said "I don't know what good that would do". I went to a URC training session a couple of weeks later and when I told the trainer what I was told, I thought his head was going to explode because sending the file is EXACTLY what should have been done, but that guy wasn't willing to do it.
Learning all of the codes needed is absolutely not the best way to create macros. I have see this in many URC remotes and when changes are needed later, it creates a need to wipe the old macros, rather than delete the unneeded commands and select the new device's commands. Fortunately, Harmony's support people are able to help and in many cases, they have fixed commands while we were still on the call.
Use Harmony's support people- they're very good.