# Required（必要资源）

本节说明 Required 配置的字段、用途、可填写值、默认行为与回退规则。

`dc` 格式请先阅读：
- [开始使用](../Getting_Started)

## 位置与扫描规则
- 目录：`DLC/required/`
- 仅扫描顶层文件（不递归子目录）。
- 仅 `isInList = true` 的条目会显示在必要资源列表中。

## 完整示例
```dc
[download]
curseforge_projectid = "123456"
curseforge_fileid = "7890123"
modrinth_projectid = "project-slug-or-id"
modrinth_versionid = "version-id-or-number"
directUrl = [
  "https://example.com/mirror/requiredA.jar",
  "https://mirror.example.net/requiredA.jar"
]
priority = "curseforge,modrinth,directurl"

[basic]
identifier = "ExampleRequired"
file_name = "example-required-1.0.0.jar"
appliedTarget = "mods"
RedirectUrl = "https://example.com/required-resource-guide"
isInList = true
isHidden = false
dependencies = ["HelperLib"]

[dependencies]
  HelperLib:
    [download]
    modrinth_projectid = "helperlib"
    modrinth_versionid = "helperlib-version"
    directUrl = ""
    priority = "modrinth"

    [basic]
    identifier = "HelperLib"
    file_name = "helperlib.jar"
    appliedTarget = "mods"
    isInList = true
    isHidden = true
    dependencies = ""

    [DisplayName]
    en_us = "Helper Library"
    zh_cn = "辅助库"

    [tip]

[DisplayName]
en_us = "Required Example"
zh_cn = "必要资源示例"

[tip]
en_us = "Do not remove"
zh_cn = "请勿删除"
```

## 字段说明

#### `[download]`
- `curseforge_projectid`、`curseforge_fileid`
- `modrinth_projectid`、`modrinth_versionid`
- `directUrl`：字符串或字符串数组
- `priority`：`curseforge`、`modrinth`、`directurl`（逗号分隔）

#### `[basic].identifier`
- **用途**：用于前置/预设/冲突匹配的逻辑标识。
- **回退**：配置文件名。

#### `[basic].file_name`
- **用途**：DLC 文件名（包含扩展名）。
- **回退**：先从 URL 推断，再回退到 identifier。

#### `[basic].appliedTarget`
- **用途**：安装/应用目标路径。
- **可填**：相对路径或绝对路径。

#### `[basic].RedirectUrl`
- **用途**：在 DLC 列表中双击 DLC 名称时打开的链接。
- **可填**：字符串。

#### `[basic].isInList`
- **用途**：是否在必要资源列表显示。
- **默认**：`true`。

#### `[basic].isHidden`
- **用途**：隐藏条目但仍由系统管理。
- **默认**：`false`。

#### `[basic].dependencies`
- **可填**：identifier 字符串或数组。

#### `[dependencies]`
- **用途**：以嵌套的形式定义前置。
- **语法**：
  - `identifier:` 或 `[identifier]`

#### `[DisplayName]`
- 多语言显示名文本表（`en_us`、`zh_cn` 等）。

#### `[tip]`
- 多语言提示文本表（`en_us`、`zh_cn` 等）。

#### `UserRemoved`
- 运行时在用户手动移除时写入的内部标记。
- 不建议手动设置。

## 标记文件
- `DLC/required/SKIP`：
  - 跳过必要资源提示。
  - 若存在 `FORCE`，则该文件无效。
- `DLC/required/FORCE`：
  - 强制显示必要资源提示并隐藏“跳过”。
  - 若文件内容包含 `forcerestart`，则必须重启。
