# atproto glossary Concept budget: 6. Everything else is boxed out (see bottom). Rule: a concept only earns a place here after we've needed it. Write entries in our own words; delete entries that stop being true. ## The 6 **repo** — a user's signed document store. Like a personal git repo hosted by their PDS. Every record linji writes lives in somebody's repo: chat messages in the author's, community definitions in the community account's. **record** — one JSON document in a repo. Validated against a lexicon (which is just a JSON schema). The same `at.linji.*` shape works in both publicity modes. **collection** — a folder of same-typed records, named by NSID: `at.linji.post`, `at.linji.membership`. A repo is just a set of collections. **AT-URI** — `at://did/collection/rkey`. The universal path. Records reference each other with these; post → channel → community is just AT-URI fields on records. Space URIs extend the shape: `at://{authorityDid}/space/{type}/{skey}`. **DID + handle** — identity. DID is the permanent id (`did:plc:…`), handle (`@you.linji.at`) is the readable alias that resolves to it. One DID, one repo, present in many communities. **space** — a permissioned data space (proposal 0016): where member-only records live. Two server roles: an authority (policy + writer registry, no content) and each writer's repo host (their signed records). Access is by space credential, exchanged from a short-lived delegation token. During the invite-only era, one zds plays both roles. ## Frozen defaults (reversible, don't re-litigate) - AI role: bot participant deferred (2026-08-02, S013); the published CLI is the bot surface. Companion waits. - Chat publicity: member-only (spaces) in phase 001; public records in phase 003. Same schema in both modes. - Invitee PDS: hosted zds. Load-bearing — space writers need a space-capable PDS. - Iteration sandbox: local zds fork (`./zds/`), 2–3 test accounts. No federation, no relay. ## The box (do not open until forced) Relay, firehose, jetstream, AppView-as-concept, MST, CAR files, PLC directory, DID methods, labelers, federation. Network plumbing. Matters when we interoperate with apps we didn't write — phase 002 earliest. Until then "the network" is a single opaque dependency behind zat's XRPC client. ## Reference notes - roomy.space's published lexicons are event-stream schemas, not records; their record-based redesign is gated on the same permissioned-data proposal as our spaces mode. Watch, don't copy. - zds permissioned spaces (`com.atproto.space.*`, simplespace member lists) are the member-only substrate. Experimental — all access behind one thin core module, and every zds upgrade must pass the scenario suite before the class touches it. - Lexicon conventions: [ref/lexicon-style-guide.dj](ref/lexicon-style-guide.dj) (Bluesky's guide, CC-BY).