It mainly consists of the {@link sam.ui.UserInterface user interface} class,
which controls how to interact with the user during
{@link sam.ui.RulingInterface initialization},
during {@link sam.ui.RunningInterface program computations} and in case
of {@link sam.ui.ErrorInterface errors}.
It also defines a general-purpose {@link sam.ui.LogInterface logging interface}
which is used extensively throughout the whole application to help bug tracking.