A validated bundle of arguments destined for one external
fitting engine, produced by an engine constructor such as
SusieOptions() or MrmashOptions() rather than written as a
bare list. Names are checked against the engine's own formals at
construction, so a misspelled option fails immediately instead of being
silently dropped.
It is a SimpleList: $,
[[, names() and length() behave as on a list, it
splices into a call with !!!, and subsetting returns a
MethodOptions rather than degrading to a plain list. The engine name
and the callee it forwards to travel in metadata().
Whether argument names are checked
A constructor checks the names you give it against the live
formals of the function it forwards to, so the check can never drift from
the version of that package you have installed. Printing a
MethodOptions says which applies to it.
Names cannot be checked in two situations, and in both the arguments are forwarded unchecked rather than rejected:
The engine takes
..., so any name is legal as far as it is concerned. As of writing this applies tomvsusieR::mvsusie_rss,mvsusieR::create_mixture_prior,ncvreg::ncvreg,ncvreg::cv.ncvreg,RcppDPR::fit_model,mashr::cov_ed,ctwas::finemap_regionsandctwas::postprocess_region_merging. A misspelling here reaches the engine, which may ignore it silently.The engine's package is not installed, so its formals cannot be read. Building the arguments still works – it is not running the engine – and the engine's own requirement check reports the missing package when you actually run it.
Every other engine enumerates its arguments, so a misspelling is an error
at the call site naming the accepted set. Constructors for pecotmr's own
engines take no ... at all, so R itself rejects an unknown name as
an unused argument.