This document discusses scoping in Xtext, including local versus global scoping, how scopes are created, and some best practices when working with scopes. Key points include: - Scopes describe the reachable elements in a given context and map names to EObjects. - Local scopes are created by language developers while the global scope (index) tracks elements across resources. - Language builders override getScope() to define scoping logic. Avoid cyclic references when collecting elements. - The global index tracks exported elements from resource descriptions to enable cross-file references. - Best practices include using user data instead of resolving proxies, validating instead of tight scoping, and avoiding direct resource loading.