# Bundle

A container artifact for grouping related artifacts together

Canonical URL: https://docs.paradoc.dev/schemas/artifacts/bundle/

A Bundle is a recursive container for content artifacts. Bundles group together documents, forms, checklists, and other bundles into a single distributable unit.

Examples include a loan application packet, new hire paperwork, or compliance submission.

## Properties

| Name | Type | Description |
| --- | --- | --- |
| `$schema?` | `string` | Current dated schema URL. Required in artifact files and optional for in-memory objects |
| `kind` | `'bundle'` | Literal "bundle" discriminator |
| `name` | `string` | Unique identifier; must follow slug constraints |
| `version?` | `string` | Artifact version (semantic versioning) |
| `title?` | `string` | Human-friendly name presented to end users |
| `description?` | `string` | Long-form description or context |
| `code?` | `string` | The form number as printed by its issuer (e.g. W-9, ACORD 25), or a self-issued form's own number |
| `language?` | `string` | BCP 47-style source language tag. Defaults to en when omitted |
| `issuer?` | `string` | Organization that issues the form (e.g. U.S. Internal Revenue Service) |
| `edition?` | `Edition` | The issuer's edition this artifact encodes, for artifacts the issuer reissues. Every edition of one artifact shares the same name and has its own version line |
| `metadata?` | `Metadata` | Custom metadata map (keys must be alphanumeric with hyphens) |
| `instructions?` | `ContentRef` | Domain or compliance reference content (e.g., regulatory guidance) |
| `agentInstructions?` | `ContentRef` | LLM/agent prompts for presentation guidance |
| `defs?` | `DefsSection` | Named typed computed values that can be referenced in include conditions |
| `contents` | `BundleContentItem[]` | Ordered list of bundle contents with keys |

### BundleContentItem

Bundle contents can be inline artifacts, path references, or registry references.

```typescript
type BundleContentItem = InlineBundleItem | PathBundleItem | RegistryBundleItem
```

| Name | Type | Description |
| --- | --- | --- |
| `type` | `'inline' \| 'path' \| 'registry'` | Content item type discriminator |

Item keys start with a letter and contain only letters, digits, `_`, and `-`. Every item type accepts optional `include`.

## Examples



**YAML**

```yaml
$schema: https://schema.paradoc.dev/2026-10-02.json
kind: bundle
name: loan-application
version: "1.0.0"
title: Loan Application Packet

defs:
  needsW9:
    type: boolean
    value: "forms.application.fields.applicantType == 'contractor'"

contents:
  # Inline artifact
  - type: inline
    key: welcome-doc
    artifact:
      $schema: https://schema.paradoc.dev/2026-10-02.json
      kind: document
      name: welcome
      title: Welcome Letter

  # Inline form read by bundle expressions
  - type: inline
    key: application
    artifact:
      $schema: https://schema.paradoc.dev/2026-10-02.json
      kind: form
      name: application
      fields:
        applicantType:
          type: enum
          enum: [{ value: employee }, { value: contractor }]

  # Path reference
  - type: path
    key: borrower-info
    path: /forms/borrower-info.yaml

  # Registry reference with conditional include
  - type: registry
    key: w9
    slug: "@paradoc/irs/w-9"
    edition: "2024-03"
    version: "1.0.0"
    include: needsW9
```

**JSON**

```json
{
  "$schema": "https://schema.paradoc.dev/2026-10-02.json",
  "kind": "bundle",
  "name": "loan-application",
  "version": "1.0.0",
  "title": "Loan Application Packet",
  "defs": {
    "needsW9": {
      "type": "boolean",
      "value": "forms.application.fields.applicantType == 'contractor'"
    }
  },
  "contents": [
    {
      "type": "inline",
      "key": "welcome-doc",
      "artifact": {
        "$schema": "https://schema.paradoc.dev/2026-10-02.json",
        "kind": "document",
        "name": "welcome",
        "title": "Welcome Letter"
      }
    },
    {
      "type": "inline",
      "key": "application",
      "artifact": {
        "$schema": "https://schema.paradoc.dev/2026-10-02.json",
        "kind": "form",
        "name": "application",
        "fields": {
          "applicantType": {
            "type": "enum",
            "enum": [{ "value": "employee" }, { "value": "contractor" }]
          }
        }
      }
    },
    {
      "type": "path",
      "key": "borrower-info",
      "path": "/forms/borrower-info.yaml"
    },
    {
      "type": "registry",
      "key": "w9",
      "slug": "@paradoc/irs/w-9",
      "edition": "2024-03",
      "version": "1.0.0",
      "include": "needsW9"
    }
  ]
}
```

## Related

* [Form](/schemas/artifacts/form) - Interactive form artifact
* [Document](/schemas/artifacts/document) - Static document artifact
* [Checklist](/schemas/artifacts/checklist) - Task tracking artifact
