Saxonberg Server API
    Preparing search index...

    Function candidatesForScope

    • Build the candidate pool for a scope MQL fragment. Two paths:

      1. Fast path — the fragment is a recognized seed name (here, peers, reachable, inventory, online, world, me), a path glob, a stuff id, or a comma-union of such tokens. Each token expands directly to its candidate pool.

      2. Slow path — anything else (a keyword, an arbitrary chain, a bracket filter, etc.). The fragment is parsed and resolved as a full MQL query against an inner reachable context, and each resulting (Stuff, via) anchor's neighborhood becomes part of the candidate pool. This is what makes a focus chain like "here:bookcase:book" evaluate cleanly as a scope — the pool is the book detail's neighborhood (its children, if any).

      Falls back to reachable when the fragment is empty, the slow path produces no anchors, or the slow-path parse/resolve throws — the graceful-fallback rule from the unified-scope delta. Typical trigger: the player walked into a different room and the old focus chain doesn't resolve in the new context.

      Parameters

      Returns ScopeCandidate[]