Why is ["storage-tank"] included twice in the api call? Is the first call the type THEN the entity?
Yes. The type distinction is necessary to avoid collisions between entities and items. I'll edit the description to make that more clear.
Why do you need to add custom entities? Don't all quality named entities already exist? Everything I look at using the in-game help shows quality leveling on, at the very least, hitpoints. So that implies that quality entity exists or was generated at the very least. Why double this up? Can you not edit the already existing quality-named entities?
They do not exist, actually! Quality is extremely hardcoded, and there is very little way to actually interact with it with mods. You can edit a few things like mining drill resource drain, science pack drain, beacon power draw, but that's it really. If you want to add quality stats to an item or entity, or even adjust the quality stats of an item or entity, you have to add a new prototype for each quality level. There's no way around this, unfortunately.
In the early days of the expansion release I was looking into how to add Quality features to my Nuclear Bots mod and everything I saw told me it wasn't possible to change what the base game wouldn't allow me to with quality. Super frustrating. Was there an API change that allows this?
There was no change to the API, which is why existing Quality mods are so janky and buggy, and why this mod also has to do such weird stuff in order to make everything work.
Oh, yeah, and why create the 'common' entity type when that's the base-game quality?
It doesn't, that's a typo in the mod description. I'll fix it.