libs/search/src/boundary/search/
├── schema.clj — Malli schemas: SearchDocument, SearchResult, SearchResponse
├── ports.clj — ISearchStore (persistence), ISearchEngine (orchestration)
├── core/
│ ├── index.clj — defsearch macro, global registry, build-document
│ ├── query.clj — SQL builders (PostgreSQL FTS + H2/SQLite LIKE fallback)
│ └── ui.clj — Hiccup: search results, admin index page
└── shell/
├── persistence.clj — SearchStore (next.jdbc, HoneySQL ON CONFLICT upsert)
├── service.clj — SearchService (orchestration, pagination, reindex)
└── http.clj — Routes: API + admin web UI