.akr files to share structured setup data. An .akr file is a ZIP archive containing exactly one manifest and one payload. This structure ensures imports remain explicit and prevents unrelated files from being included in a pack.
Archive Shape
An archive must contain exactly two entries: The reader rejects archives containing folders, extra entries, rooted paths, backslashes, or.. path segments, as well as those that do not match the expected payload name and kind.
Manifest
Themanifest.json file uses the following structure:
The manifest size limit is 16 KiB.
Setup Payload
Setup packs use thesetup archive contract:
setup.json payload uses the following structure:
Setup Sections
Scoped imports merge only the selected section into the current active settings without resetting unrelated settings.
Import Safety Rules
Imports follow a “fail closed” policy: Akron rejects archives with unsupported formats or versions, incorrect kinds, missing or extra entries, oversized payloads, invalid JSON, or unsupported payload formats. If an import fails, current settings remain unchanged and a short toast notification is shown. Detailed errors are written to the logs rather than the user-facing toast.Maintenance Requirements
Settings included in.akr setup packs must meet these requirements:
- Must be defined as a field in
AkronSetupState. - Must support capture from
AkronModuleSettings. - Must support application back to
AkronModuleSettings. - Must implement scoped-section copy behavior when the setting belongs to
StartPos,AutoKill,AutoDeafen,Recorder,Audio, orHud. - Must have automated tests proving whole import/export and scoped import/export preserve the intended state.
- A unique
Kind, payload entry name, payload format string, and payload size limit. - Dedicated single-payload archive helper methods.
- Simple payload entry names (e.g.,
labels.json). - Unsupported payload-format rejection before state is applied.
- Comprehensive test coverage for round-trip, wrong kind, extra entries, oversized payload, and missing manifest.
- Complete technical documentation updated on this page.
.akr archive. The current contract requires exactly one kind, one manifest, and one payload.
Archive tests live in tests/archive-tests.cs.