How to deal with spatio-temporal autocorrelation?

I have a field study in which the abundance of insects is measured in 4 nests (NestID) at 32 Sites (Site) 5 times (Round). Each round was one month apart, but I am missing data from Round #4, so virtually I have only 4 rounds with uneven spacing between them. The average abundance across rounds is hump-shaped:

My interest is the environmental factors (x) that might affect abundance.
I am unsure how to proceed. I want to account for the autocorrelation at the Site level with(1|Site), and also for the temporal aspect. On forums proposed solution is usually: y ~ Round + (1 + Round|NestID), and since my NestID is nested in Site I thought of doing :

m1 <- bf(y ~ x + Round + (Round|Site/NestID))


m2 <- bf(y ~ x + Round + (Round|NestID) + (1|Site) + (1|NestID:Site))


m3 <- bf(y ~ x + s(Round, k = 4) +  (1|Site/NestID))

but I am not sure if this is what I want exactly and if including both NestID and Round is not redundant.

I actually wondered if, given I am not interested in temporal effects, y ~ x + (1|Site/NestID) would be the appropriate model, since it averages over different nests, so no need to add the Round to the model?
Alternatively y ~ x + Round + (Round|Site) (or equivalent with a spline) if I am interested in the temporal effect on the abundance.

I am also not sure if I should treat Round as numerical or categorical predictor.

Any advice would be appreciated!

Do the factors x vary only across sites, or also across nests and/or rounds within sites?

One varies across nests and rounds and one varies across sites and does not change across rounds. Both are continuos.

@jsocolar, would you suggest using the NestID in models with nest-level predictors and Site in models with site level-predictors?