Runtime handle for an index split across multiple independent Exograph indexes.
Shards keep local IDs. Query APIs fan out to every shard and merge results in memory, so callers can use the same high-level search functions without first materializing one merged DuckDB database.
Summary
Types
@type shard() :: Exograph.Index.t() | %{:index => Exograph.Index.t(), optional(:dynamic_repo) => term()}