Create new content type on hook_install Can someone show me a proper example of how to create a new content type in a module's hook_install method?

I'd also like to know if/what I should do during hook_uninstall to clean up my mess; I read there is some debate about simply removing the content. 

I haven't been able to find an example of the proper method of accomplishing this task, any help would be appreciated!
One of the best ways to keep this information in code is to use features. Feaures can put into code:


Content types
CCK fields
Permissions
Roles


The list goes on.

One nice feature about features is the drush integration

drush features will give you a list of all features on the site, and their status
drush features revert all will revert all features back to what is in code (really handy for running after deployments)

Help this helps