# Ever Archive Format 0.1 (Draft)

Ever Archive (`.ever`) is a proposed, open, ZIP-based container for a personal or family memory archive.

## Design goals

- Preserve original recordings, photographs, video, documents, and transcripts.
- Keep the archive understandable without Golden Record or any other account.
- Include enough structured context to make assets discoverable and interpretable.
- Allow integrity verification after copying or long-term storage.
- Contain no executable code, DRM, or encryption requirement.

## Container

An Ever Archive is a ZIP file whose filename ends in `.ever`. An implementation must not rely solely on the extension; it must verify that the archive includes a root-level `ever.json` manifest.

The recommended media type during the proposal phase is `application/vnd.everarchive+zip`. This is a proposed vendor-tree registration, not an IANA-registered media type.

## Required root files

```text
ever.json
README.html
checksums-sha256.txt
```

`README.html` must function without external network requests and describe how to inspect the archive manually. `checksums-sha256.txt` uses the standard `sha256sum` format, one content asset per line.

## Manifest

`ever.json` is UTF-8 JSON. It must include `ever_version`, `title`, `created`, `subjects`, and `assets`.

Each asset must have a stable `id`, relative `path`, MIME `type`, and SHA-256 `sha256` checksum. Paths must not traverse outside the archive. Implementations must treat external URLs, scripts, and active content as untrusted.

## Media

Original media must be retained in their source format whenever possible. Access copies may be included beside originals, but must be linked from the asset metadata. The format does not prescribe codecs.

## Privacy and rights

Implementations may add permissions and rights metadata. They must never imply that the metadata itself prevents a recipient from copying files. Encryption is outside version 0.1; an encrypted transfer should be an outer transport layer, never the sole copy of an archive.

## Versioning

The first field, `ever_version`, follows `major.minor`. Readers must reject unknown major versions with a clear explanation and should preserve unknown fields when rewriting an archive.
