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

# Match day

> Building a lineup from availability, catching conflicts, and tracking who's been filling in.

A **lineup** is who's actually playing a given scrim or match. Start from
availability rather than a guess.

## Building one

<Steps>
  <Step title="See who's free" icon="calendar-check">
    `/lineup suggest` — everyone available at that time, split into starters and
    callable subs.
  </Step>

  <Step title="Open the sheet" icon="file-pen">
    `/lineup create` with the opponent and time.
  </Step>

  <Step title="Add players" icon="user-plus">
    `/lineup add`, one per player. Leave the slot off and it follows their
    roster status.
  </Step>

  <Step title="Check it" icon="magnifying-glass">
    `/lineup show` posts the sheet in-channel, with any conflicts flagged.
  </Step>

  <Step title="Lock it in" icon="lock">
    `/lineup set status:confirmed`.
  </Step>

  <Step title="Close it out afterwards" icon="flag-checkered">
    `/lineup set status:played`.
  </Step>
</Steps>

## Slots

<CardGroup cols={2}>
  <Card title="Starter" icon="user">
    The default for anyone with an active membership.
  </Card>

  <Card title="Substitute" icon="user-clock">
    The default for anyone on a substitute membership.
  </Card>

  <Card title="Stand-in" icon="user-pen">
    A main-roster player covering for another team.
  </Card>

  <Card title="Coach" icon="headset">
    Present, not playing. Never counted as a sub appearance.
  </Card>
</CardGroup>

<Tip>
  Leave `slot:` off entirely and it follows the player's roster status —
  substitutes land in the sub slot on their own. You only need to say it when
  you're doing something out of the ordinary.
</Tip>

## Conflicts

`/lineup show` re-checks the sheet against current reality and flags anyone who
has since gone on leave, been released, or isn't free at that time.

<Note>
  Players with **no schedule on file** are deliberately *not* flagged. That's
  missing information, not a problem — and warning about it would train everyone
  to ignore the warnings that matter.
</Note>

## Substitute usage

`/lineup subs` shows who's been filling in and how often, plus what they've
already committed to.

It's the fastest way to spot someone quietly carrying three teams — and a fair
basis for deciding who's earned a look at the main roster.

<Warning>
  Appearances are counted from **played** lineups only. If sheets get built but
  never closed out, `/lineup subs` stays empty and nobody gets credit for showing
  up.

  Marking it played is the step people skip. It takes one command.
</Warning>

## On the dashboard

`/admin/roster` carries the same lineups, the same conflict flags, and the same
substitute table — useful when you're already in there moving people around.
