\section{Table structures}\label{s:structs}

This section only documents table structures shared among multiple modules. API-specific table structures are documented in the corresponding sections.

\subsection{Signal aspect table}\label{s:sigasp}
Signal aspect tables may contain the following members:
\begin{apidoc}{Signal aspect table}
\item \apifield{main} The aspect of the main signal.
\item \apifield{type} The type of signal. Please refer to section \ref{s:srtypes} for more information.
\item \apifield{dst} The aspect of the next main signal.
\item \apifield{shunt} Whether shunting is allowed.
\item \apifield{proceed\_as\_main} When shunting is not allowed, whether to let the train continue with shunt mode disabled.
\end{apidoc}

The \texttt{main} and \texttt{dst} fields may contain one of the following:
\begin{itemize}
\item $n \geq 0$, which changes the speed limit of the corresponding type to $n$, or (for distant signals) indicates the speed limit for the upcoming main signal.
\item $-1$, which lifts the speed limit of the corresponding type, or (for distant signals) indicates that the speed limit is lifted at the upcoming main signal.
\item \luanil, which keeps the speed limit unchanged.
\end{itemize}

\subsection{Train speed restriction table}
The speed restriction table for trains includes the speed limits for a train, where the key is the type of speed limit and the value is the speed limit itself.

%%% Local Variables:
%%% TeX-master: "a4manual"
%%% End: