> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dairy.foundation/llms.txt
> Use this file to discover all available pages before exploring further.

# Reading Guide

This guide will outline suggested reading to get started with using a part of
Dairy. This will assume you are looking to use some main functionality, and will
not cover every library.

# Core:

You won't need everything that Core has on offer, so don't stress about learning
it all, you can always come back to the docs later, once you realise that you
need that tool.

1. Read the overview, about the `FeatureRegistrar` and about `Feature`s.
2. Read about OpMode templating and `OpModeLazyCell`.
3. Take a look at the examples in the TeamCode module of the GitHub repository
   and try challenging yourself to write a Feature for a subsystem, or to allow
   you to automatically perform a task.
4. Take a look at EnhancedSuppliers, Controllers and Configuration.
5. Take a look at `Util` for other utilities that come with the library.
6. Check out another Dairy library, or start writing your own, feel free to
   reach out for help, or if you're interested in getting your library in the
   Dairy Foundation.

# Mercurial:

1. I recommend starting with the Mercurial docs to get a feel for commands.
2. Take a quick look at the overview of Core, and read the warnings about
   needing to add hooks to `LinearOpMode`.
3. Take a look at the examples in the TeamCode module of the GitHub repository,
   and try challenging yourself to write some common FTC programming challenges
   with Mercurial.
4. Read Pasteurized and Core in whatever order you prefer. You may wish to read
   a little, then challenge yourself to use what you've read about, in order to
   practice using it.
   * Pasteurized will give you a more advanced understanding of Gamepads in
     Mercurial, and how to use them in more complex ways.
   * Core will give you an understanding of many common utilities that
     Dairy offers, and you will learn about `Feature`s, which Mercurial
     recommends using for `Subsystem`s. Take a look at the Core reading
     guide.
