Specify each variance/covariance matrix in a multivariate model in brms

I’m curious if I can specify my multivariate model in brms.

The model:

Sur1 Sur2 Sur3 ~ fixedA + randomA + animal + error

where Sur1, Sur2, and Sur3 are survival of animals at different site different sites, labeled 1, 2, and 3, fixedA is a fixed factor, randomA is a random factor, and animal is a random factor associated with a pedigree. (I would fit the animal effect with a relationship matrix derived from a pedigree, as explained here: https://github.com/JonBrommer/Multivariate-Mixed-Models-in-R/wiki/brms-examples).

My main concern is whether or not I can specify the variance/covariance matrix for each random effect. Given the data (Sur1, Sur2, and Sur3) are from different sites, covariances should only be estimated for the animal factor. For example, in another software, ASReml, I can specify that the variance/covariance matrix for the residual and for randomA are diagonal and that there is zero covariance across traits for these effects. I also specify an unstructured variance/covariance matrix for the animal effect. Is it possible to specify these matrices in brms?

I am not sure I follow you 100%, but in brms, (1 | site) actually models correlations between the individual intercepts per site, and you can opt for no correlation with (1 || site). So if I understand you correctly, you should be able to acheive your goal with moving the data to long format and have something similar to

sur ~ fixedA + (random_factor || group + site) + animal + (animal_factor | site)

If you need even more control, you can specify the model as a multivariate model (Sur1, Sur2, Sur3 would have separate formulas), where you can enforce that some correlations are shared between the response and you can control whether residual covariance is modelled (see https://cran.r-project.org/web/packages/brms/vignettes/brms_multivariate.html)

Does that make sense?