In the course of modding, you will invariably come across terms like hullid, variantids, and file names and wonder which one does what, and which ones matter for the engine.
Ship ids and names:
These are the names of the files. In reference to the names of both .ship files and .variant files they mean absolutely nothing to my testing. You can name your .ship and .variant files whatever you want. This is entirely for your human eyes only, the fact that all of the original file names, like 'hound' match their hullids is either merely a coincidence, or because Alex is a robot and must write it as such that his silicon brain can put the terms into functions. The game will only care about what's inside of these files, IE. its contents. Specifically, the engine will care about the next term.
This is the name of the ship that the game reads, or in a sense, this is what the game engine will use to reference the ship file this is found in. As such, it is vitally important that whenever you want to reference the .ship file, for example in .variant files, sectorgen, or in any other case you need to make sure your spelling is correct to avoid any errors.
Do you know how those ships in the mission already have arms. Well that's because of the variantid telling the engine what to equip the ship with. The file name too doesn't matter, the game will only read the name next to ' "variantid": ' and mark the file as such. This is the name you need to use for missiondescription files. A special note: it is important to make the distinction that the variantids of fighter wings in missiondefinition ARE NOT the same as the variantid. See an example of the ones already in the game. they have a "_wing" under them.