Hi Damian,
If they don't want to sue the Subjects taxonomy, then... are you suggesting this work would also involve adding a whole new Taxonomy for managing Theme-based controlled vocabulary terms (a bit similar to the Thematic Area taxonomy and facet used on the Repository browse page in multi-repository sites)?
If yes, then... this is definitely beyond the kind of guidance we can offer via the user forum, as this is not one but two major development undertakings, and will require an understanding of pretty much all parts of AtoM to implement.
I will provide some links to general development resources below - I would suggest that your developers spend some time reviewing these, as well as studying AtoM's existing code base. In particular, why not search for commits and/or pull requests from previous work that implement similar features and changes, so they can see what was involved?
Once they have a better sense of how AtoM's code is organized and how similar features have been implemented in the past, perhaps we can help with some more specific questions. In the meantime, some resources:
First, the documentation has a VERY high-level overview of AtoM, here:
We have some slide decks that offer a more developer-focused introduction:
If you want to undertake AtoM feature development, then you need to understand the Symfony 1.x framework. Some legacy resources from Symfony that are still relevant for AtoM:
AtoM uses Elasticsearch 5.6 at the moment so you might want to look at the ES 5.6 docs as well. The vast majority of AtoM's ES configuration is contained in the following two files:
You will find some additional resources on our wiki, such as:
Finally, I would also suggest looking in AtoM's commit history and trying to find commits and/or pull requests that add similar function, so you can study what was changed. For example, in release 2.4 we added a new Occupations access point to the Actors module (i.e. authority records), and that also included adding a new Occupations taxonomy to store the terms added:
AtoM has changed somewhat since 2.4 obviously, but this alone should give your developers a lot of initial guidance. One more that might be interesting to review:
I hope this helps!