You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An entry references a schema via schemaRef (AT-URI) and contains a storage union
A lens connects two schemas with bidirectional transformation code
A lensVerification attests to the correctness of a lens at a specific version (lensCommit)
A label is a named pointer to an entry, enabling versioned aliases like mnist@1.0.0
Storage objects share the shardChecksum type defined in entry#shardChecksum
An entry may include manifests — per-shard blob references to a JSON header and optional Parquet samples file for query-based access (entry#shardManifestRef)
Trust model
Lens verification follows the pattern established by Bluesky's app.bsky.graph.verification: the verifier writes a lensVerification record into their own PDS. The verifier's identity is implicit — it is the DID of the repo owner. This follows the ATProto golden rule: you can only write records into your own repo.
Key properties:
Version-pinned: Each verification targets a specific lens record version via lensCommit (CID). If the lens is updated, existing verifications do not carry over — the new version must be re-verified.
Method-tagged: The verificationMethod field declares what kind of verification was performed (code review, formal proof, signed hash, or automated test).
Trusted verifier designation is an AppView concern: The lexicon does not define who is a "trusted" verifier. That policy lives at the application layer, where an AppView can maintain a list of trusted DIDs and surface verification status accordingly.
Versioning policy
These lexicons follow ATProto evolution conventions:
Additive changes only: new optional fields, new knownValues entries, new union members
No breaking changes: required fields are never removed, types are never narrowed
Open unions: storage and schema format unions are open by default, allowing new members without breaking existing consumers
Token extensibility: schemaType, arrayFormat, and programmingLanguage use knownValues (not enum), so new values can be added without schema changes
Deprecated fields: The top-level language field on science.alt.dataset.lens is deprecated in favor of per-reference codeReference.language, which allows getter and putter to specify different languages