\section{Method}
This review follows the PRISMA 2020 reporting guideline \citep{prisma2020}.

\subsection{Design and scope}
Two independent thematic streams were searched and screened separately: \textbf{UAV}
(drone-based urban logistics) and \textbf{TRUCK} (truck-based urban freight and logistics).
Each included study is assigned to one stream during synthesis.

\subsection{Information sources and search strategy}
Searches were executed on \textsc{[todo: OpenAlex and Scopus, exact dates]}.
The Scopus API key is provisioned at a basic service level, which restricts retrieval to
\texttt{count}$\le 25$ and \texttt{start}$\le 4000$ and does not permit cursor pagination;
the \texttt{view=STANDARD} representation returns no abstracts. Abstracts were therefore
obtained from OpenAlex.

\subsection{Search strings}
Reproduced verbatim from \texttt{config\_ai/search\_strategy.json}:
\begin{quote}\small
\textsc{[todo: paste each of the six query strings exactly as executed, labelled by stream]}
\end{quote}

\subsection{Eligibility criteria}
Inclusion and exclusion criteria are listed verbatim in
\texttt{config\_ai/criteria.json} \textsc{[todo: render as an appendix table]}.

\subsection{Screening and selection}
\textsc{[todo]} Describe the deduplication key, the automated pre-screening pass, and the
human-in-the-loop title/abstract screening procedure.
