OptionalattributesBody fields (string values), the JSON object for add/set or the args for a run command.
OptionalidObject id (*1) for get-one/set/remove — REST puts it in the URL, native in =.id=.
Slash path without id, e.g. /ip/address. For run, the command target (/interface/monitor-traffic); ignored when script is set.
OptionalproplistProperty projection → REST .proplist / native =.proplist=.
OptionalqueryRow filter in REST .query form (no leading ?), e.g. ["type=ether", "#!"]; native prefixes each with ?.
OptionalscriptRaw console line for the /execute script form (run); when set, path/attributes are ignored.
A normalized
apirequest the orchestrator hands to a transport. It is transport-agnostic: the REST adapter maps the verb to an HTTP method + URL (id-in-path,.query/.proplistbody), the native adapter maps it to a taggedtalk(=.id=,?-prefixed queries,=.proplist=). The orchestrator owns method→verb, validation, and the write gate; the adapter only executes.