% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/make_parms_main.R
\name{make_parms_main}
\alias{make_parms_main}
\title{Internal Router for Parameter Dataframe Construction}
\usage{
make_parms_main(
  m.prec.shape = NULL,
  m.prec.rate = NULL,
  y.prec.shape = NULL,
  y.prec.rate = NULL,
  a.pip.hyperalpha = NULL,
  a.pip.hyperbeta = NULL,
  b.pip.hyperalpha = NULL,
  b.pip.hyperbeta = NULL,
  direct.coef.mean = NULL,
  direct.coef.precision = NULL,
  my_prior = NULL,
  advanced = NULL
)
}
\arguments{
\item{m.prec.shape, m.prec.rate, y.prec.shape, y.prec.rate, a.pip.hyperalpha, a.pip.hyperbeta, b.pip.hyperalpha, b.pip.hyperbeta, direct.coef.mean, direct.coef.precision}{Numeric. Individual prior parameters (Method 1).}

\item{my_prior}{A data frame or list provided by the user (Method 2). Lists are automatically coerced to data frames.}

\item{advanced}{Controls routing override behavior. Acceptable values:
\code{NULL} (default standard routing), \code{"interactive"} (CLI wizard),
\code{"myprior"} (use \code{my_prior} directly), or \code{FALSE} (force
system defaults).}
}
\value{
A validated \code{data.frame} of parameters (priors, distribution,
arguments) ready for model use.
}
\description{
This function is the central hub for resolving prior specifications. It
determines which method of parameter construction to use based on user
input, enforcing a strict hierarchy to handle overlapping arguments.
}
\details{
The function evaluates inputs in the following **Priority Order**:
\enumerate{
  \item \strong{Skip to Named Arguments (Trigger: \code{advanced = FALSE})}
    \itemize{
      \item Bypasses \code{my_prior} and the wizard entirely.
      \item If named arguments are provided, calls \code{make_parms_from_argument}.
      \item If no named arguments are provided, falls back to system defaults.
      \item \emph{Note:} \code{my_prior} is ignored with a message.
    }
  \item \strong{Interactive Wizard (Trigger: \code{advanced = "interactive"})}
    \itemize{
      \item Calls \code{\link{run_parms_wizard}}.
      \item If the user completes the wizard, the result is passed to
            \code{make_parms_from_df}.
      \item If the user cancels, it falls back to system defaults.
      \item \emph{Note:} All other arguments are ignored with a message.
    }
  \item \strong{Use my_prior Directly (Trigger: \code{advanced = "myprior"})}
    \itemize{
      \item Requires \code{my_prior} to be non-NULL; errors otherwise.
      \item Passes \code{my_prior} directly to \code{make_parms_from_df}.
      \item \emph{Note:} Named arguments are ignored with a message.
    }
  \item \strong{Standard Routing (Trigger: \code{advanced = NULL})}
    \itemize{
      \item \strong{User Dataframe:} if \code{my_prior} is not NULL, validates
            and passes it to \code{make_parms_from_df}. Named arguments are
            ignored with a message.
      \item \strong{Named Arguments:} if any Method 1 argument is not NULL, compiles
            them and calls \code{make_parms_from_argument}.
      \item \strong{System Defaults:} silent fallback if nothing else is provided.
    }
}
}
\keyword{internal}
