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

# RuleOptions

Scoping options shared by most rule functions.

Default priority is `MANDATORY`. Use `appliesTo` to scope to a role, skill,
or member ID. Use time scoping options (`dayOfWeek`, `dateRange`, `dates`,
`recurringPeriods`) to limit when the rule is evaluated.

Scope answers where a rule applies. It does not change the rule's core
meaning. For constraint rules, `priority` controls enforcement strength.
Preference rules document their own priority behavior. Not all rules support
all scoping options. Entity-only rules
(e.g., [maxConsecutiveDays](./maxConsecutiveDays)) ignore time scoping.

## Extended by

* [`MaxConcurrentAssignmentsOptions`](MaxConcurrentAssignmentsOptions)

## Properties

<ResponseField name="appliesTo" type="appliesTo?: string | string[]">
  Who this rule applies to (role name, skill name, or member ID).
</ResponseField>

<ResponseField name="dateRange" type="dateRange?: object">
  Restrict to a date range.

  <Expandable title="properties">
    <ResponseField name="end" type="string" required />

    <ResponseField name="start" type="string" required />
  </Expandable>
</ResponseField>

<ResponseField name="dates" type="dates?: string[]">
  Restrict to specific dates (YYYY-MM-DD).
</ResponseField>

<ResponseField name="dayOfWeek" type="dayOfWeek?: readonly [DayOfWeek, DayOfWeek]">
  Restrict to specific days of the week.
</ResponseField>

<ResponseField name="priority" type="priority?: Priority">
  Defaults to `"MANDATORY"`.
</ResponseField>

<ResponseField name="recurringPeriods" type="recurringPeriods?: [RecurringPeriod, ...RecurringPeriod[]]">
  Restrict to recurring calendar periods.
</ResponseField>
