% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/ild_msm_estimand.R
\name{ild_msm_estimand}
\alias{ild_msm_estimand}
\title{Define an MSM estimand specification}
\usage{
ild_msm_estimand(
  type = c("ate", "att"),
  regime = "static",
  treatment,
  time_var = ".ild_seq",
  contrast = NULL,
  target_time = "all",
  regime_value = 1,
  dynamic_rule = NULL
)
}
\arguments{
\item{type}{Estimand type. Supports \code{"ate"} and placeholder \code{"att"}.}

\item{regime}{Regime class. Supports \code{"static"} and scaffold \code{"dynamic"}.}

\item{treatment}{Binary treatment column name.}

\item{time_var}{Occasion index column (default \code{".ild_seq"}).}

\item{contrast}{Optional contrast definition. Character labels are accepted.
Lists may include \code{label}, \code{treated}, and \code{control}.}

\item{target_time}{Optional target occasion:
\code{"all"} (default), \code{"final"}, or numeric vector.}

\item{regime_value}{For \code{regime = "static"}, assignment target (default \code{1}).}

\item{dynamic_rule}{For \code{regime = "dynamic"}, a deterministic rule:
function taking \code{data} and returning binary assignment, or one of
\code{"always_treat"}, \code{"never_treat"}, \code{"as_observed"}.}
}
\value{
Object of class \code{ild_msm_estimand}.
}
\description{
Creates a lightweight estimand object used by [ild_msm_fit()].
v1.1 preserves backward compatibility with v1 static ATE calls while adding
explicit slots for regime specification, time targeting, and contrasts.
}
\examples{
e <- ild_msm_estimand(treatment = "trt")
e
}
