Explicitly handle all enum values.
Expose GetCraftName().

This is so we can expose the names in the options.
Clean up unused vars.
Clean up member initialization order.
Handle all enum values.
Crank up warning level in Linux build.