···11//// ## PDS (Personal Data Server)
22////
33-//// A PDS, or Personal Data Server, is a server that hosts a user.
44-//// A PDS will always store the user's data repo and signing keys.
55-//// It may also assign the user a handle and a DID.
66-//// Many PDSes will host multiple users.
33+//// A PDS, or Personal Data Server, is a server that hosts a user, it will
44+//// always store the user's data repo and signing keys. It may also assign
55+//// the user a handle and a DID. Many PDSes will host multiple users.
76////
88-//// A PDS communicates with AppViews to run applications.
99-//// A PDS doesn't typically run any applications itself,
1010-//// though it will have general account management interfaces
1111-//// such as the OAuth login screen.
77+//// A PDS doesn't typically run any applications itself, though it will have
88+//// general account management interfaces such as the OAuth login screen.
129//// PDSes actively sync their data repos with Relays.
1310////
1411//// ## Lexicon
···5855/// Get current PLC Data for the indicated DID,
5956/// this returns information about a Decentralized Identifier (DID),
6057/// including their handle and service endpoint.
5858+///
5959+/// PLC is a persistent global identifier system, stands for
6060+/// "Public Ledger of Credentials".
6161///
6262/// ## Examples
6363///
···6565/// import gleam/http/request
6666/// import possum
6767///
6868-/// let did = "did:plc:z72i7hdynmk6r22z27h6tvur"
6969-///
7068/// let request =
7169/// request.new()
7272-/// |> possum.get_plc_data(did)
7070+/// |> possum.get_plc_data("did:plc:z72i7hdynmk6r22z27h6tvur")
7371/// ```
7472///
7573/// ## Response
···9593/// }
9694/// ```
9795///
9898-/// Documentation: [AT Protocol DIDs](https://atproto.com/specs/did)
9696+/// Documentation: [DID PLC Directory](https://web.plc.directory/)
9997pub fn get_plc_data(
10098 request: request.Request(_),
10199 did: String,
···117115///
118116/// request.new()
119117/// |> possum.resolve_well_known_did("gleam.run")
118118+/// ```
120119///
121121-/// assert response.body == "did=did:plc:k5vecqzf4d5mdvkcu3mx6l5g"
120120+/// ## Response
121121+///
122122+/// ```txt
123123+/// did:plc:k5vecqzf4d5mdvkcu3mx6l5g
122124/// ```
123125///
124126/// Documentation: [HTTPS well-known Method](https://atproto.com/specs/handle#https-well-known-method)
···134136135137/// Resolves an atproto handle (hostname) to a DID.
136138/// Does not necessarily bi-directionally verify against the the DID document.
139139+///
140140+/// You can use projects like [Slingshot](https://slingshot.microcosm.blue)
141141+/// for easy access to cached data.
137142///
138143/// ## Examples
139144///
···339344/// or arbitrary binary data. In atproto, object nodes often include a string
340345/// field `$type` that specifies their Lexicon schema.
341346///
347347+/// You can use projects like [Slingshot](https://slingshot.microcosm.blue)
348348+/// for easy access to cached data.
349349+///
342350/// ```gleam
343351/// import gleam/http/request
344352/// import possum
345353///
346354/// let request =
347355/// request.new()
348348-/// |> request.set_host("personal.data-server.pds")
356356+/// |> request.set_host("personal.data-server.pds")
349357/// |> possum.get_record(
350358/// repository: did,
351359/// rkey: "3mn6n3lvibc2b",