GraphQL Cost / Depth

TODO(es): Heuristic only: ignores directives, aliases, and inline fragments. Use for quick sanity checks, not billing-grade cost.