Test vectors for vlpds's Spaces primitives (src/space), from the reference
implementation:

  repo:   https://github.com/bluesky-social/atproto
  branch: permissioned-data (PR #5187)
  commit: 5b95b2f2723a2882824fbb0b819fd6aad884ef20

vectors.json was generated, not copied: the reference's own tests in
packages/space/tests use random keys and check round trips, and only
tests/lthash.test.ts pins vectors (the empty digest and add('one').add('two'),
both included in vectors.json and asserted on their own in src/space/lthash.rs).
gen-vectors.mjs produced it by running the reference code (@atproto/space and
@atproto/crypto built at that commit, Node 26) with fixed keys; see its
header for how to re-run it. Each vector was verified by the reference
before it was written out. Only the token jtis are random, so a re-run
changes the `tokens` entries alone.

Syntax cases (src/lexicon.rs tests) are ported from
packages/syntax/tests/aturi-string.test.ts and
packages/lexicon/tests/general.test.ts; HTTP signature and token cases
(src/space/{httpsig,token}.rs tests) from packages/space/src/http-signature.test.ts
and packages/space/tests/credential.test.ts, at the same commit.

License: MIT (bluesky-social/atproto).

export.car and export.json (tests/all/spaces_side/import_repo.rs) are a space
repo as the reference PDS's com.atproto.space.getRepo serves it, generated by
gen-export.mjs at the same commit (Node 26): the reference's serializeRecord,
RepoCommit.sign and serializeRepo over five records (one naming a blob) with a
fixed k256 key, checked with verifyRepoCarFull before it was written. The
commit's ikm is random, so a re-run changes the commit block alone.
