Zed extensions: grammar subdirectory path and semantic token rule order
When writing a Zed language extension whose tree-sitter grammar lives in a subdirectory of the repo, the [grammars.x] entry in extension.toml accepts an undocumented path field (GrammarManifestEntry has repository, rev/commit, path), and every language must name a grammar even if an LSP provides semantic tokens. Zed's LSP semantic tokens are off by default (setting semantic_tokens: off/combined/full). In semantic_token_rules.json the first matching rule wins and token_modifiers can only require modifiers, never their absence, so to style names WITHOUT a modifier (e.g. mutable ones when the server marks immutables readonly), list the modifier-bearing rules first and the bare rule after. Runnables only see names a tree-sitter query can capture, so nested qualified names (outer.inner) can't be built.