[Pitch] New command for package creation, and package templates

It might be worth exploring the idea of leveraging spm itself for this. For example templates could use commands suggested in the package update pitch I mentioned earlier and expand upon that. Though expanding it should probably be it's own pitch.

Templates could be constructed by transforming a package using a sequence of spm commands from a manifest. The approach would be similar to the JSON manifest suggested in the proposal, but the manifest contents would map in some way to spm command line arguments. Then those commands could also be used in custom scripts or automation if exposed for command line. The result could be two powerful feature sets with not too much additional cost or maintenance.

Templates could also expand easily with new command line arguments in the future. The complexity would depend on the chosen style for the command list manifest. I'd personally like something along the lines of a new top level variable in Package.swift, let template = Template(), or a Template.swift that can only exist without a Package.swift. That would be a familiar approach for users as @ryansobol mentioned.

This could theoretically result in templates that make templates that make packages. But I'm not entirely sure if that's useful or not; but it sounds powerful and interesting.