// using_resolver.hako — Meta Using Resolver (lang-side, minimal)
// Public name (SSOT): UsingResolver.resolve/1

static box UsingResolver {
  // Minimal shape (Phase‑20.10): return an empty resolver result.
  // Shape: { using_paths: [], modules: [], aliases: {}, packages: {}, policy: {} }
  // Behavior-invariant: no I/O, no host-slot dependence.
  resolve(_token){
    return {
      using_paths: new ArrayBox(),
      modules: new ArrayBox(),
      aliases: {},
      packages: {},
      policy: {}
    };
  }

  // stats/1 — Return minimal JSON counts (lang-side observability; behavior-invariant)
  // Shape: {"modules":N,"paths":P,"aliases":A}
  stats(_token){
    // Minimal, side-effect free, no Map/Array construction
    return "{\"modules\":0,\"paths\":0,\"aliases\":0}";
  }

  // shape/1 — Return minimal resolver shape as JSON (behavior-invariant)
  // Shape JSON (keys only; values are empty):
  // {"using_paths":[], "modules":[], "aliases":{}, "packages":{}}
  shape(_token){
    return "{\"using_paths\":[],\"modules\":[],\"aliases\":{},\"packages\":{}}";
  }
}
