Several single-species GLMMs -> A multi-species GLMM (random effects syntax?) I'm looking to describe annual relative abundance for several species over several years by analyzing point count data. I'm using a Poisson GLMM in glmmTMB for each species, it looks like this:
m[[i]] <- glmmTMB(count ~ year_numeric + (1|year_factor) + (1|site), 
                  family = "poisson", data = data[[i]])

As an aside: This has a linear trend for year, plus year random effects, which is conceptually similar to the Sauer & Link models from the Breeding Bird Survey (though they use a Poisson log-linear regression, and it's Bayesian).
Instead of having a separate GLMM for each species, though, I'd like to have one single GLMM for all species (a multi-species model). I know I could do part of this by using year_numeric*species, but: what would be the syntax for the random effects?
Thanks!

As Diogo suggested, you can make use of Joint Species Distribution Models (JSDM). JSDMs are multivariate mixed-effects models that account for correlation between the responses (including, but not limited to, species). To do so they include a random effect per site and species, that is structured by a covariance matrix of correlations between the responses (sometimes referred to or interpreted as a "matrix of species associations").
However, JSDMs suffer from the fact that the the number of parameters in the covariance grows quadratically in the number of responses, so that they are infeasible to fit using standard  mixed-effects formulation for a large number of responses.
A good review on this matter is Warton et al. (2015), but a more comprehensive resource is Ovaskainen and Abrego (2020).
Using a reduced-rank structure for the covariance matrix the number of parameters can be kept in check, so that this type of model can be fitted with the glmmTMB R-package using the reduced-rank covariance structure, or with R-packages such as HMSC, Boral, or gllvm. Alternatively, sjSDM takes an elastic net approach to fitting JSDMs. The ecoCopula R-package uses a Gaussian copula approach to fitting multispecies models, which mostly makes it incredibly fast, but also allows it to be used to determine species associations, and for unconstrained ordination.
The first four approaches are Generalized Linear Latent Variable Models (GLLVMs) that can also be used for ordination purposes (the first three for model-based unconstrained ordination, while the gllvm R-package also supports ordination with predictors and additional random-effects), whereas sjSDM is less suited for that type of application. In GLLVMs the rank of the covariance matrix needs to be a-priori set (i.e. the number of latent variables), in sjSDM that is not needed. However, HMSC including a nifty trick known as "the infinite factor model", which can automatically select the rank for you.
Each software implementation and approach thus has it pros and cons, but arguably glmmTMB is easiest to implement. An example for a multispecies model with the reduced-rank structure in glmmTMB is available in their vignette.
Disclaimer: I am one of the co-authors/developers of the gllvm R-package.
