What you need first
idiolect depends on ATProto for publication and on panproto for schema translation. Readers need three ATProto objects and one panproto object. The definitions below are sufficient for the rest of the Concepts chapters.
ATProto repositories and records
An ATProto account controls a public
repository.
A record
occupies a path of the form collection/rkey; an
AT-URI adds the
account DID:
at://did:plc:example/dev.idiolect.verification/3kexample
The repository is a content-addressed Merkle Search Tree whose leaves point to record CIDs. The repository commit is signed; an individual record is not a stand-alone signed document. A proof chain can connect a record CID to that signed commit. This distinction, specified in the official ATProto repository format, must be accounted for when evaluating provenance claims.
Lexicons and NSIDs
A Lexicon
is an ATProto schema document. Its
NSID
names a record collection or XRPC method; dev.idiolect.recommendation is one
such collection. The Lexicon specification
defines the record, object, reference, union, and scalar forms used throughout
this repository.
Independent publishers may define different NSIDs for similar data. Lexicon validation can determine whether a value has the declared shape, but it cannot determine that two independently named shapes describe the same thing. idiolect addresses that second problem.
PDSes and event streams
A personal data server (PDS) hosts an account's authoritative repository. Network consumers usually learn about record changes through a synchronization stream or a derived transport such as Jetstream or tap. The book uses event stream for the abstraction and firehose when referring to the network-wide ATProto stream specifically.
The current indexer accepts a generic EventStream. Concrete adapters cover
tap and Jetstream; thus a conceptual statement about an event fold does not
imply that every process connects directly to a PDS.
Panproto lenses
A lens
relates a source schema to a target schema. Its forward operation, get,
produces a target view and a
complement
containing source information that the view did not retain. Its backward
operation, put, combines a target view with that complement to reconstruct a
source value.
idiolect uses panproto 0.71.0 to instantiate and run these lenses. No category theory is assumed: Lens semantics and laws introduces the notation before using it, while the panproto book provides optional depth.