I really appreciate that you guys are thinking about this, and giving feedback on the module/layout I worked on. It is my opinion that we always need to be able to provide sensible defaults that work right out of the box. Technically, apacite does not need to be loaded to use apa6. You can actually do whatever you want for citations. However, there are really only 3 sensible ways to get accurate apa citations, and I think that we need to set one of them as the default for the apa6 layout (but allow it to be changed). These options are: 1) use apacite with the apaciteclassic option. 2) use apacite with natbib. 3) use biblatex. Of these three options, the first is not really workable in LyX, because classic apacite defines a host of citation commands (\citeA, \citeauthor, \citeauthorNP, \citeNP, etc.,) that cannot be used without ERT (and only a simple citation can be made without these commands). Further, these commands are fragile and must be protected when used in other environements. People who want to type their citations like this can use raw LaTeX. 3) can be made to work but is not great because of the number of hacks that are still necessary to get biblatex to work in LyX. 2) seems like it is the best option at the moment, mostly because it looks and works reasonably well in LyX and requires the fewest hacks to get it working.
So, how do we get natbib working with apacite? This is the reason I initially wrote the natbibapa module. There currently seems to be no other way to get natbib working together with the apacite package. In particular, when we try to load natbib with different options, we get an option clash (like when using \usepackage[natbibapa]{apacite}, which loads the natbib package with the options longnamesfirst,sort, i.e., \usepackage[longnamesfirst,sort]{natbib}). This is sort of a pain. Because LyX loads natbib when natbib is selected for the bibliography (under documtent->settings, it becomes impossible to pass different options to natbib. So, if we try to load natbib elsewhere, such as in the preamble or in the document options as with apa6, we are left with an option clash. I think you guys understand this well. As I mentioned, apacite is not required by the apa6 document class (it was for the apa document class). It is only required if the apacite option or natbibapa option is passed to the document class. So, I think this means apacite should be removed from the #\DeclareLaTeXClass[]{} part. This was my error. However, it is still not clear to me how to properly allow for the natbibapa or apacite options to be supported. Julien has mentioned the Requires parameter, but it is not clear to me from reading the documentation in the customization manual what Requires does. What is the difference between using Requires and including a package #\DeclareLaTeXClass[]{}? Whatever the solution, it would be ideal if it were possible to pass natbib as either a package option, or to include natbib and/or apacite with customizable options, such as in the preamble. One solution to this would be to provide a checkbox where natbib is selected where we can suppress loading natbib. Then, the options could be loaded elsewhere (preamble, or document options). We could also provide a textbox where addtitional natbib options could be passed, negating the need to load it elsewhere (but it still might be nice to suppress it, such as when biblatex is used). Then again, if we end up supporting biblatex as an option, this could happen automatically. Please let me know if there is anything I can do to help to make this happen. As a side-note, I have been working with the apa6 layout on my own, to use the new argument structure that was added in LyX 2.1 (For this, I am using the ppa:lyx-dev/daily) for authors and affiliations. How should I be sharing these modifications? I have used subversion plenty but know nothing of git. I know that we will need to distinguish between 2.0 and 2.1 layouts.