Architecture โ
Each subsystem directory owns a facade re-exported by src/treesitter.zig: core/core.zig, memory/memory.zig, parser/parser.zig, lexer/lexer.zig, tree/tree.zig, language/language.zig, query/query.zig, input/input.zig, unicode/unicode.zig, debug/debug.zig, utils/utils.zig. Internal files are imported relatively; the dependency direction utils โ core โ memory โ input/unicode โ language โ tree โ lexer โ parser โ query is load-bearing โ core must never import parser or query. The one deliberate exception is the tree โ node handle/pool split, which Zig's lazy file evaluation tolerates. Keep new code inside the subsystem that owns its data.
