---
typeId: req
recordId: benac-pkg-012
fields:
  title: Package Bundle Manifest schema
  statement: |
    Benac shall define a Package Bundle Manifest logical object.

    A Package Bundle Manifest shall have `object_type` equal to `package_bundle_manifest`.

    A Package Bundle Manifest shall have `schema_version` equal to the supported Package Bundle Manifest schema version.

    A Package Bundle Manifest shall identify the package CID.

    A Package Bundle Manifest shall identify exactly one package document entry.

    A Package Bundle Manifest shall contain an `entries` array.

    Each item in `entries` shall contain:

    - `path`
    - `entry_role`
    - `cid`
    - `cid_codec`
    - `media_type`
    - `size_bytes`

    The `path` field shall equal the normalized relative ZIP entry path.

    The `entry_role` field shall use only entry roles defined by the Package Bundle Manifest schema.

    The supported entry roles for this requirement shall include:

    - `package_document`
    - `structured_document`
    - `raw_blob`

    The package document entry shall have `entry_role` equal to `package_document`.

    The package document entry CID shall equal the package CID.

    A structured document entry shall declare `cid_codec` equal to the structured document CID codec.

    A raw blob entry shall declare `cid_codec` equal to the raw blob CID codec.

    The Package Bundle Manifest shall be the only Package Bundle ZIP entry that defines ZIP entry roles, path-to-CID bindings, package document binding, included supporting object set, included fixture set, included report set, included claim set, and included raw blob set.

    Package document semantics shall be derived from the verified package document referenced by the Package Bundle Manifest.

    Package distribution-context semantics shall be derived from the verified Package Bundle Manifest.

    A Host Implementation shall not use any other ZIP entry as an alternate path-to-CID map, artifact index, package import index, artifact availability source, fixture discovery source, report discovery source, claim discovery source, identity source, integrity source, approval source, invocation source, or trust source.

    A Package Bundle Manifest shall fail validation when it contains a missing required field, unknown required field, unsupported schema version, unsupported entry role, unresolved required reference, missing declared ZIP entry, undeclared ZIP entry, malformed CID, unsupported CID codec, structured document CID mismatch, raw blob CID mismatch, unsupported object type, unsupported object schema version, unsupported behavior-class marker, or a field containing the CID of the Package Bundle Manifest itself.
  rationale: >-
    The Package Bundle Manifest is the distribution contract for the Package
    Bundle ZIP file. It identifies the package document and the included
    supporting objects and bytes by exact CID. Package identity remains the
    package CID.
  verification: >-
    Conformance tests validate a correct Package Bundle Manifest containing a
    package document, structured document entries, and raw blob entries.
    Conformance tests reject manifests with missing required fields, unknown
    required fields, wrong package CID, unsupported schema version,
    unsupported entry role, unresolved reference, malformed CID, unsupported
    CID codec, missing declared ZIP entry, undeclared ZIP entry, structured
    document CID mismatch, raw blob CID mismatch, unsupported object type,
    unsupported object schema version, unsupported behavior-class marker,
    and any field containing the CID of the Package Bundle Manifest itself.
  testable: true
  status: draft
  area: BENAC-PKG
  sourceDocument: operator ticket 2c9740bd-6943-49e6-bf89-6462e8993fd2
  sourceVersion: 2026-05-05
  sourceSections:
    - Package authoring
  order: 82.8
---
