From pawnkit-spec RFCs at ab0c7545c91626ff81b24a33654c1eb2bb552045 · Raw file


rfc: 0006 title: Server bundle status: accepted created: 2026-07-17 updated: 2026-07-18 supersedes: null superseded-by: null schema: schemas/pawn-bundle.schema.json

Summary

This RFC defines the bundle format used to install and update a SA-MP or open.mp server. A bundle contains the server files, manifest, checksums, configuration references, and runtime requirements.

Motivation

A server installation combines a binary, gamemode, filterscripts, native extensions, and configuration. There is no standard manifest that says which files belong together or verifies them before installation. pawnserver needs that contract for installation and updates.

Current behavior

Neither SA-MP nor open.mp publishes a bundle manifest. Server archives rely on file-placement conventions and a hand-edited config.json or server.cfg. The open.mp config.json controls the runtime; it does not describe or verify an installation. This RFC references that configuration instead of copying it into another format.

Proposal

schemas/pawn-bundle.schema.json defines a bundle manifest (pawn-bundle.json, conventionally at a bundle's root):

PawnKit extensions

The bundle is a PawnKit format. Its reference to open.mp config.json uses the upstream format as-is; RFC 0007 documents that file separately.

Compatibility impact

This is the first version of the bundle format.

Alternatives considered

Security considerations

Migration plan

Not applicable: this is the first version.

Reference implementation status

pawnserver is the reference implementation. It validates paths, checksums, platform selection, archives, configuration consistency, and transactional installation against this contract.

Conformance tests

examples/pawn-bundle/valid.json is validated by tools/validate. Archive, checksum, path, platform, and installation cases are owned by pawnserver.

Open questions

None for version 1. Resolved decisions: