Hey, thanks for posting this. I'm sure a lot of people will find this helpful. I know I did in years past, just wish I grabbed a copy.
As to keys in shipfiles you can use it, but you have to be careful. The key is tied to the roomvnum (if I remember right).
Example key structure (I hope been a while so going from memory)
Name access key~
Desc The access key to $SN$.~
Shortdesc The access key to $SN$.~
The room that would be using the key is:
Name A Small Cross Way~
Desc To the south, the entrance. The west, a loud noise and a good smell. To the north, another hallway. To the east, ah who cares about the east. Maybe you should go explore it.~
Flags indoors spacecraft nomob prototype~
NOTE: The above creates a key assigned to the object part of shipvnum.are where room4 is stored. So, if the ship took up vnums 1 - 30, vnum4 would have room data and obj data. An imm at that point would need to oinv <vnum> to create the key and give to a player.
But its a lot more trouble than its worth IMO.
The list of roomtypes Gage posted above starts at 1 and works its way to 22. So, keep that in mind, as far as I know you can't just define a room as 'entrance', it would have to have a numeric value of 2.
Roomtype of 22 (null room) is your standard corridor/captains bunk/whatever - no windows, no special abilites must be used for all rooms not listed above.
For all you shipbuilders out there I suggest you take a look at a 1 room ship, a 2 room ship and then something like the stock yt-1300 and see how it works.