···11+<div align="center">
22+33+<picture>
44+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/barazo-forum/.github/main/assets/logo-dark.svg">
55+ <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/barazo-forum/.github/main/assets/logo-light.svg">
66+ <img alt="Barazo Logo" src="https://raw.githubusercontent.com/barazo-forum/.github/main/assets/logo-dark.svg" width="120">
77+</picture>
88+19# Barazo Lexicons
21033-AT Protocol lexicon schemas and generated TypeScript types for the Barazo forum platform.
1111+**AT Protocol lexicon schemas and generated TypeScript types for the `forum.barazo.*` namespace.**
1212+1313+[]()
1414+[](https://opensource.org/licenses/MIT)
1515+[](https://github.com/barazo-forum/barazo-lexicons/actions/workflows/ci.yml)
1616+[](https://nodejs.org/)
1717+[](https://www.typescriptlang.org/)
41855-
1919+</div>
62077-## What is this?
2121+---
2222+2323+## Overview
824925[Lexicons](https://atproto.com/specs/lexicon) are the schema language of the AT Protocol. They define how data is structured, validated, and exchanged across the decentralized network. Every record stored on a user's PDS (Personal Data Server) must conform to a lexicon schema.
10261127This package defines the `forum.barazo.*` namespace -- the data contract between a user's PDS and any Barazo AppView. Because the schemas live on the protocol layer, all forum data (topics, replies, reactions, preferences) is portable: users own their data and can move between AppViews without loss.
12281313-The package provides:
1414-1515-- JSON lexicon schema files (the source of truth)
1616-- Generated TypeScript types with type guards and validators
1717-- Zod validation schemas for runtime input validation
1818-- Lexicon ID constants
2929+---
19302031## Lexicon Schemas
2132···2839| `forum.barazo.authForumAccess` | OAuth permission set granting repo access to all Barazo record collections | -- |
2940| `forum.barazo.defs` | Shared type definitions (reserved for future reusable types) | -- |
30414242+---
4343+3144## Package Exports
32453333-### Generated Types
4646+**Generated Types:**
34473548```typescript
3649import {
···5265const result = ForumBarazoTopicPost.validateRecord(record);
5366```
54675555-### Zod Validation Schemas
6868+**Zod Validation Schemas:**
56695770```typescript
5871import {
···6881}
6982```
70837171-### Lexicon ID Constants
8484+**Lexicon ID Constants:**
72857386```typescript
7487import { LEXICON_IDS, ids } from "@barazo-forum/lexicons";
···8093LEXICON_IDS.AuthForumAccess // "forum.barazo.authForumAccess"
8194```
82958383-### Raw Lexicon Schemas
9696+**Raw Lexicon Schemas:**
84978598```typescript
8699import { schemas } from "@barazo-forum/lexicons";
87100// Array of LexiconDoc objects for all forum.barazo.* schemas
88101```
891029090-## Installation
103103+---
104104+105105+## Quick Start
106106+107107+**Prerequisites:** Node.js 24 LTS, pnpm.
9110892109Configure GitHub Packages access in `.npmrc`:
93110···95112@barazo-forum:registry=https://npm.pkg.github.com
96113```
971149898-Then install:
115115+Install:
99116100117```bash
101118pnpm add @barazo-forum/lexicons
···103120104121Workspace consumers (`barazo-api`, `barazo-web`) are already linked via pnpm workspace.
105122123123+---
124124+106125## Development
107126108127```bash
109128pnpm install
110110-pnpm test # Run tests (74 tests across 3 suites)
129129+pnpm test # Run tests
111130pnpm build # Compile TypeScript
112131pnpm generate # Regenerate types from lexicon JSON
113132pnpm lint # Lint
114133pnpm typecheck # Type check
115134```
116135136136+See [CONTRIBUTING.md](https://github.com/barazo-forum/.github/blob/main/CONTRIBUTING.md) for branching strategy, commit format, and code review process.
137137+138138+---
139139+117140## Related Repositories
118141119119-- [barazo-api](https://github.com/barazo-forum/barazo-api) -- AppView backend (AGPL-3.0)
120120-- [barazo-web](https://github.com/barazo-forum/barazo-web) -- Forum frontend (MIT)
121121-- [barazo-deploy](https://github.com/barazo-forum/barazo-deploy) -- Docker Compose deployment templates (MIT)
122122-- [barazo-forum](https://github.com/barazo-forum) -- GitHub organization
142142+| Repository | Description | License |
143143+|------------|-------------|---------|
144144+| [barazo-api](https://github.com/barazo-forum/barazo-api) | AppView backend (Fastify, firehose, REST API) | AGPL-3.0 |
145145+| [barazo-web](https://github.com/barazo-forum/barazo-web) | Forum frontend (Next.js, Tailwind) | MIT |
146146+| [barazo-deploy](https://github.com/barazo-forum/barazo-deploy) | Docker Compose deployment templates | MIT |
147147+| [barazo-website](https://github.com/barazo-forum/barazo-website) | Marketing + documentation site | MIT |
148148+149149+---
150150+151151+## Community
152152+153153+- **Website:** [barazo.forum](https://barazo.forum)
154154+- **Discussions:** [GitHub Discussions](https://github.com/orgs/barazo-forum/discussions)
155155+- **Issues:** [Report bugs](https://github.com/barazo-forum/barazo-lexicons/issues)
156156+157157+---
123158124159## License
125160126126-MIT
161161+**MIT** -- Protocol schemas should be freely usable by anyone building on the AT Protocol.
162162+163163+See [LICENSE](LICENSE) for full terms.
164164+165165+---
166166+167167+(c) 2026 Barazo