it also feels like it makes sense on the consuming side. then you get nice-looking componenty things directly from the lexicon. (the lexicon is the "API" — you literally "get" the child components by importing lex's generated type definitions.)

import { $ } from "@inlay/core";
import { List } from "@/generated/org/atsui";
import { Post } from "@/generated/com/example";

function PostFeed() {
  // ...
  $(List, {
    items: posts.map(uri => $(Post, { uri })),
    loadMore: nextPage
  })
  // ...
}// Minimal helper to create nodes from generated lexicon modules
//
// Usage:
//   import { Stack } from "@/generated/org/design";
//   import { Post } from "@/generated/com/example";
//   import { $ } from "@inlay/core";
//
//   $(Stack, { gap: "medium" }, [
//     $(Post, { uri: 'at://...' })
//   ])
//
// Node types are NSIDs (e.g., "com.example.Post")
export function $(mod, props, children) {
    const finalProps = children != null ? { ...props, children } : props;
    return {
        type: mod.$nsid,
        props: finalProps,
    };
}
0

If you have a fediverse account, you can quote this note from your own instance. Search https://bsky.brid.gy/convert/ap/at://did:plc:fpruhuo22xkm5o7ttr2ktxdo/app.bsky.feed.post/3mdjlmpjxt22h on your instance and quote it. (Note that quoting is not supported in Mastodon.)