Fitting two Zero-Inflated Gamma2 models with brms

I am currently fitting two Zero-Inflated Gamma2 models (using the mean and standard deviation) to the data, using the brm function from the brms package to estimate the distribution parameters and their uncertainty.
The first curve y1 should fit the low values of y (the first bin of the histogram), and the second curve y2 should fit the higher values (the other bins), like this:

I am getting an error message, but I am confident that my code is correct:

Error in `.validate_prior()`:
! The following priors do not correspond to any model parameter: 
<lower=0> b_mu ~ normal(0.029, 0.01)
<lower=0> b_sd ~ normal(0.02, 0.01)
<lower=0> b_zeroprob ~ normal(0.01, 0.01)
Function 'default_prior' might be helpful to you.
Run `rlang::last_trace()` to see where the error occurred.

Any help would be greatly appreciated.

Here is the data:

[Data](https://www.dropbox.com/scl/fi/5jwj2ntq7i8f4tc2i2ihd/test.csv?rlkey=1t64wkj5hcqkgg6241ncdphxz&st=5mknqf71&dl=0)

data <- read.csv("C:/Users/Downloads/test.csv")
x <- seq(0, 1, length.out = 1000)
y1 <- RTMBdist::dzigamma2(x, 0.029, 0.02, 0.01)
y2 <- RTMBdist::dzigamma2(x, 0.15, 0.1, 0.3)
hist(data$y, breaks = 30, freq = FALSE, ylim = c(0, 30))
lines(x, y1, col = "blue", lwd = 2)
lines(x, y2, col = "red", lwd = 2)

Here is the code

zigamma2_family <- brms::custom_family(
  name = "zigamma2",
  dpars = c("mu", "sd", "zeroprob"),
  links = c("log", "log", "logit"),
  lb = c(0, 0, 0),
  ub = c(NA, NA, 1),
  type = "real"
)

stan_funs <- "
real zigamma2_lpdf(real y, real mu, real sd, real zeroprob) {
  if (y == 0) {
    return bernoulli_lpmf(1 | zeroprob);
  } else {
    return bernoulli_lpmf(0 | zeroprob) + gamma_lpdf(y | mu*mu/sd, mu/sd);
  }
}
"
stanvars <- brms::stanvar(scode = stan_funs, block = "functions")

priors_1 <- c(brms::prior(normal(0.029, 0.01), nlpar = "mu", lb = 0),
            brms::prior(normal(0.02, 0.01), nlpar = "sd", lb = 0),
            brms::prior(normal(0.01, 0.01), nlpar = "zeroprob", lb = 0))

priors_2 <- c(brms::prior(normal(0.15, 0.01), nlpar = "mu", lb = 0),
              brms::prior(normal(0.1, 0.01), nlpar = "sd", lb = 0),
              brms::prior(normal(0.3, 0.01), nlpar = "zeroprob", lb = 0))

fit_zigamma2_1 <- brms::brm(formula = brms::bf(y ~ 1), data = data, prior = priors_1, family = zigamma2_family, stanvars = stanvars, chains = 4, cores = 4, iter = 4000, control = list(adapt_delta = 0.95, max_treedepth = 15))
fit_zigamma2_2 <- brms::brm(formula = brms::bf(y ~ 1), data = data, prior = priors_2, family = zigamma2_family, stanvars = stanvars, chains = 4, cores = 4, iter = 4000, control = list(adapt_delta = 0.95, max_treedepth = 15))

I haven’t attempted to run your code, but on a quick glance it looks like you’ve attempted to specify the nlpar argument to brms::prior without fitting a nonlinear model. Perhaps you meant dpar.