What problem does it solve?
Service packages in the atproto monorepo still running on the legacy server stack — lex gen-server codegen, a committed src/lexicon/ tree, and server.<ns>.<method>() route chains — need a structured, behavior-preserving migration onto @atproto/lex schemas and @atproto/xrpc-server routing without breaking working runtime logic.
Core Features & Use Cases
- Project config migration: Replaces
lex gen-server with lex build, fixes dependencies, updates gitignore, and deletes the legacy src/lexicon/ tree.
- Route and type migration: Converts
server.<ns>.<method>(…) registrations to server.add(schema, …) and maps legacy generated types (QueryParams, OutputSchema, isX guards, ids.* constants) to $-accessors like $Params, $OutputBody, $isTypeOf, and $lxm.
- Use Case: Migrating
packages/ozone — the last unmigrated service — by following the already-migrated packages/pds and packages/bsky as reference patterns, one namespace of route files at a time.
Quick Start
Migrate the ozone package's server stack off lex gen-server onto @atproto/lex and @atproto/xrpc-server, starting with project config and then route files one namespace at a time.