Thanks Trevor;
I guess I didn't state it explicitly, but I am trying to do this headless.
I want to do it programatically so I can incorporate it into my release management process with a zip file containing all the page types that exist at any given point in my integration environment.
I then want to upload/import it into the next environment along the deployment path - ALSO programatically.
I've made some good progress using the CMS.CMSImportExport library and the ExportProvider.ExportObjectsData()