Just a quick comment - name, price, type, size are technically beyond scope.  I imagine that it's easier to work with some of these objects if you have dummy data to work with, or fields to talk about, which is fine - but be careful that you don't go down rabbit holes with these.  I can certainly see any of these potentially becoming part of the game, but maybe ships never have a price but are rather earned; maybe ships don't have a type but are only regarded by size; etc.