{
  "schema_version": 1,
  "source_module_version": "0.1.39",
  "source_commit": "2d737feb449c05c8df9f79a7ebefd4c582cdfb94",
  "verified_date": "2026-07-24",
  "evidence": {
    "binding_registration": true,
    "official_script_files": 17,
    "live_game_acceptance": false
  },
  "members": [
    {
      "path": "hexis.chat.command",
      "namespace": "chat",
      "name": "command",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.chat.command(cmd)",
      "summary": "Command",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.chat.send",
      "namespace": "chat",
      "name": "send",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.chat.send(message)",
      "summary": "Send",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.chat.send_as_hexis",
      "namespace": "chat",
      "name": "send_as_hexis",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.chat.send_as_hexis(message)",
      "summary": "Send with Hexis prefix",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.client.play_sound",
      "namespace": "client",
      "name": "play_sound",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.client.play_sound(id, opts)",
      "summary": "Play client-side sound",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.combat.attack",
      "namespace": "combat",
      "name": "attack",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.combat.attack(target, options)",
      "summary": "Single attack",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.combat.blacklist",
      "namespace": "combat",
      "name": "blacklist",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.combat.blacklist(entity_table, duration_ms)",
      "summary": "Ignore entity for duration",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.can_attack",
      "namespace": "combat",
      "name": "can_attack",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.combat.can_attack()",
      "summary": "Check if attack cooldown is ready",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.combat.clear_camera_lock",
      "namespace": "combat",
      "name": "clear_camera_lock",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.combat.clear_camera_lock()",
      "summary": "Release camera lock",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.combat.distance_to",
      "namespace": "combat",
      "name": "distance_to",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.combat.distance_to(entity_table)",
      "summary": "Euclidean distance to entity",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.engage",
      "namespace": "combat",
      "name": "engage",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.combat.engage(options)",
      "summary": "Single-target combat (Lua provides entity)",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.combat.find_boss",
      "namespace": "combat",
      "name": "find_boss",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.combat.find_boss({type = \"wolf\", boss_name = \"Sven Packmaster\", require_ownership = true})",
      "summary": "Find Boss",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.find_target",
      "namespace": "combat",
      "name": "find_target",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.combat.find_target({type = \"wolf\", priority = \"nearest\", radius = 30})",
      "summary": "Find Target",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.get_targets",
      "namespace": "combat",
      "name": "get_targets",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.combat.get_targets(distance)",
      "summary": "Get entities within distance",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.has_los",
      "namespace": "combat",
      "name": "has_los",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.combat.has_los(entity_table)",
      "summary": "Check LOS to entity (lenient, any ray)",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.has_los_strict",
      "namespace": "combat",
      "name": "has_los_strict",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.combat.has_los_strict(entity_table)",
      "summary": "Strict LOS (3+ rays must pass)",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.has_target",
      "namespace": "combat",
      "name": "has_target",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.combat.has_target()",
      "summary": "Check if we have a valid target",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.hunt",
      "namespace": "combat",
      "name": "hunt",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.combat.hunt(options)",
      "summary": "Hunt mode",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.in_range",
      "namespace": "combat",
      "name": "in_range",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.combat.in_range(entity_table, range)",
      "summary": "Check if entity is in attack range",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.combat.is_active",
      "namespace": "combat",
      "name": "is_active",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.combat.is_active()",
      "summary": "Check if combat is running",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.is_alive",
      "namespace": "combat",
      "name": "is_alive",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.combat.is_alive(entity_table)",
      "summary": "Check if entity exists and has health > 0",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.is_async_active",
      "namespace": "combat",
      "name": "is_async_active",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.combat.is_async_active()",
      "summary": "Check if async combat is running",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.is_blacklisted",
      "namespace": "combat",
      "name": "is_blacklisted",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.combat.is_blacklisted(entity_table)",
      "summary": "Check if entity is blacklisted",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.is_pursuing",
      "namespace": "combat",
      "name": "is_pursuing",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.combat.is_pursuing()",
      "summary": "Check if pursuing",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.is_valid",
      "namespace": "combat",
      "name": "is_valid",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.combat.is_valid(entity_table)",
      "summary": "Check if entity is still valid",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.pursue",
      "namespace": "combat",
      "name": "pursue",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.combat.pursue(entity_table)",
      "summary": "Start non-blocking pursuit",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.combat.pursue_stop",
      "namespace": "combat",
      "name": "pursue_stop",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.combat.pursue_stop()",
      "summary": "Stop pursuit",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.combat.pursuit_distance",
      "namespace": "combat",
      "name": "pursuit_distance",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.combat.pursuit_distance()",
      "summary": "Get distance to target",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.pursuit_tick",
      "namespace": "combat",
      "name": "pursuit_tick",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.combat.pursuit_tick()",
      "summary": "Update pursuit (call every frame)",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.combat.set_behavior",
      "namespace": "combat",
      "name": "set_behavior",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.combat.set_behavior(\"strafe\")",
      "summary": "Set movement behavior",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.combat.set_camera_lock",
      "namespace": "combat",
      "name": "set_camera_lock",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.combat.set_camera_lock(entity_table)",
      "summary": "Lock camera on target",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.combat.set_kite_range",
      "namespace": "combat",
      "name": "set_kite_range",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.combat.set_kite_range(min, optimal, max)",
      "summary": "Configure kiting distances",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.set_target",
      "namespace": "combat",
      "name": "set_target",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.combat.set_target(entity_table)",
      "summary": "Set current target for async combat Entity table should have: {x, y, z, type, name, id} from get_nearby_entities",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.start",
      "namespace": "combat",
      "name": "start",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.combat.start(...)",
      "summary": "Start",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.combat.start_async",
      "namespace": "combat",
      "name": "start_async",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.combat.start_async({cps = 7, tracking_speed = 2.5})",
      "summary": "call tick() every frame",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.stop",
      "namespace": "combat",
      "name": "stop",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.combat.stop()",
      "summary": "Stop combat",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.combat.stop_async",
      "namespace": "combat",
      "name": "stop_async",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.combat.stop_async()",
      "summary": "Stop async combat and release camera",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.combat.swing",
      "namespace": "combat",
      "name": "swing",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.combat.swing()",
      "summary": "Swing weapon (single attack)",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.conditions.always",
      "namespace": "conditions",
      "name": "always",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.conditions.always()",
      "summary": "Always true (useful for testing)",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.conditions.distance_from_marked",
      "namespace": "conditions",
      "name": "distance_from_marked",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.conditions.distance_from_marked(operator, value)",
      "summary": "Distance from marked pos",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.conditions.entity_within",
      "namespace": "conditions",
      "name": "entity_within",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.conditions.entity_within(distance, duration)",
      "summary": "Entity within range for duration seconds",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.conditions.gui_closed",
      "namespace": "conditions",
      "name": "gui_closed",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.conditions.gui_closed(title_pattern)",
      "summary": "GUI is closed",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.conditions.gui_open",
      "namespace": "conditions",
      "name": "gui_open",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.conditions.gui_open(title_pattern)",
      "summary": "GUI with title is open",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.conditions.inventory_full",
      "namespace": "conditions",
      "name": "inventory_full",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.conditions.inventory_full()",
      "summary": "Inventory is full",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.conditions.mob_within",
      "namespace": "conditions",
      "name": "mob_within",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.conditions.mob_within(distance, duration)",
      "summary": "Mob within range for duration seconds",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.conditions.no_players_nearby",
      "namespace": "conditions",
      "name": "no_players_nearby",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.conditions.no_players_nearby(distance)",
      "summary": "No players within distance",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.conditions.player_health",
      "namespace": "conditions",
      "name": "player_health",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.conditions.player_health(operator, value)",
      "summary": "Health check operator: \"lt\", \"gt\", \"eq\", \"le\", \"ge\"",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.conditions.player_nearby",
      "namespace": "conditions",
      "name": "player_nearby",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.conditions.player_nearby(distance)",
      "summary": "Any player within distance",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.conditions.player_sneaking",
      "namespace": "conditions",
      "name": "player_sneaking",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.conditions.player_sneaking(distance)",
      "summary": "Player is sneaking nearby",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.conditions.player_visible",
      "namespace": "conditions",
      "name": "player_visible",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.conditions.player_visible(distance, duration)",
      "summary": "Player visible for duration seconds",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.conditions.player_within",
      "namespace": "conditions",
      "name": "player_within",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.conditions.player_within(distance, duration)",
      "summary": "Player lingering for duration seconds",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.conditions.player_y",
      "namespace": "conditions",
      "name": "player_y",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.conditions.player_y(operator, value)",
      "summary": "Y coordinate check",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.conditions.random",
      "namespace": "conditions",
      "name": "random",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.conditions.random(chance)",
      "summary": "Random chance (0.0 to 1.0)",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.conditions.tablist_contains",
      "namespace": "conditions",
      "name": "tablist_contains",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.conditions.tablist_contains(pattern)",
      "summary": "Tablist has matching entry",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.config",
      "namespace": "config",
      "name": "__call",
      "kind": "callable-table",
      "arity": "varargs",
      "signature": "hexis.config(definition)",
      "summary": "Define user-editable script settings",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.config.dropdown",
      "namespace": "config",
      "name": "dropdown",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.config.dropdown(label, options, default)",
      "summary": "Dropdown",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.config.item_selector",
      "namespace": "config",
      "name": "item_selector",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.config.item_selector(label, items, default)",
      "summary": "Item Selector",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.config.route",
      "namespace": "config",
      "name": "route",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.config.route(label, default)",
      "summary": "Route",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.config.slider",
      "namespace": "config",
      "name": "slider",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.config.slider(label, min, max, default, step)",
      "summary": "Slider",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.config.stepper",
      "namespace": "config",
      "name": "stepper",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.config.stepper(label, min, max, default, step)",
      "summary": "Stepper",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.config.text_input",
      "namespace": "config",
      "name": "text_input",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.config.text_input(label, default, placeholder)",
      "summary": "Text Input",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.config.toggle",
      "namespace": "config",
      "name": "toggle",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.config.toggle(label, default)",
      "summary": "Toggle",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.notify",
      "namespace": "core",
      "name": "notify",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.notify(message)",
      "summary": "Show a Hexis notification",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.wait",
      "namespace": "core",
      "name": "wait",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.wait(seconds)",
      "summary": "Pause script execution for a duration",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.events.after",
      "namespace": "events",
      "name": "after",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.events.after(seconds, callback)",
      "summary": "One-time delayed event",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.events.clear",
      "namespace": "events",
      "name": "clear",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.events.clear()",
      "summary": "Remove all event listeners",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.events.every",
      "namespace": "events",
      "name": "every",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.events.every(seconds, callback)",
      "summary": "Timer event",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.events.on",
      "namespace": "events",
      "name": "on",
      "kind": "function",
      "arity": 3,
      "signature": "hexis.events.on(type, pattern, callback)",
      "summary": "Register event listener",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.events.remove",
      "namespace": "events",
      "name": "remove",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.events.remove(id)",
      "summary": "Remove event listener",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.format.coins",
      "namespace": "format",
      "name": "coins",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.format.coins(n)",
      "summary": "Alias for number (explicit abbreviation)",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.format.duration",
      "namespace": "format",
      "name": "duration",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.format.duration(seconds)",
      "summary": "Format seconds to \"1h 23m 45s\"",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.format.number",
      "namespace": "format",
      "name": "number",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.format.number(n)",
      "summary": "Format number with abbreviations (k/m/b) like YAML's | coins",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.format.percent",
      "namespace": "format",
      "name": "percent",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.format.percent(n)",
      "summary": "Format as percentage",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.format.raw",
      "namespace": "format",
      "name": "raw",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.format.raw(n)",
      "summary": "Format number with commas (no abbreviation)",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.gui.click",
      "namespace": "gui",
      "name": "click",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.gui.click(slot)",
      "summary": "Click a slot",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.gui.click_item",
      "namespace": "gui",
      "name": "click_item",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.gui.click_item(options)",
      "summary": "Find and click item",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.gui.click_item_by_lore",
      "namespace": "gui",
      "name": "click_item_by_lore",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.gui.click_item_by_lore(pattern)",
      "summary": "Find and click item by lore",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.gui.close",
      "namespace": "gui",
      "name": "close",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.gui.close()",
      "summary": "Close current GUI (delegates to gui_close command)",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.gui.debug",
      "namespace": "gui",
      "name": "debug",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.gui.debug()",
      "summary": "Debug GUI info",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.gui.find",
      "namespace": "gui",
      "name": "find",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.gui.find(pattern)",
      "summary": "Find item in GUI",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.gui.find_by_relation",
      "namespace": "gui",
      "name": "find_by_relation",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.gui.find_by_relation(options)",
      "summary": "Find item by position relation",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.gui.get_container_size",
      "namespace": "gui",
      "name": "get_container_size",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.gui.get_container_size()",
      "summary": "Returns number of container slots (excludes player inv)",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.gui.get_hovered_item",
      "namespace": "gui",
      "name": "get_hovered_item",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.gui.get_hovered_item()",
      "summary": "Get item under cursor (moved from actions)",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.gui.get_slot_info",
      "namespace": "gui",
      "name": "get_slot_info",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.gui.get_slot_info(slot)",
      "summary": "Returns a Lua table with full slot details",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.gui.get_slots",
      "namespace": "gui",
      "name": "get_slots",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.gui.get_slots(from, to)",
      "summary": "Bulk scan returning array of slot info tables",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.gui.get_title",
      "namespace": "gui",
      "name": "get_title",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.gui.get_title()",
      "summary": "Get current GUI title",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.gui.has_title",
      "namespace": "gui",
      "name": "has_title",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.gui.has_title(pattern)",
      "summary": "Check if current GUI title contains pattern",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.gui.is_open",
      "namespace": "gui",
      "name": "is_open",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.gui.is_open()",
      "summary": "Check if any GUI is open",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.gui.open",
      "namespace": "gui",
      "name": "open",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.gui.open()",
      "summary": "Open inventory",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.gui.poll_slot_changes",
      "namespace": "gui",
      "name": "poll_slot_changes",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.gui.poll_slot_changes()",
      "summary": "Returns array of {slot, type, name, has_foil} changes",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.gui.safe_mode",
      "namespace": "gui",
      "name": "safe_mode",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.gui.safe_mode()",
      "summary": "STOP ALL activity before GUI interaction CRITICAL: Call this before ANY GUI operation to ensure player is completely still",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.gui.stop_watching",
      "namespace": "gui",
      "name": "stop_watching",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.gui.stop_watching()",
      "summary": "Stop the slot watcher",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.gui.switch_hotbar",
      "namespace": "gui",
      "name": "switch_hotbar",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.gui.switch_hotbar(slot)",
      "summary": "Switch hotbar slot",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.gui.wait_for",
      "namespace": "gui",
      "name": "wait_for",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.gui.wait_for(title, timeout)",
      "summary": "Wait for GUI",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.gui.watch_slots",
      "namespace": "gui",
      "name": "watch_slots",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.gui.watch_slots(slot_ids_table)",
      "summary": "Start watching slots on main thread for changes",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.http.get",
      "namespace": "http",
      "name": "get",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.http.get(...)",
      "summary": "Get",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.hud.add_state",
      "namespace": "hud",
      "name": "add_state",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.hud.add_state(name, config)",
      "summary": "Add a HUD state",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.hud.create",
      "namespace": "hud",
      "name": "create",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.hud.create(config)",
      "summary": "Initialize HUD with config",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.hud.hide",
      "namespace": "hud",
      "name": "hide",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.hud.hide()",
      "summary": "Hide the HUD",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.hud.is_visible",
      "namespace": "hud",
      "name": "is_visible",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.hud.is_visible()",
      "summary": "Check if HUD is visible",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.hud.set",
      "namespace": "hud",
      "name": "set",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.hud.set(config)",
      "summary": "Simple HUD definition (updates on each call)",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.hud.set_state",
      "namespace": "hud",
      "name": "set_state",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.hud.set_state(name)",
      "summary": "Switch to a HUD state (triggers animation)",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.hud.set_var",
      "namespace": "hud",
      "name": "set_var",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.hud.set_var(name, value)",
      "summary": "Set a variable for interpolation",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.hud.show",
      "namespace": "hud",
      "name": "show",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.hud.show()",
      "summary": "Show the HUD",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.hud.start_timer",
      "namespace": "hud",
      "name": "start_timer",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.hud.start_timer()",
      "summary": "Start the session timer",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.hud.stop_timer",
      "namespace": "hud",
      "name": "stop_timer",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.hud.stop_timer()",
      "summary": "Stop the session timer",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.input.is_key_just_pressed",
      "namespace": "input",
      "name": "is_key_just_pressed",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.input.is_key_just_pressed(key)",
      "summary": "Check if key was just pressed this frame",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.input.is_key_pressed",
      "namespace": "input",
      "name": "is_key_pressed",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.input.is_key_pressed(key)",
      "summary": "Check if key is currently pressed",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.inventory.close",
      "namespace": "inventory",
      "name": "close",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.inventory.close()",
      "summary": "close current GUI (delegates to gui_close command)",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.inventory.contains",
      "namespace": "inventory",
      "name": "contains",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.inventory.contains(pattern)",
      "summary": "check if hotbar contains item",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.inventory.count_items",
      "namespace": "inventory",
      "name": "count_items",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.inventory.count_items(pattern)",
      "summary": "count total items matching pattern across entire inventory",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.inventory.find_slot",
      "namespace": "inventory",
      "name": "find_slot",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.inventory.find_slot(pattern)",
      "summary": "find hotbar slot matching pattern",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.inventory.get_hotbar_items",
      "namespace": "inventory",
      "name": "get_hotbar_items",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.inventory.get_hotbar_items()",
      "summary": "get all hotbar item names",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.inventory.held_item",
      "namespace": "inventory",
      "name": "held_item",
      "kind": "property",
      "arity": null,
      "signature": "hexis.inventory.held_item",
      "summary": "Held Item",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.inventory.held_slot",
      "namespace": "inventory",
      "name": "held_slot",
      "kind": "property",
      "arity": null,
      "signature": "hexis.inventory.held_slot",
      "summary": "Held Slot",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.inventory.is_full",
      "namespace": "inventory",
      "name": "is_full",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.inventory.is_full()",
      "summary": "check if inventory is full (moved from conditions)",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.inventory.open",
      "namespace": "inventory",
      "name": "open",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.inventory.open()",
      "summary": "open player inventory",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.inventory.select_slot",
      "namespace": "inventory",
      "name": "select_slot",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.inventory.select_slot(n)",
      "summary": "select hotbar slot (moved from world.select_hotbar_slot)",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.log.debug",
      "namespace": "log",
      "name": "debug",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.log.debug(message)",
      "summary": "Debug",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.log.error",
      "namespace": "log",
      "name": "error",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.log.error(message)",
      "summary": "Error",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.log.info",
      "namespace": "log",
      "name": "info",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.log.info(message)",
      "summary": "Info",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.log.warn",
      "namespace": "log",
      "name": "warn",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.log.warn(message)",
      "summary": "Warn",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.mining.aim_tick",
      "namespace": "mining",
      "name": "aim_tick",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.mining.aim_tick()",
      "summary": "Perform one frame of aiming toward async mining target.",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.break_block",
      "namespace": "mining",
      "name": "break_block",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.mining.break_block({x, y, z, aim_speed, highlight})",
      "summary": "Break Block",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.cancel_precomputation",
      "namespace": "mining",
      "name": "cancel_precomputation",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.mining.cancel_precomputation()",
      "summary": "Cancel any ongoing precomputation",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.check_current_reach",
      "namespace": "mining",
      "name": "check_current_reach",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.mining.check_current_reach({x, y, z})",
      "summary": "Quick check if we can reach block now Returns vantage point info for current position, or nil if not reachable",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.check_reach",
      "namespace": "mining",
      "name": "check_reach",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.mining.check_reach(arg1)",
      "summary": "Pre-filter unreachable blocks before mining - Custom reach scoring algorithms - Cache reach data for batch optimization - Filter by score threshold (e.g., only mine blocks with score > 0.7). IMPORTANT: Results are from CURRENT player position - cache invalidates when player moves!",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.mining.end_session",
      "namespace": "mining",
      "name": "end_session",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.mining.end_session()",
      "summary": "End multi-block mining session, release everything",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.mining.find_ground_vantage_points",
      "namespace": "mining",
      "name": "find_ground_vantage_points",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.mining.find_ground_vantage_points({x, y, z, search_radius})",
      "summary": "Find GROUND-LEVEL positions for mining overhead blocks. Only returns positions at/below player Y that can jump-reach the target.",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.find_immediate_target",
      "namespace": "mining",
      "name": "find_immediate_target",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.mining.find_immediate_target({candidates = {{x,y,z}, ...}, last_mined = {x,y,z}})",
      "summary": "Find Immediate Target",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.find_nearest_reachable",
      "namespace": "mining",
      "name": "find_nearest_reachable",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.mining.find_nearest_reachable(...)",
      "summary": "Find Nearest Reachable",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.find_vantage_points",
      "namespace": "mining",
      "name": "find_vantage_points",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.mining.find_vantage_points({x, y, z, search_radius})",
      "summary": "Find positions to mine from Returns array of vantage points sorted by quality",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.get_aim_point",
      "namespace": "mining",
      "name": "get_aim_point",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.mining.get_aim_point(x, y, z)",
      "summary": "Get optimal aim angles",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.get_all_aim_points",
      "namespace": "mining",
      "name": "get_all_aim_points",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.mining.get_all_aim_points({x, y, z})",
      "summary": "Get all visible aim points on block Returns array of {x, y, z} for retry logic",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.get_blocks_mined",
      "namespace": "mining",
      "name": "get_blocks_mined",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.mining.get_blocks_mined()",
      "summary": "Get count of blocks mined in current loop",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.mining.get_crosshair_target",
      "namespace": "mining",
      "name": "get_crosshair_target",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.mining.get_crosshair_target()",
      "summary": "Get the block the crosshair is currently targeting Returns {x, y, z, side} table or nil if not targeting a block CRITICAL:",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.get_distance",
      "namespace": "mining",
      "name": "get_distance",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.mining.get_distance(x, y, z)",
      "summary": "Get distance to block",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.get_mining_progress",
      "namespace": "mining",
      "name": "get_mining_progress",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.mining.get_mining_progress()",
      "summary": "Get Mining Progress",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.get_precomputed_target",
      "namespace": "mining",
      "name": "get_precomputed_target",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.mining.get_precomputed_target()",
      "summary": "Get and clear the precomputed next target Returns table with target info or nil if not ready",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.get_smart_aim_point",
      "namespace": "mining",
      "name": "get_smart_aim_point",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.mining.get_smart_aim_point({x, y, z})",
      "summary": "Get best visible point on block Returns {x, y, z} aim coordinates (may be off-center!) or nil if no visible point",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.has_line_of_sight",
      "namespace": "mining",
      "name": "has_line_of_sight",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.mining.has_line_of_sight(x, y, z)",
      "summary": "Has Line Of Sight",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.mining.is_block_obstructed",
      "namespace": "mining",
      "name": "is_block_obstructed",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.mining.is_block_obstructed(x, y, z)",
      "summary": "Is Block Obstructed",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.mining.is_block_reachable",
      "namespace": "mining",
      "name": "is_block_reachable",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.mining.is_block_reachable({x, y, z})",
      "summary": "Quick check if block can be reached from anywhere Returns true if at least one good vantage point exists",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.is_breakable",
      "namespace": "mining",
      "name": "is_breakable",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.mining.is_breakable(x, y, z)",
      "summary": "Check if block can be broken",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.is_entity_obstructing",
      "namespace": "mining",
      "name": "is_entity_obstructing",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.mining.is_entity_obstructing()",
      "summary": "Is Entity Obstructing",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.is_loop_active",
      "namespace": "mining",
      "name": "is_loop_active",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.mining.is_loop_active()",
      "summary": "Check if mining loop is running",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.is_mining",
      "namespace": "mining",
      "name": "is_mining",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.mining.is_mining()",
      "summary": "Check if currently mining",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.is_mining_async",
      "namespace": "mining",
      "name": "is_mining_async",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.mining.is_mining_async()",
      "summary": "Check if async mining is active",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.is_precomputing",
      "namespace": "mining",
      "name": "is_precomputing",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.mining.is_precomputing()",
      "summary": "Check if precomputation is running",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.is_session_jump_active",
      "namespace": "mining",
      "name": "is_session_jump_active",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.mining.is_session_jump_active()",
      "summary": "Check if session jump is currently active",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.is_targeting_block",
      "namespace": "mining",
      "name": "is_targeting_block",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.mining.is_targeting_block(x, y, z)",
      "summary": "Check if crosshair is targeting specific block Returns true if the crosshair is currently aimed at the specified block",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.mine_block",
      "namespace": "mining",
      "name": "mine_block",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.mining.mine_block(arg1)",
      "summary": "Mine Block",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.mining.mine_nearest",
      "namespace": "mining",
      "name": "mine_nearest",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.mining.mine_nearest(arg1)",
      "summary": "Mine Nearest",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.mining.peek_precomputed_target",
      "namespace": "mining",
      "name": "peek_precomputed_target",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.mining.peek_precomputed_target()",
      "summary": "Peek at precomputed target without clearing Useful for visual highlighting of next target",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.precompute_next_target",
      "namespace": "mining",
      "name": "precompute_next_target",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.mining.precompute_next_target({current = {x,y,z}, candidates = {{x,y,z}, ...}})",
      "summary": "by the time you finish, the next target is ready.",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.recalculate_aim",
      "namespace": "mining",
      "name": "recalculate_aim",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.mining.recalculate_aim({x, y, z})",
      "summary": "Re-run aim point calculation from current eye position",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.select_target_smart",
      "namespace": "mining",
      "name": "select_target_smart",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.mining.select_target_smart(arg1)",
      "summary": "Select Target Smart",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.set_session_jump",
      "namespace": "mining",
      "name": "set_session_jump",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.mining.set_session_jump(true/false)",
      "summary": "Enable/disable continuous jump during mining session When enabled, jump is held across multiple mine_block calls until disabled or session ends",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.mining.start_loop",
      "namespace": "mining",
      "name": "start_loop",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.mining.start_loop(options)",
      "summary": "Start async mining loop",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.start_mining_async",
      "namespace": "mining",
      "name": "start_mining_async",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.mining.start_mining_async({x, y, z, aim_speed})",
      "summary": "Start mining a block (non-blocking). Lua must poll aim_tick() and call stop_mining_async when done.",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.start_mining_smart",
      "namespace": "mining",
      "name": "start_mining_smart",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.mining.start_mining_smart({x, y, z, aim_speed})",
      "summary": "Start async mining with smart aim Uses SmartAimPointFinder to target visible part of block Same as start_mining_async but auto-finds best aim point",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.start_session",
      "namespace": "mining",
      "name": "start_session",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.mining.start_session()",
      "summary": "Begin multi-block mining session",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.mining.stop",
      "namespace": "mining",
      "name": "stop",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.mining.stop()",
      "summary": "Stop current mining",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.stop_loop",
      "namespace": "mining",
      "name": "stop_loop",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.mining.stop_loop()",
      "summary": "Stop async mining loop",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.mining.stop_mining_async",
      "namespace": "mining",
      "name": "stop_mining_async",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.mining.stop_mining_async()",
      "summary": "Stop non-blocking mining",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.movement.get_owner",
      "namespace": "movement",
      "name": "get_owner",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.movement.get_owner()",
      "summary": "Get current control owner",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.movement.get_state",
      "namespace": "movement",
      "name": "get_state",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.movement.get_state()",
      "summary": "Get current movement state",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.movement.is_controlled",
      "namespace": "movement",
      "name": "is_controlled",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.movement.is_controlled()",
      "summary": "Check if we have movement control",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.movement.release_control",
      "namespace": "movement",
      "name": "release_control",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.movement.release_control()",
      "summary": "Release movement control",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.movement.set_allow_jumping",
      "namespace": "movement",
      "name": "set_allow_jumping",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.movement.set_allow_jumping(allow)",
      "summary": "Set Allow Jumping",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.movement.set_allow_sprinting",
      "namespace": "movement",
      "name": "set_allow_sprinting",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.movement.set_allow_sprinting(allow)",
      "summary": "Set Allow Sprinting",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.movement.set_backward",
      "namespace": "movement",
      "name": "set_backward",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.movement.set_backward(pressed)",
      "summary": "Set Backward",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.movement.set_forward",
      "namespace": "movement",
      "name": "set_forward",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.movement.set_forward(pressed)",
      "summary": "Set Forward",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.movement.set_state",
      "namespace": "movement",
      "name": "set_state",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.movement.set_state({forward, backward, strafe, sprint, jump, sneak})",
      "summary": "Set State",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.movement.set_strafe_intensity",
      "namespace": "movement",
      "name": "set_strafe_intensity",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.movement.set_strafe_intensity(intensity)",
      "summary": "Set Strafe Intensity",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.movement.set_strafe_left",
      "namespace": "movement",
      "name": "set_strafe_left",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.movement.set_strafe_left(pressed)",
      "summary": "Set Strafe Left",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.movement.set_strafe_right",
      "namespace": "movement",
      "name": "set_strafe_right",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.movement.set_strafe_right(pressed)",
      "summary": "Set Strafe Right",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.movement.set_tap_mode",
      "namespace": "movement",
      "name": "set_tap_mode",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.movement.set_tap_mode(enabled)",
      "summary": "Enable precision approach mode",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.movement.stop",
      "namespace": "movement",
      "name": "stop",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.movement.stop()",
      "summary": "Stop all movement immediately",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.movement.take_control",
      "namespace": "movement",
      "name": "take_control",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.movement.take_control(owner_name)",
      "summary": "Take exclusive control of movement",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.navigate.arrived",
      "namespace": "navigate",
      "name": "arrived",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.navigate.arrived()",
      "summary": "Check if navigation completed",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.navigate.blacklist",
      "namespace": "navigate",
      "name": "blacklist",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.navigate.blacklist({x, y, z})",
      "summary": "Manually blacklist a position",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.navigate.check_location",
      "namespace": "navigate",
      "name": "check_location",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.navigate.check_location(location)",
      "summary": "Check if at location",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.navigate.clear_blacklist",
      "namespace": "navigate",
      "name": "clear_blacklist",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.navigate.clear_blacklist({x, y, z})",
      "summary": "Remove a position from blacklist",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.navigate.clear_camera_lock",
      "namespace": "navigate",
      "name": "clear_camera_lock",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.navigate.clear_camera_lock()",
      "summary": "Clear Camera Lock",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.navigate.drop",
      "namespace": "navigate",
      "name": "drop",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.navigate.drop()",
      "summary": "Drop down from current location",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.navigate.etherwarp",
      "namespace": "navigate",
      "name": "etherwarp",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.navigate.etherwarp(location)",
      "summary": "Teleport using etherwarp",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.navigate.find_ground_position",
      "namespace": "navigate",
      "name": "find_ground_position",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.navigate.find_ground_position(arg1)",
      "summary": "Find Ground Position",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.navigate.get_blacklist_count",
      "namespace": "navigate",
      "name": "get_blacklist_count",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.navigate.get_blacklist_count()",
      "summary": "Get count of blacklisted positions",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.navigate.get_wasd_stuck_reason",
      "namespace": "navigate",
      "name": "get_wasd_stuck_reason",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.navigate.get_wasd_stuck_reason()",
      "summary": "Get reason WASD mode got stuck (resets after read)",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.navigate.get_water_surface_y",
      "namespace": "navigate",
      "name": "get_water_surface_y",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.navigate.get_water_surface_y(x, z)",
      "summary": "Get Y level of water surface at position",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.navigate.has_camera_lock",
      "namespace": "navigate",
      "name": "has_camera_lock",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.navigate.has_camera_lock()",
      "summary": "Has Camera Lock",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.navigate.is_blacklisted",
      "namespace": "navigate",
      "name": "is_blacklisted",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.navigate.is_blacklisted({x, y, z})",
      "summary": "Check if a position is blacklisted",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.navigate.is_in_water",
      "namespace": "navigate",
      "name": "is_in_water",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.navigate.is_in_water()",
      "summary": "Check if player is currently in water",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.navigate.is_navigating",
      "namespace": "navigate",
      "name": "is_navigating",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.navigate.is_navigating()",
      "summary": "Check if currently navigating",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.navigate.is_swim_navigating",
      "namespace": "navigate",
      "name": "is_swim_navigating",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.navigate.is_swim_navigating()",
      "summary": "Check if currently swim navigating",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.navigate.is_swimming",
      "namespace": "navigate",
      "name": "is_swimming",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.navigate.is_swimming()",
      "summary": "Check if player is in swim mode",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.navigate.is_underwater",
      "namespace": "navigate",
      "name": "is_underwater",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.navigate.is_underwater({x, y, z})",
      "summary": "Check if a position is underwater",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.navigate.near",
      "namespace": "navigate",
      "name": "near",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.navigate.near({x, y, z, range, min_range})",
      "summary": "Near",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.navigate.set_camera_lock",
      "namespace": "navigate",
      "name": "set_camera_lock",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.navigate.set_camera_lock(...)",
      "summary": "navigation uses strafe only.",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.navigate.smart_etherwarp",
      "namespace": "navigate",
      "name": "smart_etherwarp",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.navigate.smart_etherwarp(options)",
      "summary": "Smart etherwarp with LOS check",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.navigate.start_async",
      "namespace": "navigate",
      "name": "start_async",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.navigate.start_async({x, y, z, distance, max_nodes, max_time_ms})",
      "summary": "Start navigation (path compute is synchronous). Returns immediately after pathfinding starts.",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.navigate.stop",
      "namespace": "navigate",
      "name": "stop",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.navigate.stop()",
      "summary": "Stop navigation",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.navigate.swim_to",
      "namespace": "navigate",
      "name": "swim_to",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.navigate.swim_to({x, y, z, max_nodes, heuristic_weight})",
      "summary": "Swim To",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.navigate.to",
      "namespace": "navigate",
      "name": "to",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.navigate.to(location)",
      "summary": "Navigate to a location",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.player.attack",
      "namespace": "player",
      "name": "attack",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.player.attack(opts?)",
      "summary": "Attack",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.can_reach_block",
      "namespace": "player",
      "name": "can_reach_block",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.player.can_reach_block({x, y, z})",
      "summary": "Check if block is within mining range Returns true if block is within 4.5 blocks and has line of sight",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.distance_to",
      "namespace": "player",
      "name": "distance_to",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.player.distance_to({x, y, z})",
      "summary": "Get 3D distance to position",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.player.drop_item",
      "namespace": "player",
      "name": "drop_item",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.player.drop_item()",
      "summary": "drop current held item",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.equip",
      "namespace": "player",
      "name": "equip",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.player.equip(...)",
      "summary": "Equip",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.player.find_hotbar_slot",
      "namespace": "player",
      "name": "find_hotbar_slot",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.player.find_hotbar_slot(pattern)",
      "summary": "find slot with item matching pattern (-1 if not found)",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.get_air_control_factor",
      "namespace": "player",
      "name": "get_air_control_factor",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.player.get_air_control_factor()",
      "summary": "Get air control effectiveness (0.0-1.0). Returns multiplier for strafe effectiveness when airborne With high Jump Boost, this can be as low as 0.05 (5%)",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.get_effect",
      "namespace": "player",
      "name": "get_effect",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.player.get_effect(name)",
      "summary": "Get info about an active potion effect Returns table {active, level, amplifier, duration, ambient} or nil if not active",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.player.get_hotbar_items",
      "namespace": "player",
      "name": "get_hotbar_items",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.player.get_hotbar_items()",
      "summary": "get table of all hotbar item names",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.get_jump_boost_level",
      "namespace": "player",
      "name": "get_jump_boost_level",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.player.get_jump_boost_level()",
      "summary": "Get jump boost level (0 = none, 1-5 = Jump Boost I-V)",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.get_max_jump_height",
      "namespace": "player",
      "name": "get_max_jump_height",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.player.get_max_jump_height()",
      "summary": "Get max jump height in blocks Takes into account Jump Boost effect",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.get_nearest",
      "namespace": "player",
      "name": "get_nearest",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.player.get_nearest()",
      "summary": "returns name of nearest player",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.player.health",
      "namespace": "player",
      "name": "health",
      "kind": "property",
      "arity": null,
      "signature": "hexis.player.health",
      "summary": "Health",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.health_percent",
      "namespace": "player",
      "name": "health_percent",
      "kind": "property",
      "arity": null,
      "signature": "hexis.player.health_percent",
      "summary": "Health Percent",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.player.held_item",
      "namespace": "player",
      "name": "held_item",
      "kind": "property",
      "arity": null,
      "signature": "hexis.player.held_item",
      "summary": "Held Item",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.held_slot",
      "namespace": "player",
      "name": "held_slot",
      "kind": "property",
      "arity": null,
      "signature": "hexis.player.held_slot",
      "summary": "Held Slot",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.horizontal_distance",
      "namespace": "player",
      "name": "horizontal_distance",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.player.horizontal_distance(location)",
      "summary": "returns horizontal distance to location",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.player.hotbar_contains",
      "namespace": "player",
      "name": "hotbar_contains",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.player.hotbar_contains(pattern)",
      "summary": "check if item matching pattern is in hotbar",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.hunger",
      "namespace": "player",
      "name": "hunger",
      "kind": "property",
      "arity": null,
      "signature": "hexis.player.hunger",
      "summary": "Hunger",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.interact_block",
      "namespace": "player",
      "name": "interact_block",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.player.interact_block(pos, opts)",
      "summary": "right-click a specific block Looks at block center first, then sends use-item-on interaction",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.player.interact_entity",
      "namespace": "player",
      "name": "interact_entity",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.player.interact_entity(...)",
      "summary": "Interact Entity",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.is_flying",
      "namespace": "player",
      "name": "is_flying",
      "kind": "property",
      "arity": null,
      "signature": "hexis.player.is_flying",
      "summary": "Is Flying",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.is_on_ground",
      "namespace": "player",
      "name": "is_on_ground",
      "kind": "property",
      "arity": null,
      "signature": "hexis.player.is_on_ground",
      "summary": "Is On Ground",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.is_rotation_locked",
      "namespace": "player",
      "name": "is_rotation_locked",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.player.is_rotation_locked()",
      "summary": "Is Rotation Locked",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.is_sneaking",
      "namespace": "player",
      "name": "is_sneaking",
      "kind": "property",
      "arity": null,
      "signature": "hexis.player.is_sneaking",
      "summary": "Is Sneaking",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.is_sprinting",
      "namespace": "player",
      "name": "is_sprinting",
      "kind": "property",
      "arity": null,
      "signature": "hexis.player.is_sprinting",
      "summary": "Is Sprinting",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.jump",
      "namespace": "player",
      "name": "jump",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.player.jump(opts?)",
      "summary": "Jump",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.player.look_at",
      "namespace": "player",
      "name": "look_at",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.player.look_at(target, opts?)",
      "summary": "Look At",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.player.max_health",
      "namespace": "player",
      "name": "max_health",
      "kind": "property",
      "arity": null,
      "signature": "hexis.player.max_health",
      "summary": "Max Health",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.name",
      "namespace": "player",
      "name": "name",
      "kind": "property",
      "arity": null,
      "signature": "hexis.player.name",
      "summary": "Name",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.player.pitch",
      "namespace": "player",
      "name": "pitch",
      "kind": "property",
      "arity": null,
      "signature": "hexis.player.pitch",
      "summary": "Pitch",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.player.position",
      "namespace": "player",
      "name": "position",
      "kind": "property",
      "arity": null,
      "signature": "hexis.player.position",
      "summary": "Position",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.player.raycast",
      "namespace": "player",
      "name": "raycast",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.player.raycast(distance)",
      "summary": "Raycast",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.sneak",
      "namespace": "player",
      "name": "sneak",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.player.sneak(opts?)",
      "summary": "Sneak",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.player.sprint",
      "namespace": "player",
      "name": "sprint",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.player.sprint(enabled)",
      "summary": "Sprint",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.swing_hand",
      "namespace": "player",
      "name": "swing_hand",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.player.swing_hand()",
      "summary": "Swing Hand",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.player.use_item",
      "namespace": "player",
      "name": "use_item",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.player.use_item(opts?)",
      "summary": "Use Item",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.player.x",
      "namespace": "player",
      "name": "x",
      "kind": "property",
      "arity": null,
      "signature": "hexis.player.x",
      "summary": "X",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.player.y",
      "namespace": "player",
      "name": "y",
      "kind": "property",
      "arity": null,
      "signature": "hexis.player.y",
      "summary": "Y",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.player.yaw",
      "namespace": "player",
      "name": "yaw",
      "kind": "property",
      "arity": null,
      "signature": "hexis.player.yaw",
      "summary": "Yaw",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.player.z",
      "namespace": "player",
      "name": "z",
      "kind": "property",
      "arity": null,
      "signature": "hexis.player.z",
      "summary": "Z",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "route:get_available_block_count",
      "namespace": "route-handle",
      "name": "get_available_block_count",
      "kind": "handle-method",
      "arity": 0,
      "signature": "route:get_available_block_count()",
      "summary": "Get Available Block Count",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "route:get_blocks",
      "namespace": "route-handle",
      "name": "get_blocks",
      "kind": "handle-method",
      "arity": 0,
      "signature": "route:get_blocks()",
      "summary": "Get Blocks",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "route:get_group_for_zone",
      "namespace": "route-handle",
      "name": "get_group_for_zone",
      "kind": "handle-method",
      "arity": "varargs",
      "signature": "route:get_group_for_zone(...)",
      "summary": "Get Group For Zone",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "route:get_nearest_block",
      "namespace": "route-handle",
      "name": "get_nearest_block",
      "kind": "handle-method",
      "arity": 1,
      "signature": "route:get_nearest_block(arg1)",
      "summary": "Get Nearest Block",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "route:get_ungrouped_zones",
      "namespace": "route-handle",
      "name": "get_ungrouped_zones",
      "kind": "handle-method",
      "arity": 0,
      "signature": "route:get_ungrouped_zones()",
      "summary": "Get Ungrouped Zones",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "route:get_zone",
      "namespace": "route-handle",
      "name": "get_zone",
      "kind": "handle-method",
      "arity": 1,
      "signature": "route:get_zone(arg1)",
      "summary": "Get Zone",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "route:get_zone_at_player",
      "namespace": "route-handle",
      "name": "get_zone_at_player",
      "kind": "handle-method",
      "arity": 0,
      "signature": "route:get_zone_at_player()",
      "summary": "Get Zone At Player",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "route:get_zone_groups",
      "namespace": "route-handle",
      "name": "get_zone_groups",
      "kind": "handle-method",
      "arity": 0,
      "signature": "route:get_zone_groups()",
      "summary": "Get Zone Groups",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "route:get_zones",
      "namespace": "route-handle",
      "name": "get_zones",
      "kind": "handle-method",
      "arity": 0,
      "signature": "route:get_zones()",
      "summary": "Get Zones",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "route:get_zones_in_group",
      "namespace": "route-handle",
      "name": "get_zones_in_group",
      "kind": "handle-method",
      "arity": "varargs",
      "signature": "route:get_zones_in_group(...)",
      "summary": "Get Zones In Group",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "route:is_in_zone",
      "namespace": "route-handle",
      "name": "is_in_zone",
      "kind": "handle-method",
      "arity": "varargs",
      "signature": "route:is_in_zone(...)",
      "summary": "Is In Zone",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "route:mark_complete",
      "namespace": "route-handle",
      "name": "mark_complete",
      "kind": "handle-method",
      "arity": "varargs",
      "signature": "route:mark_complete(...)",
      "summary": "Mark Complete",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.routes.exists",
      "namespace": "routes",
      "name": "exists",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.routes.exists(name)",
      "summary": "Exists",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.routes.get_capabilities",
      "namespace": "routes",
      "name": "get_capabilities",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.routes.get_capabilities(route)",
      "summary": "Get Capabilities",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.routes.list",
      "namespace": "routes",
      "name": "list",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.routes.list()",
      "summary": "List",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.routes.list_with",
      "namespace": "routes",
      "name": "list_with",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.routes.list_with(required_types)",
      "summary": "List With",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.routes.load",
      "namespace": "routes",
      "name": "load",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.routes.load(name)",
      "summary": "Load",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.script",
      "namespace": "script",
      "name": "__call",
      "kind": "declaration",
      "arity": "varargs",
      "signature": "hexis.script(metadata)",
      "summary": "Declare script metadata",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.script.is_paused",
      "namespace": "script",
      "name": "is_paused",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.script.is_paused()",
      "summary": "Check if script is paused",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.script.is_running",
      "namespace": "script",
      "name": "is_running",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.script.is_running()",
      "summary": "Check if script is running",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.script.name",
      "namespace": "script",
      "name": "name",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.script.name()",
      "summary": "Get script name",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.script.pause",
      "namespace": "script",
      "name": "pause",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.script.pause()",
      "summary": "Pause the script",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.script.resume",
      "namespace": "script",
      "name": "resume",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.script.resume()",
      "summary": "Resume the script",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.script.stop",
      "namespace": "script",
      "name": "stop",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.script.stop()",
      "summary": "Stop the script completely",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.script.version",
      "namespace": "script",
      "name": "version",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.script.version()",
      "summary": "Get script version",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.sidebar.get_lines",
      "namespace": "sidebar",
      "name": "get_lines",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.sidebar.get_lines()",
      "summary": "Read scoreboard sidebar text lines",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.sidebar.hide",
      "namespace": "sidebar",
      "name": "hide",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.sidebar.hide()",
      "summary": "Hide the scoreboard sidebar",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.sidebar.is_hidden",
      "namespace": "sidebar",
      "name": "is_hidden",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.sidebar.is_hidden()",
      "summary": "Check if sidebar is hidden",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.sidebar.show",
      "namespace": "sidebar",
      "name": "show",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.sidebar.show()",
      "summary": "Show the scoreboard sidebar",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.tablist.contains",
      "namespace": "tablist",
      "name": "contains",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.tablist.contains(pattern)",
      "summary": "Check if tablist contains pattern",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.tablist.find",
      "namespace": "tablist",
      "name": "find",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.tablist.find(pattern)",
      "summary": "Find first display name matching pattern",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.tablist.find_all",
      "namespace": "tablist",
      "name": "find_all",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.tablist.find_all(pattern)",
      "summary": "Find all display names matching pattern",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.tablist.get_all",
      "namespace": "tablist",
      "name": "get_all",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.tablist.get_all()",
      "summary": "Get all tablist entries",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.tablist.get_footer",
      "namespace": "tablist",
      "name": "get_footer",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.tablist.get_footer()",
      "summary": "Get tab list footer text",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.tablist.get_header",
      "namespace": "tablist",
      "name": "get_header",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.tablist.get_header()",
      "summary": "Get tab list header text",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.timer.elapsed",
      "namespace": "timer",
      "name": "elapsed",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.timer.elapsed()",
      "summary": "Get elapsed time in seconds",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.timer.elapsed_ms",
      "namespace": "timer",
      "name": "elapsed_ms",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.timer.elapsed_ms()",
      "summary": "Get elapsed time in milliseconds",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.timer.formatted",
      "namespace": "timer",
      "name": "formatted",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.timer.formatted()",
      "summary": "Get formatted elapsed time",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.timer.is_running",
      "namespace": "timer",
      "name": "is_running",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.timer.is_running()",
      "summary": "Check if timer is running",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.timer.reset",
      "namespace": "timer",
      "name": "reset",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.timer.reset()",
      "summary": "Reset the timer",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.timer.start",
      "namespace": "timer",
      "name": "start",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.timer.start()",
      "summary": "Start the timer",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.timer.stop",
      "namespace": "timer",
      "name": "stop",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.timer.stop()",
      "summary": "Stop the timer",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.var.exists",
      "namespace": "var",
      "name": "exists",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.var.exists(name)",
      "summary": "Check if a runtime variable exists",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.var.get",
      "namespace": "var",
      "name": "get",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.var.get(name)",
      "summary": "Get a runtime variable",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.var.set",
      "namespace": "var",
      "name": "set",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.var.set(name, value)",
      "summary": "Set a runtime variable",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.highlight.block",
      "namespace": "world.highlight",
      "name": "block",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight.block(...)",
      "summary": "Block",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight.clear",
      "namespace": "world.highlight",
      "name": "clear",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.world.highlight.clear()",
      "summary": "clear ALL highlight types",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight.clear_blocks",
      "namespace": "world.highlight",
      "name": "clear_blocks",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight.clear_blocks(...)",
      "summary": "Clear Blocks",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight.clear_entities",
      "namespace": "world.highlight",
      "name": "clear_entities",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight.clear_entities()",
      "summary": "delegates to existing clear_entity_highlight",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight.clear_glow",
      "namespace": "world.highlight",
      "name": "clear_glow",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight.clear_glow()",
      "summary": "Clear all glow highlights",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight.clear_text",
      "namespace": "world.highlight",
      "name": "clear_text",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight.clear_text(...)",
      "summary": "Clear Text",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight.clear_tree",
      "namespace": "world.highlight",
      "name": "clear_tree",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight.clear_tree()",
      "summary": "delegates to existing clear_tree_highlight",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight.clear_zones",
      "namespace": "world.highlight",
      "name": "clear_zones",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight.clear_zones()",
      "summary": "Clear all zones",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight.entity",
      "namespace": "world.highlight",
      "name": "entity",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight.entity(entity, color)",
      "summary": "delegates to existing highlight_entity",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight.glow",
      "namespace": "world.highlight",
      "name": "glow",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight.glow(entity_id, options)",
      "summary": "Model-contour glow",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight.glow_rainbow",
      "namespace": "world.highlight",
      "name": "glow_rainbow",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight.glow_rainbow(entity_id)",
      "summary": "Rainbow cycling glow",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight.remove_zone",
      "namespace": "world.highlight",
      "name": "remove_zone",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight.remove_zone(id)",
      "summary": "Remove specific zone",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight.set_esp",
      "namespace": "world.highlight",
      "name": "set_esp",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight.set_esp(enabled)",
      "summary": "Toggle ESP for animated highlights",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight.text",
      "namespace": "world.highlight",
      "name": "text",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight.text(...)",
      "summary": "Text",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight.tree",
      "namespace": "world.highlight",
      "name": "tree",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight.tree(blocks, color)",
      "summary": "delegates to existing set_tree_highlight",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight.unglow",
      "namespace": "world.highlight",
      "name": "unglow",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight.unglow(entity_id)",
      "summary": "Remove glow",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight.zone",
      "namespace": "world.highlight",
      "name": "zone",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight.zone(min, max, options)",
      "summary": "Zone box rendering",
      "stability": "advanced",
      "official_usage": false
    },
    {
      "path": "hexis.world.clear_animated_highlight",
      "namespace": "world",
      "name": "clear_animated_highlight",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.world.clear_animated_highlight()",
      "summary": "Clear the animated highlight",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.clear_entity_highlight",
      "namespace": "world",
      "name": "clear_entity_highlight",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.world.clear_entity_highlight()",
      "summary": "Clear all entity highlights",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.clear_entity_text",
      "namespace": "world",
      "name": "clear_entity_text",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.world.clear_entity_text()",
      "summary": "Clear Entity Text",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.clear_glow",
      "namespace": "world",
      "name": "clear_glow",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.world.clear_glow()",
      "summary": "Clear all glow highlights",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.clear_secondary_highlight",
      "namespace": "world",
      "name": "clear_secondary_highlight",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.world.clear_secondary_highlight()",
      "summary": "Clear secondary/preview highlight",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.clear_text",
      "namespace": "world",
      "name": "clear_text",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.world.clear_text()",
      "summary": "clear all world text for this script",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.clear_tree_highlight",
      "namespace": "world",
      "name": "clear_tree_highlight",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.world.clear_tree_highlight()",
      "summary": "Clear tree highlights",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.clear_watches",
      "namespace": "world",
      "name": "clear_watches",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.world.clear_watches()",
      "summary": "Clear all block watches",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.clear_zone_highlights",
      "namespace": "world",
      "name": "clear_zone_highlights",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.world.clear_zone_highlights()",
      "summary": "Clear all zone highlights for this script",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.find_los_stand_pos",
      "namespace": "world",
      "name": "find_los_stand_pos",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.world.find_los_stand_pos(target, options)",
      "summary": "Find a position with LOS to target block target: {x, y, z} options: {max_range=20, search_radius=15}",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.find_water",
      "namespace": "world",
      "name": "find_water",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.world.find_water(radius)",
      "summary": "Find nearest water block within radius",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.get_block",
      "namespace": "world",
      "name": "get_block",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.get_block(x, y, z)",
      "summary": "Get block info at position",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.get_block_state",
      "namespace": "world",
      "name": "get_block_state",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.get_block_state(x, y, z)",
      "summary": "Get block with all state properties",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.get_connected_blocks",
      "namespace": "world",
      "name": "get_connected_blocks",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.world.get_connected_blocks(pos, options)",
      "summary": "Flood-fill to find connected blocks Returns array of {x, y, z} positions for all connected blocks of matching type Options: {match_patterns = {\"log\", \"wood\"}, max_blocks = 200, include_diagonals = true}",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.get_crosshair_target",
      "namespace": "world",
      "name": "get_crosshair_target",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.get_crosshair_target(range)",
      "summary": "moved from actions",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.get_nearby_entities",
      "namespace": "world",
      "name": "get_nearby_entities",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.world.get_nearby_entities(radius, options)",
      "summary": "Get non-player entities within radius options: {type = \"tadpole\", exclude_types = {\"armor_stand\", \"item\"}}",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.get_nearby_players",
      "namespace": "world",
      "name": "get_nearby_players",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.world.get_nearby_players(radius, options)",
      "summary": "Get players within radius",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.glow_entity",
      "namespace": "world",
      "name": "glow_entity",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.world.glow_entity(entity_id, options)",
      "summary": "Add model-contour glow + tint to entity options: {outline={r,g,b}, tint={r,g,b,a}} or just {r,g,b} for both",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.glow_rainbow",
      "namespace": "world",
      "name": "glow_rainbow",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.world.glow_rainbow(entity_id)",
      "summary": "Set rainbow cycling glow on entity",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.has_exposed_face",
      "namespace": "world",
      "name": "has_exposed_face",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.has_exposed_face(x, y, z)",
      "summary": "Check if a block has at least one non-solid neighbor",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight_block_animated",
      "namespace": "world",
      "name": "highlight_block_animated",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight_block_animated(pos, color, speed)",
      "summary": "Animated highlight with smooth lerp pos: {x, y, z} color: {r, g, b, a} (optional, defaults to cyan) speed: number (optional, default 15.0)",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight_entity",
      "namespace": "world",
      "name": "highlight_entity",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.world.highlight_entity(entity_id, color)",
      "summary": "Highlight an entity by ID color: {r, g, b, a} (optional, defaults to cyan)",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight_secondary_target",
      "namespace": "world",
      "name": "highlight_secondary_target",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight_secondary_target(pos, color, speed)",
      "summary": "Secondary/preview highlight Used for \"next target\" indication - more transparent, slower animation",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.highlight_zone",
      "namespace": "world",
      "name": "highlight_zone",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.highlight_zone(min, max, options)",
      "summary": "Render a box between two corners min/max: {x, y, z} corners options: {fill={r,g,b,a}, border={r,g,b,a}, thickness=0.04}",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.is_block_air",
      "namespace": "world",
      "name": "is_block_air",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.is_block_air(x, y, z)",
      "summary": "Quick check if block is air",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.is_highlight_active",
      "namespace": "world",
      "name": "is_highlight_active",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.world.is_highlight_active()",
      "summary": "Check if animated highlight is active",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.is_in_water",
      "namespace": "world",
      "name": "is_in_water",
      "kind": "function",
      "arity": 0,
      "signature": "hexis.world.is_in_water()",
      "summary": "Check if player is currently in water",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.is_water_at",
      "namespace": "world",
      "name": "is_water_at",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.is_water_at(x, y, z)",
      "summary": "Check if block at position is water",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.on_block_pattern",
      "namespace": "world",
      "name": "on_block_pattern",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.world.on_block_pattern(pattern, callback)",
      "summary": "Listen for any block change matching pattern globally",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.players_in_zone",
      "namespace": "world",
      "name": "players_in_zone",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.world.players_in_zone(zone, options)",
      "summary": "Count players in a zone AABB zone: table with {min={x,y,z}, max={x,y,z}} or {id, min, max} options: {filter_tablist=false, exclude_self=true}",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.remove_block_pattern",
      "namespace": "world",
      "name": "remove_block_pattern",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.world.remove_block_pattern(id)",
      "summary": "Remove a pattern listener by ID",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.remove_entity_text",
      "namespace": "world",
      "name": "remove_entity_text",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.world.remove_entity_text(entity_id)",
      "summary": "Remove Entity Text",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.remove_text",
      "namespace": "world",
      "name": "remove_text",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.world.remove_text(id)",
      "summary": "remove specific world text by ID",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.remove_zone_highlight",
      "namespace": "world",
      "name": "remove_zone_highlight",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.world.remove_zone_highlight(id)",
      "summary": "Remove a specific zone by ID",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.scan_blocks",
      "namespace": "world",
      "name": "scan_blocks",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.world.scan_blocks(options)",
      "summary": "Scan blocks in a radius and return matches options: {radius, match_patterns, center={x,y,z}, max_results, sort}",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.select_hotbar_slot",
      "namespace": "world",
      "name": "select_hotbar_slot",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.world.select_hotbar_slot(slot)",
      "summary": "Select a specific hotbar slot (0-8)",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.set_highlight_esp",
      "namespace": "world",
      "name": "set_highlight_esp",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.world.set_highlight_esp(enabled)",
      "summary": "Toggle ESP for animated highlights enabled: boolean (true = visible through walls, false = normal depth testing)",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.set_rainbow_target",
      "namespace": "world",
      "name": "set_rainbow_target",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.world.set_rainbow_target(entity_id)",
      "summary": "Set rainbow target for current combat target",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.set_tree_highlight",
      "namespace": "world",
      "name": "set_tree_highlight",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.world.set_tree_highlight(blocks, color)",
      "summary": "Highlight all blocks in a tree blocks: array of {x, y, z} color: {r, g, b, a} (optional, defaults to green)",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.text_at",
      "namespace": "world",
      "name": "text_at",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.world.text_at(pos, text_or_opts)",
      "summary": "NanoVG text at world position",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.text_at_entity",
      "namespace": "world",
      "name": "text_at_entity",
      "kind": "function",
      "arity": 2,
      "signature": "hexis.world.text_at_entity(entity_id, options)",
      "summary": "NanoVG text that follows an entity",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.unglow_entity",
      "namespace": "world",
      "name": "unglow_entity",
      "kind": "function",
      "arity": 1,
      "signature": "hexis.world.unglow_entity(entity_id)",
      "summary": "Remove glow from entity",
      "stability": "supported",
      "official_usage": true
    },
    {
      "path": "hexis.world.unwatch_block",
      "namespace": "world",
      "name": "unwatch_block",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.unwatch_block(x, y, z)",
      "summary": "Stop watching a block position",
      "stability": "experimental",
      "official_usage": false
    },
    {
      "path": "hexis.world.watch_block",
      "namespace": "world",
      "name": "watch_block",
      "kind": "function",
      "arity": "varargs",
      "signature": "hexis.world.watch_block(x, y, z)",
      "summary": "Watch a block position for state changes",
      "stability": "experimental",
      "official_usage": false
    }
  ]
}
