get_registry() -> MappingProxyType[str, ThemeEntry]Return the read-only theme registry, building it on first access.
Lazy so that theme.py can be imported on the deepagents --help cold
path without pulling in textual.theme.BUILTIN_THEMES (which transitively
imports Textual, ~470ms). Inside a Textual app, the build is microseconds
because Textual is already loaded; callers like _register_custom_themes()
iterate the result during App.__init__, which warms the cache before any
user-facing surface (e.g. the theme picker) reads it.