Generating parameter values for a new level in multivariate model with group correlations

Suppose I have the following model:

bf(
    y1 ~ a / (1 + exp(b*x)),
    a ~ 1 + (1|p|z),
    b ~ 1 + (1|p|z),
    nl = T
  ) +
    bf(
      y2 ~ a / (1 + exp(b*x)),
      a ~ 1 + (1|p|z),
      b ~ 1 + (1|p|z),
      nl = T
    ) + set_rescor(F)

I can use posterior_epred to generate estimates for a new level of z across values of x, and which would respect the estimated correlations:

posterior_epred(
  model,
  newdata = newdata,
  allow_new_levels = TRUE,
  sample_new_levels = "gaussian",
  ndraws = 1
)

I am guessing that, under the hood, posterior_epred is generating values for a1, a2, b1, b2 for each draw before generating response values based on them. I don’t want response values; I want a1, a2, b1, b2. Is there a way to get those, without putting them together myself piece by piece?

Ok, my bad, I did not RTFM; there is an nlpar argument in there, which weirdly accepts only a single variable name. So then it’s a matter of using a seed and draw_ids to make sure you get matching pairs:

epred_draws(m,
                      nlpar = "a",
                      newdata = newdata,
                      allow_new_levels = TRUE,
                      sample_new_levels = "gaussian",
                      seed = 42,
                      draw_ids = 1:n_draws)
epred_draws(m,
                      nlpar = "b",
                      newdata = newdata,
                      allow_new_levels = TRUE,
                      sample_new_levels = "gaussian",
                      seed = 42,
                      draw_ids = 1:n_draws)