  An key element of the success of McStas is the component layer where users
and developers alike are contributing to the description of new physical models
and features. In McStas, components realise all physical elements of the
simulated instrument from source via optics and samples to detector. In this
second review paper of the McStas package, we present an overview of the
component classes in McStas: sources, monitors, optics, samples, misc, and
contrib. Within each component class we give thorough examples of high-quality
components, including their algorithms and example use. We present two example
instruments, one for a continuous source and one for a time-of-flight source,
that together demonstrate the use of the main component classes. Finally, we
give tips and instructions that will allow the reader to write good components
and elucidate the pathway of contributing new components to McStas.
