% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/help_compatibility_layer.R
\name{mfrmr_compatibility_layer}
\alias{mfrmr_compatibility_layer}
\title{mfrmr Compatibility Layer Map}
\description{
Guide to the legacy-compatible wrappers and text/file exports in \code{mfrmr}.
Use this page when you need continuity with older compatibility-oriented workflows,
fixed-width reports, or graph/score file style outputs.

This compatibility layer currently applies mainly to diagnostics-based
\code{RSM} / \code{PCM} workflows. First-release \code{GPCM} fits now also support
graph-only compatibility-style exports, while scorefile and
diagnostics-driven compatibility outputs remain limited to \code{RSM} / \code{PCM}.
Treat this layer as a presentation/contract surface, not as a claim of
FACETS or ConQuest numerical equivalence.

SPSS is treated differently from FACETS and ConQuest: \code{mfrmr} currently
supports table/data-frame/CSV handoff for SPSS-oriented reporting workflows,
but it does not generate SPSS syntax, write native SPSS system files, execute
SPSS estimators, or claim SPSS numerical equivalence.
}
\section{When to use this layer}{

\itemize{
\item You are reproducing an older workflow that expects one-shot wrappers.
\item You need fixed-width text blocks for console, logs, or archival handoff.
\item You need graphfile or scorefile style outputs for downstream legacy tools.
\item You are checking column coverage and metric consistency against a
FACETS-style output contract.
}
}

\section{When not to use this layer}{

\itemize{
\item For standard estimation, use \code{\link[=fit_mfrm]{fit_mfrm()}} plus \code{\link[=diagnose_mfrm]{diagnose_mfrm()}}.
\item For report bundles, use \link{mfrmr_reports_and_tables}.
\item For manuscript text, use \code{\link[=build_apa_outputs]{build_apa_outputs()}} and \code{\link[=reporting_checklist]{reporting_checklist()}}.
\item For visual follow-up, use \link{mfrmr_visual_diagnostics}.
}
}

\section{Compatibility map}{

\describe{
\item{\code{\link[=facets_positioning_guide]{facets_positioning_guide()}}}{User-facing wording for the package's
relationship to FACETS. Use before describing compatibility outputs in a
report or migration note.}
\item{\code{\link[=run_mfrm_facets]{run_mfrm_facets()}}}{One-shot legacy-compatible wrapper that fits,
diagnoses, and returns key tables in one object.}
\item{\code{\link[=mfrmRFacets]{mfrmRFacets()}}}{Alias for \code{\link[=run_mfrm_facets]{run_mfrm_facets()}} kept for continuity.}
\item{\code{\link[=build_fixed_reports]{build_fixed_reports()}}}{Fixed-width interaction and pairwise text
blocks. Best when a text-only compatibility artifact is required.}
\item{\code{\link[=facets_output_file_bundle]{facets_output_file_bundle()}}}{Graphfile/scorefile style CSV and
fixed-width exports for legacy pipelines.}
\item{\code{\link[=write_mfrm_residual_file]{write_mfrm_residual_file()}}}{Package-native observation-level
residual CSV/TSV export for reviewer, spreadsheet, or external QC handoff.}
\item{\code{\link[=write_mfrm_subset_file]{write_mfrm_subset_file()}}}{Package-native connected-subset summary
and node-membership CSV/TSV export for linking review handoff.}
\item{\code{\link[=facets_output_contract_review]{facets_output_contract_review()}}}{Column and metric review against
the FACETS-style output-contract specification. Use only when an explicit
output-contract review is part of the task; it checks the package output contract
and does not imply external FACETS equivalence.}
}
}

\section{Preferred replacements}{

\itemize{
\item Instead of \code{\link[=run_mfrm_facets]{run_mfrm_facets()}}, prefer:
\code{\link[=fit_mfrm]{fit_mfrm()}} -> \code{\link[=diagnose_mfrm]{diagnose_mfrm()}} -> \code{\link[=reporting_checklist]{reporting_checklist()}}.
\item Instead of \code{\link[=build_fixed_reports]{build_fixed_reports()}}, prefer:
\code{\link[=bias_interaction_report]{bias_interaction_report()}} -> \code{\link[=build_apa_outputs]{build_apa_outputs()}}.
\item Instead of \code{\link[=facets_output_file_bundle]{facets_output_file_bundle()}}, prefer:
\code{\link[=category_curves_report]{category_curves_report()}} or \code{\link[=category_structure_report]{category_structure_report()}} plus
\code{\link[=export_mfrm_bundle]{export_mfrm_bundle()}}.
\item For residual or subset handoff, prefer \code{\link[=write_mfrm_residual_file]{write_mfrm_residual_file()}} and
\code{\link[=write_mfrm_subset_file]{write_mfrm_subset_file()}} over reusing graph/score compatibility exports.
\item Instead of \code{\link[=facets_output_contract_review]{facets_output_contract_review()}} for routine QA, prefer:
\code{\link[=reference_case_review]{reference_case_review()}} for package-native completeness review or
\code{\link[=reference_case_benchmark]{reference_case_benchmark()}} for packaged benchmark cases.
}
}

