> For the complete documentation index, see [llms.txt](https://docs.pkgforge.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pkgforge.dev/sbuild/specification/0.prerequisite.md).

# 0.Prerequisite

## Tools

* **Linter**: Validates SBUILD scripts
* **Runner**: Executes validated SBUILD scripts
* **SBUILDER**: Combined linter + runner (used by `soar build`)

## Field Types

* <mark style="color:red;">**`ENFORCED`**</mark>: Required field
* <mark style="color:blue;">**`NON_ENFORCED`**</mark>: Optional field
* <mark style="color:green;">**`RECOMMENDED`**</mark>: Optional but encouraged

## Directories

* `$SBUILD_OUTDIR`: Working directory for the build
* `$SBUILD_TMPDIR`: Temp directory inside SBUILD\_OUTDIR (`$SBUILD_OUTDIR/SBUILD_TEMP`)

## Script Blocks

* `x_exec.pkgver`: Shell commands to fetch version
* `x_exec.run`: Shell commands to build/download the package

{% hint style="info" %}
Validate your SBUILD with [yamllint](https://www.yamllint.com/) and `x_exec.run` with [shellcheck](https://www.shellcheck.net/).
{% endhint %}