\section{Practical migration rules}{

\itemize{
\item Start FACETS-facing reports with \code{\link[=facets_positioning_guide]{facets_positioning_guide()}} when readers
might otherwise assume FACETS numerical reproduction.
\item Keep compatibility wrappers only where a downstream consumer truly needs
the old layout or fixed-width format.
\item For new scripts, start from package-native bundles and add compatibility
outputs only at the export boundary.
\item Treat compatibility outputs as presentation contracts, not as the primary
analysis objects.
\item Use \code{\link[=compatibility_alias_table]{compatibility_alias_table()}} when you need to check which aliases are
still retained and which package-native names should be used in new code.
\item Use \code{reporting_checklist(fit)$software_scope} to review the current
FACETS, ConQuest, and SPSS relationship wording for a fitted analysis.
}
}

\section{Retained table-field names}{

\itemize{
\item \code{row_review} is the data-quality table field used to document row
filtering. FACETS-style column and metric contract results are exposed as
\code{column_review} and \code{metric_checks}.
\item Prediction outputs expose row-preparation and person-omission
traceability as \code{row_review} and \code{population_review}.
\item \code{hierarchical_review}, \code{shrinkage_review}, and \code{nesting_review} are
manifest or model-comparison traceability fields. They are not callable
helper names; user-facing helper names use review/check terminology.
}
}

\section{Typical workflow}{

\itemize{
\item Legacy handoff:
\code{\link[=run_mfrm_facets]{run_mfrm_facets()}} -> \code{\link[=build_fixed_reports]{build_fixed_reports()}} ->
\code{\link[=facets_output_file_bundle]{facets_output_file_bundle()}} plus \code{\link[=write_mfrm_residual_file]{write_mfrm_residual_file()}} /
\code{\link[=write_mfrm_subset_file]{write_mfrm_subset_file()}} only when those standalone files are needed.
\item Mixed workflow:
\code{RSM} / \code{PCM}:
\code{\link[=fit_mfrm]{fit_mfrm()}} -> \code{\link[=diagnose_mfrm]{diagnose_mfrm()}} -> \code{\link[=build_apa_outputs]{build_apa_outputs()}} ->
compatibility export only if required.
bounded \code{GPCM}:
\code{\link[=fit_mfrm]{fit_mfrm()}} -> \code{\link[=diagnose_mfrm]{diagnose_mfrm()}} -> \code{\link[=reporting_checklist]{reporting_checklist()}} ->
graph-only compatibility export only when a legacy handoff truly requires
it.
\item FACETS output-contract review:
\code{\link[=fit_mfrm]{fit_mfrm()}} -> \code{\link[=diagnose_mfrm]{diagnose_mfrm()}} -> \code{\link[=facets_output_contract_review]{facets_output_contract_review()}}.
}
}

\section{Companion guides}{

\itemize{
\item For FACETS coverage and boundary wording, see
\code{\link[=facets_positioning_guide]{facets_positioning_guide()}} and \code{\link[=facets_feature_coverage]{facets_feature_coverage()}}.
\item For standard reports/tables, see \link{mfrmr_reports_and_tables}.
\item For manuscript-draft reporting, see \link{mfrmr_reporting_and_apa}.
\item For visual diagnostics, see \link{mfrmr_visual_diagnostics}.
\item For linking and DFF workflows, see \link{mfrmr_linking_and_dff}.
\item For end-to-end routes, see \link{mfrmr_workflow_methods}.
}
}

\examples{
\donttest{
toy <- load_mfrmr_data("example_core")
toy_small <- toy[toy$Person \%in\% unique(toy$Person)[1:12], , drop = FALSE]

run <- run_mfrm_facets(
  data = toy_small,
  person = "Person",
  facets = c("Rater", "Criterion"),
  score = "Score",
  maxit = 30
)
summary(run)
compatibility_alias_table("functions")

fixed <- build_fixed_reports(
  estimate_bias(
    run$fit,
    run$diagnostics,
    facet_a = "Rater",
    facet_b = "Criterion",
    max_iter = 1
  ),
  branch = "original"
)
names(fixed)
}

}
