{
  "PF2E_VISIONER": {
    "ENVIRONMENT": {},
    "MODULE_TITLE": "PF2E Visioner",
    "MECHANICAL_EFFECTS": {
      "HIDDEN_FLAT_CHECK": "DC 11 flat check required for targeting",
      "CONCEALED_FLAT_CHECK": "DC 5 flat check required for targeting",
      "UNDETECTED_CONDITION": "Undetected condition applied with full mechanical effects",
      "VISIBLE_NO_EFFECTS": "No penalties when targeting; no additional effects",
      "HIDDEN_TOOLTIP": "Hidden: You are off-guard to the target and must succeed at a DC 11 flat check when targeting with an attack, spell, or other effect",
      "CONCEALED_TOOLTIP": "Concealed: You must succeed at a DC 5 flat check when targeting with an attack, spell, or other effect",
      "UNDETECTED_TOOLTIP": "Undetected: You don't know the target's location. You are off-guard to the target and you can't easily target it. Using the Seek action can help find an undetected creature",
      "VISIBLE_TOOLTIP": "Visible: No penalties or effects",
      "BLINDED_OVERRIDE": "All creatures appear Hidden due to Blinded condition",
      "DAZZLED_OVERRIDE": "All creatures appear Concealed due to Dazzled condition",
      "NO_COVER_TOOLTIP": "No Cover: No bonuses or penalties",
      "LESSER_COVER_TOOLTIP": "Lesser Cover: +1 circumstance bonus to AC",
      "STANDARD_COVER_TOOLTIP": "Standard Cover: +2 circumstance bonus to AC, Reflex saves, and Stealth checks. Can Hide behind this cover.",
      "GREATER_COVER_TOOLTIP": "Greater Cover: +4 circumstance bonus to AC, Reflex saves, and Stealth checks. Can Hide behind this cover."
    },
    "TOKEN_MANAGER": {
      "TITLE": "Visioner Manager",
      "OBSERVER": "Observer Token",
      "TARGET": "Target Token",
      "VISIBILITY_STATE": "Visibility State",
      "COVER_STATE": "Cover State",
      "NO_TOKENS": "No tokens available in this scene",
      "APPLY": "Apply Current",
      "APPLY_BOTH": "Apply Both",
      "CANCEL": "Cancel",
      "RESET": "Reset Mode",
      "BULK_ACTIONS": "Bulk Actions",
      "VISIBILITY_TAB": "Visibility",
      "COVER_TAB": "Cover"
    },
    "TIMED_OVERRIDE": {
      "DIALOG_TITLE": "Apply Timed Override",
      "TOKEN_LABEL": "Token",
      "NEW_STATE_LABEL": "New State",
      "DURATION": "Duration",
      "ROUNDS": "Rounds",
      "ROUND": "Round",
      "MINUTES": "Minutes",
      "MINUTE": "Minute",
      "FOREVER": "Forever",
      "CUSTOM": "Custom",
      "ROUND_TIMING": "Round Timing",
      "EXPIRES_AT": "Expires at",
      "START_OF_TURN": "Start",
      "END_OF_TURN": "End",
      "OF": "of",
      "OF_TURN": "of {name}'s turn",
      "APPLY_NOW": "Apply Now",
      "APPLY_FOR_DURATION": "Apply for Duration...",
      "ACTIVE_TIMER": "Active Timer",
      "ACTIVE_TIMERS": "Active Timed Overrides",
      "REMAINING": "Remaining",
      "CANCEL_TIMER": "Cancel Timer",
      "ROUNDS_REMAINING": "{count} round(s)",
      "TIME_REMAINING": "{time}",
      "TIMER_TOOLTIP": "Override expires: {remaining}",
      "TIMER_EXPIRED_NOTIFICATION": "Timed override for {target} has expired",
      "TIMER_CANCELLED": "Timer cancelled",
      "NO_COMBAT_FOR_ROUNDS": "No active combat - cannot use round-based duration",
      "NO_DURATION_SELECTED": "Select a duration first",
      "PRESET_1_ROUND": "1 Round",
      "PRESET_3_ROUNDS": "3 Rounds",
      "PRESET_5_ROUNDS": "5 Rounds",
      "PRESET_1_MIN": "1 Min",
      "PRESET_5_MIN": "5 Min",
      "APPLY_BUTTON": "Apply",
      "CANCEL_BUTTON": "Cancel",
      "SET_DURATION_FOR_ROW": "Set duration for this override"
    },
    "VISIBILITY_STATES": {
      "avs": "AVS",
      "observed": "Observed",
      "concealed": "Concealed",
      "hidden": "Hidden",
      "undetected": "Undetected"
    },
    "COVER_STATES": {
      "none": "No Cover",
      "lesser": "Lesser Cover",
      "standard": "Standard Cover",
      "greater": "Greater Cover"
    },
    "SENSES": {
      "LIGHT-PERCEPTION": "Light Perception",
      "LIGHT-PERCEPTION_DESC": "You can perceive light and darkness. This sense allows you to see in natural darkness but is affected by magical darkness.",
      "VISION": "Vision",
      "VISION_DESC": "Your standard visual sense used to perceive your surroundings.",
      "DARKVISION": "Darkvision",
      "DARKVISION_DESC": "You can see in darkness and dim light just as well as in bright light, though you can't distinguish color in darkness.",
      "GREATER-DARKVISION": "Greater Darkvision",
      "GREATER-DARKVISION_DESC": "You can see in darkness and dim light as if it were bright light—colors included.",
      "HEARING": "Hearing",
      "HEARING_DESC": "You can detect creatures and events via sound within range (imprecise).",
      "TREMORSENSE": "Tremorsense",
      "TREMORSENSE_DESC": "You can sense vibrations through the ground within range (imprecise).",
      "SCENT": "Scent",
      "SCENT_DESC": "You have an enhanced sense of smell, allowing you to detect living creatures within range (imprecise).",
      "ECHOLOCATION": "Echolocation",
      "ECHOLOCATION_DESC": "You can use sound to navigate and detect objects within range (precise).",
      "LIFESENSE": "Lifesense",
      "LIFESENSE_DESC": "You can sense the life force of living and undead creatures within range (imprecise)."
    },
    "SPECIAL_SENSES": {
      "vision": "Vision",
      "vision_description": "Your standard visual sense used to perceive your surroundings.",
      "lifesense": "Lifesense",
      "lifesense_description": "You have a limited ability to sense life force. You gain lifesense as an imprecise sense. This allows you to sense the life force of living and undead creatures within the listed range. The sense can distinguish between the vitality energy animating living creatures and the void energy animating undead creatures.",
      "thoughtsense": "Thoughtsense",
      "thoughtsense_description": "You sense the minds of thinking creatures. You gain thoughtsense as an imprecise sense with the listed range. This sense has no effect on mindless creatures or objects.",
      "echolocation": "Echolocation",
      "echolocation_description": "You can use sound to navigate and detect objects. You gain echolocation as a precise sense. This allows you to detect all creatures and objects within range through sound reflection.",
      "tremorsense": "Tremorsense",
      "tremorsense_description": "You can sense vibrations through the ground. You gain tremorsense as an imprecise sense. This allows you to detect creatures and objects in contact with the ground within range.",
      "scent": "Scent",
      "scent_description": "You have an enhanced sense of smell. You gain scent as an imprecise sense. This allows you to detect living creatures by their scent within range.",
      "darkvision": "Darkvision",
      "darkvision_description": "You can see in darkness and dim light just as well as in bright light, though you can’t distinguish color in darkness.",
      "greater_darkvision": "Greater Darkvision",
      "greater_darkvision_description": "You can see in darkness and dim light as if it were bright light—colors included.",
      "hearing": "Hearing",
      "hearing_description": "You can detect creatures and events via sound within range (imprecise).",
      "low_light_vision": "Low-Light Vision",
      "low_light_vision_description": "You can see in dim light as though it were bright light.",
      "infrared_vision": "Infrared Vision",
      "infrared_vision_description": "You can perceive heat signatures in your surroundings.",
      "truesight": "Truesight",
      "truesight_description": "You can see things as they truly are, ignoring illusions and invisibility within range.",
      "see_the_unseen": "See the Unseen",
      "see_the_unseen_description": "You can perceive otherwise unseen phenomena within range.",
      "bloodsense": "Bloodsense",
      "bloodsense_description": "You can detect the presence and location of creatures by sensing blood within range.",
      "magicsense": "Magicsense",
      "magicsense_description": "You can sense magical auras or effects within range.",
      "motion_sense": "Motion Sense",
      "motion_sense_description": "You can detect motion in your surroundings within range.",
      "spiritsense": "Spiritsense",
      "spiritsense_description": "You can sense the presence of spirits and undead within range.",
      "thoughtsense": "Thoughtsense",
      "thoughtsense_description": "You can detect nearby thinking creatures within range.",
      "wavesense": "Wavesense",
      "wavesense_description": "You perceive vibrations or waves through a medium within range."
    },
    "COVER_OVERRIDE": {
      "POPUP_OVERRIDE": "Cover overridden via keybind popup: {original} → {final}"
    },
    "FEAT": {
      "CEASELESS_SHADOWS": "Ceaseless Shadows",
      "SNIPING_DUO_DEDICATION": "Sniping Duo Dedication"
    },
    "AVS_OVERRIDE_DIALOG": {
      "NO_OVERRIDES": "No AVS overrides are currently active for this token.",
      "CLOSE": "Close",
      "CLEAR_ALL": "Clear All Overrides",
      "CLEAR_ALL_CONFIRM_TITLE": "Clear All AVS Overrides",
      "OVERRIDE_REMOVED": "AVS override removed: {observer} → {target}",
      "ALL_OVERRIDES_CLEARED": "All AVS overrides cleared for {token}",
      "ERROR_REMOVING_OVERRIDE": "Error removing AVS override",
      "ERROR_CLEARING_OVERRIDES": "Error clearing AVS overrides"
    },
    "AVS_GM_VISION_WARNING": {
      "TITLE": "GM Vision active",
      "BODY": "AVS needs a vision polygon; GM Vision does not generate one. Disable GM Vision to enable AVS.",
      "CLOSE": "Dismiss",
      "DONT_SHOW_AGAIN": "Don't show again"
    },
    "OVERRIDE_INDICATOR": {
      "TOOLTIP_HEADER": "change(s) to validate",
      "TOOLTIP_NEXT": "Next:",
      "TOOLTIP_LEFT_CLICK": "Left-click: open details",
      "TOOLTIP_RIGHT_CLICK": "Right-click: accept all",
      "TOOLTIP_SHIFT_RIGHT_CLICK": "Shift+Right-click: reject all",
      "ROW_RIGHT_CLICK": "Right-click to accept this change",
      "QUEUE_POSITION": "{current} of {total}"
    },
    "VISUAL_EFFECTS": {
      "CONCEALED_OVERLAY": "This token is concealed from you",
      "CONCEALED_FLAT_CHECK": "DC 5 flat check required for targeting",
      "UNDETECTED_CONDITION": "Undetected condition applied with full mechanical effects",
      "CONCEALED_TOOLTIP": "Concealed: You must succeed at a DC 5 flat check when targeting with an attack, spell, or other effect",
      "UNDETECTED_TOOLTIP": "Undetected: You don't know the target's location. You are off-guard to the target and you can't easily target it. Using the Seek action can help find an undetected creature",
      "DAZZLED_OVERRIDE": "All creatures appear Concealed due to Dazzled condition",
      "NO_COVER_TOOLTIP": "No Cover: No bonuses or penalties",
      "GREATER_COVER_TOOLTIP": "Greater Cover: +4 circumstance bonus to AC, Reflex saves, and Stealth checks. Can Hide behind this cover."
    },
    "UI_ACTIONS": {
      "MANAGE_VISIBILITY": "Manage Token Visibility",
      "MANAGE_COVER": "Manage Token Cover",
      "QUICK_CONCEALED": "Set as Concealed",
      "QUICK_OBSERVED": "Set as Observed",
      "QUICK_NO_COVER": "Set No Cover",
      "QUICK_LESSER_COVER": "Set Lesser Cover",
      "QUICK_STANDARD_COVER": "Set Standard Cover",
      "QUICK_GREATER_COVER": "Set Greater Cover"
    },
    "MOVEMENT": {
      "walk": "Walk",
      "stride": "Stride",
      "leap": "Leap",
      "climb": "Climb",
      "fly": "Fly",
      "swim": "Swim",
      "burrow": "Burrow",
      "teleport": "Teleport",
      "deploy": "Deploy",
      "travel": "Travel"
    },
    "NOTIFICATIONS": {
      "NO_OBSERVER_SELECTED": "Please select an observer token first",
      "MULTIPLE_OBSERVERS": "Multiple observer tokens selected - please select only one",
      "NO_SOCKETLIB_INSTALLED": "PF2E Visioner needs socketlib module to be active in order to auto-refresh client screens. Please activate it.",
      "PERMISSION_DENIED": "Only GMs can manage token visibility and cover",
      "SNEAK_CLEAR_GM_ONLY": "Only GMs can clear sneak flags",
      "SCENE_CLEAR_GM_ONLY": "Only GMs can clear Visioner scene data",
      "DATA_CLEAR_GM_ONLY": "Only GMs can clear Visioner data",
      "NO_ACTIVE_SCENE": "No active scene.",
      "NO_TOKENS_PROVIDED": "No tokens provided for cleanup",
      "SNEAK_CLEARED": "PF2E Visioner: Cleared all sneak flags.",
      "SNEAK_CLEAR_FAILED": "PF2E Visioner: Failed to clear sneak flags. See console.",
      "SCENE_DATA_CLEARED": "PF2E Visioner: Cleared all scene data.",
      "SCENE_CLEAR_FAILED": "PF2E Visioner: Failed to clear scene data. See console.",
      "TOKEN_DATA_CLEARED": "PF2E Visioner: Cleared all token data.",
      "TOKEN_CLEAR_FAILED": "PF2E Visioner: Failed to clear token data. See console.",
      "CACHE_CLEARED": "Light-emitting tokens cache cleared",
      "CACHE_UNAVAILABLE": "Cache clearing not available",
      "VISION_CACHE_UNAVAILABLE": "Vision cache clearing not available",
      "ALL_CACHES_CLEARED": "All caches cleared and visibility recalculated",
      "SELECT_TWO_TOKENS": "Select exactly 2 tokens: observer and target",
      "SCENE_CONFIG_RESET": "Scene Config flag reset - updates should resume",
      "AVS_UNAVAILABLE": "PF2E Visioner | Auto-visibility system not available",
      "NEED_BOTH_TOKENS": "Need both observer and target tokens",
      "SELECT_TWO_TOKENS_OR_PARAMS": "Select exactly 2 tokens or provide observer and target parameters",
      "NO_DEFERRED_TOKENS": "No deferred tokens found to undefer.",
      "NO_UNDEFERRED_TOKENS": "No undeferred tokens found to restore to deferred state.",
      "NO_SNEAK_DIALOG": "No active sneak dialog found",
      "NO_TOKEN_ID": "No token ID found on button",
      "END_TURN_FAILED": "Failed to apply end-of-turn visibility changes.",
      "NO_DEFERRED_POSITIONS": "No deferred position checks to validate.",
      "NO_DEFERRED_OUTCOMES": "No deferred outcomes found to validate.",
      "VALIDATION_FAILED": "Failed to process end-of-turn validation.",
      "PARTY_RESTORE_FAILED": "PF2E Visioner: Failed to restore party tokens",
      "PARTY_RESTORE_SUCCESS": "PF2E Visioner: Restored state for {count} party tokens",
      "OVERRIDE_CLEAR_FAILED": "Failed to clear overrides for this table",
      "OVERRIDE_KEEP_FAILED": "Failed to keep override",
      "AVS_ACCEPT_FAILED": "Failed to accept AVS change",
      "AVS_REJECTED_ALL": "Rejected all AVS changes",
      "AVS_REJECTED": "Rejected AVS changes",
      "AVS_REJECTED_SINGLE": "Rejected AVS change: {observerName} → {targetName}",
      "VISION_SHARING_REMOVED": "Vision sharing removed",
      "VISION_SHARING_REMOVED_FROM": "Vision sharing removed from {name}",
      "VISION_SHARING_REMOVE_FAILED": "Failed to remove vision sharing",
      "AVS_ACCEPTED_SINGLE": "Accepted AVS change: {observerName} → {targetName}",
      "AVS_ACCEPTED_COUNT": "Accepted {count} change(s)",
      "AVS_ACCEPTED_IN_TABLE": "Accepted {count} change(s) in {group} table",
      "AVS_ACCEPTED_PLURAL": "Accepted {count} AVS change{plural}",
      "AVS_CLEARED_PLURAL": "Accepted {count} AVS change{plural}",
      "SNEAK_APPLY_FAILED": "Failed to apply sneak changes: {errors}",
      "INIT_FAILED": "PF2E Visioner failed to initialize: {error}",
      "NO_ENCOUNTER_TOKENS": "{moduleId}: No encounter tokens found. Filter disabled.",
      "NO_VALID_CONSEQUENCES": "No valid targets found for Attack Consequences. you can only see consequences if you are Hidden or Undetected from at least one observer.",
      "SNEAK_DEFERRED_RESTORED": "Restored {count} token(s) to original deferred state with all position data"
    },
    "MACROS": {},
    "VISION_MASTER_DIALOG": {
      "TITLE": "Select Vision Master",
      "NO_TOKENS": "No valid tokens with vision available",
      "NONE": "None (use own vision)",
      "PAN": "Pan to token",
      "MODE_LABEL": "Vision Sharing Mode",
      "MODE_ONE_WAY": "One-way (minion sees own + master's vision)",
      "MODE_TWO_WAY": "Two-way (both see each other's vision)",
      "MODE_REPLACE": "Replace (minion sees only master's vision)",
      "MODE_REVERSE": "Reverse (master sees only minion's vision)"
    },
    "DIALOG_TITLES": {
      "HIDE_RESULTS": "Hide Results",
      "POINT_OUT_RESULTS": "Point Out Results",
      "POINT_OUT_ACTION": "PF2E Visioner - Point Out Action",
      "SEEK_RESULTS": "Seek Results",
      "SEEK_DEFERRED": "Deferred (No Line of Sight)",
      "SEEK_DEFERRED_SHORT": "No LOS",
      "SEEK_DEFERRED_COUNT": "{count} seek result(s) deferred until line of sight is established",
      "SEEK_DEFERRED_APPLIED": "Deferred seek result applied",
      "ACTION_RESULTS": "Action Results",
      "TAKE_COVER_RESULTS": "Take Cover Results",
      "COVER_OVERRIDE": "Cover Override",
      "WALL_SETTINGS": "PF2E Visioner: Wall Settings",
      "TOGGLE_HIDDEN_WALL": "Toggle Hidden Wall (Selected Walls)",
      "QUICK_EDIT": "PF2E Visioner: Quick Edit (Selected ↔ Targeted)",
      "PURGE_DATA": "PF2E Visioner: Purge Data (Scene/Selected Tokens)",
      "VISIONER_QUICK_PANEL": "Visioner Quick Edit",
      "APPLYING_CHANGES": "Applying Changes",
      "WALL_QUICK": "PF2E Visioner: Wall Settings",
      "AVS_VALIDATION": "AVS Changes Validation",
      "DARKNESS_MODE": "PF2E Visioner: Set Darkness Mode",
      "OVERRIDE_VALIDATION": "Override Validation",
      "ATTACK_CONSEQUENCES": "Attack Consequences Results",
      "CREATE_DIVERSION_RESULTS": "Create a Diversion Results",
      "END_TURN_POSITION": "End-of-Turn Position Validation - {name}",
      "END_OF_TURN_SNEAK": "End-of-Turn Stealth Validation",
      "SNEAK_RESULTS": "Sneak Results",
      "RECOMMENDATIONS": {
        "HEAL_CHARACTER": "Heal Character",
        "REMOVE_CONDITIONS": "Remove Conditions",
        "USE_HIDE_FIRST": "Use Hide Action First",
        "CHECK_SCENE_SETUP": "Check Scene Setup",
        "PROCEED_CAUTION": "Proceed with Caution",
        "REPOSITION_BEFORE_SNEAK": "Reposition Before Sneaking",
        "IMPROVE_POSITION": "Improve Position",
        "PROCEED_AWARENESS": "Proceed with Awareness",
        "PROCEED_SNEAK": "Proceed with Sneak",
        "EXCELLENT_POSITION": "Excellent Position",
        "GOOD_POSITION": "Good Position",
        "HIDE_ACTION": "Hide Action",
        "TAKE_COVER": "Take Cover",
        "REPOSITION": "Reposition",
        "CREATE_DIVERSION": "Create a Diversion",
        "POINT_OUT": "Point Out",
        "SEEK_ACTION": "Seek Action",
        "INCREASE_DISTANCE": "Increase Distance",
        "GOOD_DISTANCE": "Good Distance",
        "SEEK_DARKNESS": "Seek Darkness",
        "EXCELLENT_LIGHTING": "Excellent Lighting",
        "FIND_COVER": "Find Cover",
        "MAINTAIN_COVER": "Maintain Cover",
        "BREAK_LINE_SIGHT": "Break Line of Sight",
        "BEST_COVER_DIRECTION": "Best Cover Direction",
        "AVOID_EXPOSURE": "Avoid Exposure",
        "SUGGESTED_MOVEMENT": "Suggested Movement",
        "MAINTAIN_POSITION": "Maintain Position",
        "RELOCATE_IMMEDIATELY": "Relocate Immediately",
        "MAINTAIN_BENEFICIAL": "Maintain Beneficial Conditions",
        "REMOVE_HARMFUL": "Remove Harmful Conditions",
        "ACQUIRE_BENEFICIAL": "Acquire Beneficial Conditions",
        "ALTERNATIVE_ACTIONS": "Alternative Actions",
        "TACTICAL_ADVICE": "Tactical Advice",
        "POSITIONING": "Positioning",
        "CONDITIONS": "Conditions"
      }
    },
    "BUTTONS": {
      "KEEN_EYES": "Keen Eyes",
      "SENSES_SUPPRESSED": "Senses Suppressed",
      "THAT": "That",
      "OBSERVED": "Observed",
      "CONCEALED": "Concealed",
      "HIDDEN": "Hidden",
      "UNDETECTED": "Undetected",
      "NO_COVER": "No Cover",
      "LESSER_COVER": "Lesser Cover",
      "STANDARD_COVER": "Standard Cover",
      "GREATER_COVER": "Greater Cover",
      "BRIGHT_LIGHT": "Bright Light",
      "DIM_LIGHT": "Dim Light",
      "DARKNESS": "Darkness",
      "IMPROVED": "Improved",
      "WORSENED": "Worsened",
      "UNCHANGED": "Unchanged",
      "APPLY_CHANGE": "Apply Change",
      "CANCEL": "Cancel",
      "CHOOSE_DIFFERENT": "Choose Different State",
      "POSITION_DATA": {
        "EXCELLENT": "Excellent position data",
        "GOOD": "Good position data",
        "FAIR": "Fair position data",
        "POOR": "Poor position data",
        "UNRELIABLE": "Unreliable position data"
      }
    },
    "TOOLTIPS": {
      "AUTO_COVER_DETECTION": "Automatic Cover Detection",
      "KEEN_EYES": "You gain a +2 circumstance bonus when using Seek (System application). Undetected creatures treated as Hidden, Hidden creatures treated as Observed when you Seek.",
      "THAT_FEATURE": "You spot hidden doors, traps, and hazards more easily (failure will become a success).",
      "SENSES_SUPPRESSED": "The following senses are suppressed by a region: {senses}"
    },
    "SETTINGS_MENU": {
      "TITLE": "PF2E Visioner Settings",
      "OPEN_BUTTON": "Open",
      "HINT": "Grouped settings by category",
      "SECTIONS": {
        "GENERAL_UI": "General UI",
        "MANAGER_SETTINGS": "Visioner Dialogs Settings",
        "VISION": "Vision",
        "HIDDEN_LOOT": "Hidden Loot Actors",
        "HIDDEN_WALLS": "Hidden Walls",
        "ADVANCED_SEEK": "Advanced Seek Options",
        "COVER": "Cover",
        "TOKEN_AUTO_COVER": "Token Auto Cover Settings",
        "WALL_AUTO_COVER": "Wall Auto Cover Settings",
        "AVS_SETTINGS": "A.V.S. Settings",
        "ADVANCED": "Advanced"
      }
    },
    "RULE_ELEMENTS": {
      "BADGE": {
        "LABEL": "Rule Effect"
      },
      "LABELS": {
        "SUBJECT": "Subject",
        "OBSERVERS": "Observers",
        "DIRECTION": "Direction",
        "MODE": "Mode",
        "STATUS": "Status",
        "STEPS": "Steps",
        "DURATION": "Duration (Rounds)",
        "REQUIRES_INITIATIVE": "Requires Initiative",
        "RANGE": "Range (feet)"
      },
      "EFFECT": {
        "NAME": "PF2eVisionerEffect",
        "DESCRIPTION": "Advanced visibility, cover, and sense modifications for spells, items and feats",
        "OPERATION_TYPES": {
          "MODIFY_SENSES": "Modify Senses",
          "OVERRIDE_VISIBILITY": "Override Visibility",
          "OVERRIDE_COVER": "Override Cover",
          "PROVIDE_COVER": "Provide Cover",
          "MODIFY_ACTION_QUALIFICATION": "Modify Action Qualification",
          "CONDITIONAL_STATE": "Conditional State"
        },
        "MESSAGES": {
          "NO_QUALIFYING_CONCEALMENT": "Your concealment doesn't qualify for this action",
          "NO_QUALIFYING_COVER": "Your cover doesn't qualify for this action",
          "BLUR_HIDE_BLOCKED": "Blur's concealment doesn't hide your location",
          "BLUR_SNEAK_BLOCKED": "Blur doesn't obscure your location enough for Sneak",
          "FAERIE_FIRE_ACTIVE": "Faerie fire reveals your location",
          "REVEALING_LIGHT_ACTIVE": "Revealing light prevents concealment",
          "THOUSAND_VISIONS_ACTIVE": "Thousand visions ignores concealment within 30 feet",
          "CLOUDED_FOCUS_ACTIVE": "Clouded focus limits your perception range to 20 feet",
          "DEPLOYABLE_COVER_ACTIVE": "Deployable cover provides standard cover when you Take Cover",
          "TOWER_SHIELD_ALLY": "Ally benefits from your tower shield",
          "END_POSITION_DISQUALIFIED": "Your end position doesn't qualify for this action",
          "START_POSITION_DISQUALIFIED": "Your start position doesn't qualify for this action",
          "BLIND_FIGHT_ACTIVE": "Blind-Fight allows you to react to barely-detected foes",
          "CONCEALMENT_QUALIFICATION_FAILED": "Your concealment or cover does not qualify for Hide"
        },
        "DESCRIPTIONS": {
          "MODIFY_SENSES": "Modify sense ranges and precision",
          "OVERRIDE_VISIBILITY": "Override visibility states",
          "OVERRIDE_COVER": "Override cover states",
          "PROVIDE_COVER": "Provide cover to other tokens",
          "MODIFY_ACTION_QUALIFICATION": "Control what qualifies for action prerequisites",
          "CONDITIONAL_STATE": "Apply states based on conditions"
        },
        "EXAMPLES": {
          "BLUR": {
            "NAME": "Blur",
            "DESCRIPTION": "The target's form appears blurry. It becomes Concealed. As the nature of this effect still leaves the target's location obvious, the target can't use this concealment to Hide or Sneak."
          },
          "FAERIE_FIRE": {
            "NAME": "Faerie Fire",
            "DESCRIPTION": "All creatures in the area when you cast the spell are limned in colorful, heatless fire of a color of your choice for the duration. Visible creatures can't be Concealed while affected by faerie fire. If the creatures are Invisible, they are Concealed while affected by faerie fire, rather than being Undetected."
          },
          "REVEALING_LIGHT": {
            "NAME": "Revealing Light",
            "DESCRIPTION": "A wave of magical light washes over the area. You choose the appearance of the light, such as colorful, heatless flames or sparkling motes. A creature affected by revealing light is Dazzled. If the creature was Invisible, it becomes Concealed instead. If the creature was already concealed for any other reason, it is no longer concealed."
          },
          "CLOUDED_FOCUS": {
            "NAME": "Clouded Focus",
            "DESCRIPTION": "You sharpen a creature's senses, though more distant objects become hazy, indistinct, or muted to it. The target gains a +1 status bonus to Perception checks attempted with any of its precise senses. Furthermore, any imprecise senses the target has are sharpened to precise senses (though they don't receive the status bonus). However, the target can't perceive anything beyond a range of 20 feet with any of its senses."
          },
          "THOUSAND_VISIONS": {
            "NAME": "Thousand Visions",
            "DESCRIPTION": "You open your senses to numerous visions of the immediate future. The visions grant you subtle details of your immediate surroundings within 30 feet. Within this range, you don't need to succeed at a flat check to target a Concealed creature. Beyond 30 feet, the visions become overwhelmed with too many possible futures, making all of your senses imprecise beyond this range."
          },
          "TOWER_SHIELD": {
            "NAME": "Tower Shield (Take Cover)",
            "DESCRIPTION": "When you Take Cover with a raised tower shield, you can provide standard cover to allies adjacent to you."
          },
          "DEPLOYABLE_COVER": {
            "NAME": "Deployable Cover",
            "DESCRIPTION": "This thick mat of canvas, foliage, and wood is mounted on a tripod of flexible metal struts. Deployable cover completely blocks one edge of the chosen square, allowing you (and others) to gain standard cover when you use the Take Cover action."
          },
          "BALLISTIC_COVER": {
            "NAME": "Ballistic Cover",
            "DESCRIPTION": "Specially crafted to protect against bullet fire, a ballistic cover also works against other physical projectiles. While a creature has cover from Taking Cover behind a ballistic cover, it gains resistance 2 to piercing damage from ranged weapons and ranged unarmed attacks."
          },
          "SEE_INVISIBILITY": {
            "NAME": "See Invisibility",
            "DESCRIPTION": "You can see invisible creatures and objects. They appear translucent and are concealed to you."
          },
          "BLIND_FIGHT": {
            "NAME": "Blind-Fight",
            "DESCRIPTION": "You're not off-guard to creatures that are hidden from you (unless you're off-guard to them for reasons other than the hidden condition). While you're adjacent to an undetected creature of your level or lower, it is instead only hidden from you."
          },
          "CONSECRATE": {
            "NAME": "Consecrate (vs Undead)",
            "DESCRIPTION": "The consecrated area makes undead uneasy. Undead creatures in the area are concealed to everyone."
          },
          "DARKVISION_CONDITIONAL": {
            "NAME": "Darkvision (Conditional)",
            "DESCRIPTION": "Darkvision only works in darkness or dim light."
          },
          "HEAVY_PRECIPITATION": {
            "NAME": "Heavy Precipitation",
            "DESCRIPTION": "Heavy rain, snow, or sleet reduces visibility. Creatures 30 feet or more away are concealed."
          },
          "THICK_FOG": {
            "NAME": "Thick Fog",
            "DESCRIPTION": "Dense fog severely limits visibility. Creatures within 10 feet are concealed, and creatures beyond 20 feet are hidden."
          },
          "MIRROR_IMAGE": {
            "NAME": "Mirror Image",
            "DESCRIPTION": "Illusory duplicates prevent attackers from gaining tactical advantages. Off-guard effects from concealment, hidden, or undetected states are suppressed."
          }
        }
      }
    },
    "SEEK_AUTOMATION": {
      "BUTTON_APPLY": "Apply Seek Results",
      "BUTTON_PREVIEW": "Preview Results",
      "BUTTON_PROCESSED": "Results Applied",
      "BUTTON_TOOLTIP": "Apply visibility changes based on Seek results",
      "NO_UNDETECTED_TOKENS": "No hidden or undetected tokens found for {name}'s Seek action",
      "NO_CHANGES": "No visibility changes needed for {name}'s Seek action",
      "RESULTS_APPLIED": "Seek automation applied changes: {changes}",
      "ERROR_PROCESSING": "Error applying Seek results. Check console for details.",
      "PROCESSING": "Processing Seek results...",
      "PREVIEW_TITLE": "Seek Results Preview",
      "PREVIEW_HINT": "Seek action results analysis",
      "PREVIEW_AVAILABLE_SENSES": "Available Senses",
      "DETECTED_BY": "Detected By",
      "ROLL_VS_DC": "Roll vs Stealth DC",
      "OUTCOME": "Outcome",
      "VISIBILITY_CHANGE": "Visibility Change",
      "OPEN_RESULTS": "Open Seek Results",
      "OPEN_RESULTS_TOOLTIP": "Open the Seek results dialog to apply individual or bulk visibility changes",
      "SETUP_TEMPLATE": "Setup Seek Template",
      "REMOVE_TEMPLATE": "Remove Seek Template",
      "SETUP_TEMPLATE_TOOLTIP": "Click to place a 15-foot burst anywhere; Seek will use tokens within it",
      "ENCOUNTER_ONLY": "Show only encounter tokens",
      "SETTING_NAME": "Enable Seek Automation",
      "SETTING_HINT": "Automatically add buttons to Seek chat messages for applying visibility changes",
      "OUT_OF_RANGE": "Out of Range",
      "RANGE_LIMIT_ACTIVE": "Range limit active: Only showing targets within 30 feet",
      "RANGE_LIMIT_ACTIVE_CUSTOM": "Range limit active: Only showing targets within {distance} feet",
      "NO_TARGETS_IN_RANGE": "No valid targets within 30 feet range",
      "NO_TARGETS_IN_RANGE_CUSTOM": "No valid targets within {distance} feet range"
    },
    "SEEK_TEMPLATE_CONFIG": {
      "TITLE": "Seek Template Configuration",
      "DESCRIPTION": "Choose the template shape and size for your Seek action.",
      "TEMPLATE_TYPE": "Template Type",
      "BURST": "Burst (Circle)",
      "BURST_DESC": "Circular area effect",
      "CONE": "Cone",
      "CONE_DESC": "90-degree cone area",
      "RECTANGLE": "Rectangle",
      "RECTANGLE_DESC": "Square/rectangular area effect",
      "LINE": "Line (Ray)",
      "LINE_DESC": "Straight line area",
      "RADIUS": "Radius",
      "LENGTH": "Length",
      "SIZE": "Size",
      "FEET": "feet",
      "CREATE": "Create Template",
      "INVALID_RADIUS": "Radius must be between 1 and 1000 feet",
      "ECHOLOCATION_LABEL": "Echolocation",
      "ECHOLOCATION_TOOLTIP": "Precise hearing active until the start of your next turn",
      "LIFESENSE_LABEL": "Lifesense",
      "LIFESENSE_TOOLTIP": "Can sense living and undead creatures within range (imprecise sense)",
      "UNMET_CONDITIONS": "Unmet Conditions",
      "SENSE_UNSEEN_BUTTON": "Sense the Unseen (Reaction)",
      "SENSE_UNSEEN_TOOLTIP": "Use your Sense the Unseen feat to make undetected creatures hidden",
      "SENSE_UNSEEN_APPLIED": "Sense the Unseen Applied"
    },
    "SENSE_PRECISION": {
      "PRECISE": "Precise",
      "IMPRECISE": "Imprecise"
    },
    "REACTIONS": {
      "BUTTON_LABEL": "Reactions",
      "BUTTON_TOOLTIP": "Available reactions for this action",
      "NO_REACTIONS": "No reactions available",
      "DROPDOWN_TITLE": "Available Reactions",
      "SENSE_THE_UNSEEN": {
        "name": "Sense the Unseen",
        "applied": "Sense the Unseen Applied",
        "description": "Even though you failed at the triggering check, you automatically sense any Undetected creatures in the area where you're Seeking, making them merely Hidden to you.",
        "trigger": "You fail a Seek to find an undetected creature",
        "effect": "Make undetected creatures hidden to you"
      }
    },
    "HIDE_AUTOMATION": {
      "BUTTON_APPLY": "Apply Hide Results",
      "BUTTON_PREVIEW": "Preview Results",
      "BUTTON_PROCESSED": "Results Applied",
      "BUTTON_TOOLTIP": "Apply visibility changes based on Hide results",
      "NO_OBSERVERS": "No observers found for {name}'s Hide action",
      "NO_CHANGES": "No visibility changes needed for {name}'s Hide action",
      "RESULTS_APPLIED": "Hide automation applied changes: {changes}",
      "ERROR_PROCESSING": "Error applying Hide results. Check console for details.",
      "PROCESSING": "Processing Hide results...",
      "PREVIEW_TITLE": "Hide Results Preview",
      "PREVIEW_HINT": "Hide action results analysis",
      "ROLL_VS_DC": "Roll vs Perception DC",
      "OUTCOME": "Outcome",
      "VISIBILITY_CHANGE": "Visibility Change",
      "OPEN_RESULTS": "Open Hide Results",
      "OPEN_RESULTS_TOOLTIP": "Open the Hide results dialog to apply individual or bulk visibility changes",
      "ENCOUNTER_ONLY": "Show only encounter tokens",
      "SETTING_NAME": "Enable Hide Automation",
      "SETTING_HINT": "Automatically add buttons to Hide chat messages for applying visibility changes",
      "BADGES": {
        "TERRAIN_STALKER_LABEL": "Terrain Stalker",
        "TERRAIN_STALKER_TOOLTIP": "Chosen terrains active: {selection} (Region: {environments})",
        "VANISH_INTO_THE_LAND_LABEL": "Vanish into the Land",
        "VANISH_INTO_THE_LAND_TOOLTIP": "You can Hide and Sneak even without cover or concealment in your chosen difficult terrain",
        "VERY_VERY_SNEAKY_LABEL": "Very, Very Sneaky",
        "VERY_VERY_SNEAKY_TOOLTIP": "Cover/concealment requirement is bypassed",
        "LEGENDARY_SNEAK_LABEL": "Legendary Sneak",
        "LEGENDARY_SNEAK_TOOLTIP": "Cover/concealment requirement is bypassed",
        "CEASELESS_SHADOWS_LABEL": "Ceaseless Shadows",
        "CEASELESS_SHADOWS_TOOLTIP": "Cover/concealment prerequisites are removed",
        "CAMOUFLAGE_LABEL": "Camouflage",
        "CAMOUFLAGE_TOOLTIP": "Cover/concealment requirement is bypassed in natural terrain",
        "DISTRACTING_SHADOWS_LABEL": "Distracting Shadows",
        "DISTRACTING_SHADOWS_TOOLTIP": "You may use larger creatures as cover for Hide/Sneak prerequisites"
      }
    },
    "SNEAK_AUTOMATION": {
      "BUTTON_APPLY": "Apply Sneak Results",
      "BUTTON_PREVIEW": "Preview Results",
      "BUTTON_PROCESSED": "Results Applied",
      "BUTTON_TOOLTIP": "Apply visibility changes based on Sneak results",
      "NO_OBSERVERS": "No tokens can see {actor} - no sneak needed",
      "NO_CHANGES": "Sneak had no effect on visibility",
      "ERROR_PROCESSING": "Error processing Sneak results",
      "PROCESSING": "Processing Sneak results...",
      "PREVIEW_TITLE": "Sneak Results Preview",
      "PREVIEW_HINT": "Sneak action results analysis",
      "ROLL_VS_DC": "Roll vs Perception DC",
      "OUTCOME": "Outcome",
      "VISIBILITY_CHANGE": "Visibility Change",
      "OPEN_RESULTS": "Open Sneak Results",
      "OPEN_RESULTS_TOOLTIP": "Open the Sneak results dialog to apply individual or bulk visibility changes",
      "ENCOUNTER_ONLY": "Show only encounter tokens",
      "SETTING_NAME": "Enable Sneak Automation",
      "SETTING_HINT": "Automatically add buttons to Sneak chat messages for applying visibility changes",
      "BADGES": {
        "TERRAIN_STALKER_LABEL": "Terrain Stalker",
        "TERRAIN_STALKER_TOOLTIP": "Chosen terrains active: {selection} (Region: {environments})",
        "VANISH_INTO_THE_LAND_LABEL": "Vanish into the Land",
        "VANISH_INTO_THE_LAND_TOOLTIP": "You can Sneak even without cover or concealment in your chosen difficult terrain",
        "VERY_VERY_SNEAKY_LABEL": "Very, Very Sneaky",
        "VERY_VERY_SNEAKY_TOOLTIP": "Cover/concealment requirement is bypassed",
        "LEGENDARY_SNEAK_LABEL": "Legendary Sneak",
        "LEGENDARY_SNEAK_TOOLTIP": "Cover/concealment requirement is bypassed",
        "CEASELESS_SHADOWS_LABEL": "Ceaseless Shadows",
        "CEASELESS_SHADOWS_TOOLTIP": "Cover/concealment prerequisites are removed",
        "OFF_GUARD_PREVENTED_LABEL": "Off-Guard Prevented",
        "OFF_GUARD_PREVENTED_TOOLTIP": "{EFFECT} prevents off-guard penalty",
        "CAMOUFLAGE_LABEL": "Camouflage",
        "CAMOUFLAGE_TOOLTIP": "Cover/concealment requirement is bypassed in natural terrain",
        "DISTRACTING_SHADOWS_LABEL": "Distracting Shadows",
        "DISTRACTING_SHADOWS_TOOLTIP": "You may use larger creatures as cover for Hide/Sneak prerequisites"
      }
    },
    "CREATE_A_DIVERSION_AUTOMATION": {
      "BUTTON_APPLY": "Apply Diversion Results",
      "BUTTON_TOOLTIP": "Apply visibility changes from Create a Diversion action",
      "NO_OBSERVERS": "No tokens can see {actor} - no diversion needed",
      "NO_CHANGES": "Create a Diversion had no effect on visibility",
      "ERROR_PROCESSING": "Error processing Create a Diversion results",
      "PROCESSING": "Processing Create a Diversion results...",
      "PREVIEW_TITLE": "Create a Diversion Results Preview",
      "PREVIEW_HINT": "Diversion action results analysis",
      "ROLL_VS_DC": "Roll vs Perception DC",
      "OUTCOME": "Outcome",
      "VISIBILITY_CHANGE": "Visibility Change",
      "OPEN_RESULTS": "Open Diversion Results",
      "OPEN_RESULTS_TOOLTIP": "Open the Create a Diversion results dialog to apply individual or bulk visibility changes",
      "ENCOUNTER_ONLY": "Show only encounter tokens",
      "SETTING_NAME": "Enable Create a Diversion Automation",
      "SETTING_HINT": "Automatically add buttons to Create a Diversion chat messages for applying visibility changes"
    },
    "SETTINGS": {
      "ENABLE_HOVER_TOOLTIPS": {
        "name": "Enable Hover Tooltips",
        "hint": "Show visibility status tooltips when hovering over tokens"
      },
      "ALLOW_PLAYER_TOOLTIPS": {
        "name": "Allow Player Tooltips",
        "hint": "When enabled, players can see visibility indication tooltips from their perspective when hovering over tokens"
      },
      "TOOLTIP_FONT_SIZE": {
        "name": "Tooltip Size",
        "hint": "Choose tooltip size (affects icon and border size; text adjusts accordingly)",
        "CHOICES": {
          "tiny": "Tiny",
          "small": "Small",
          "medium": "Medium",
          "large": "Large",
          "xlarge": "Extra Large"
        }
      },
      "AUTO_VISIBILITY_ENABLED": {
        "name": "Enable Auto-Visibility System",
        "hint": "Automatically set visibility flags based on lighting conditions and creature senses. This system will analyze scene lighting, token positions, and creature abilities to determine appropriate visibility states (observed, concealed, hidden, undetected)."
      },
      "AVS_GM_VISION_WARNING_SUPPRESS": {
        "name": "Suppress GM Vision warning",
        "hint": "Client-only: Don't show the 'GM Vision active' warning banner when GM Vision prevents AVS."
      },
      "AUTO_VISIBILITY_DEBUG_MODE": {
        "name": "Auto-Visibility Debug Mode",
        "hint": "Enable detailed console logging for the auto-visibility system. Useful for troubleshooting visibility calculations."
      },
      "AVS_ONLY_IN_COMBAT": {
        "name": "AVS Only Active in Combat",
        "hint": "When enabled, the Auto-Visibility System will only be active during encounters and will only track visibility for tokens in the encounter. Visibility will be reset when combat ends."
      },
      "DISABLE_LINE_OF_SIGHT": {
        "name": "Disable Line of Sight Raycasting",
        "hint": "Disable line-of-sight raycasting for visibility. When enabled, visibility will only be calculated for selected tokens using their vision shapes. Visibility results within the visibility shape will be more accurate, but darkvision and unselected token results will only use distance and senses, ignoring walls and obstacles."
      },
      "AVS_OVERRIDE_VALIDATION_ON_TURN_CHANGE": {
        "name": "Validate AVS Overrides on Turn Change",
        "hint": "When enabled, the system will check all AVS overrides at the start of each turn and display a validation indicator if any overrides are active. This helps ensure overrides remain accurate as combat progresses."
      },
      "AVS_SKIP_TIMED_OVERRIDE_VALIDATION": {
        "name": "Skip Timed Override Validation",
        "hint": "When enabled, overrides with active timers are excluded from round-change validation checks. This prevents round-change prompts for temporary overrides that haven't expired yet. Note: Movement validation always skips timed overrides regardless of this setting."
      },
      "COLORBLIND_MODE": {
        "name": "Colorblind Mode",
        "hint": "Select a colorblind mode to adjust colors for better visibility (client-side setting)",
        "CHOICES": {
          "none": "No Colorblind Mode",
          "protanopia": "Protanopia (Red-Blind)",
          "deuteranopia": "Deuteranopia (Green-Blind)",
          "tritanopia": "Tritanopia (Blue-Blind)",
          "achromatopsia": "Achromatopsia (Complete Color Blindness)"
        }
      },
      "IGNORE_ALLIES_DEFAULT": {
        "name": "Set Default \"Ignore Allies\" State",
        "hint": "Determines whether the Ignore Allies checkbox in Visioner Manager/Action dialogs starts enabled or disabled but can still be toggled manually"
      },
      "HIDE_FOUNDRY_HIDDEN_TOKENS": {
        "name": "Set Default \"Hide Foundry Hidden\" State",
        "hint": "Determines whether the Hide Foundry Hidden checkbox in Visioner Manager/Action dialogs starts enabled or disabled but can still be toggled manually"
      },
      "SNEAK_ALLOW_HIDDEN_UNDETECTED_END_POSITION": {
        "name": "Allow Hidden/Undetected for Sneak End Position",
        "hint": "When enabled, Sneak end positions will also qualify if the target is Hidden or Undetected (in addition to the default Concealed). A plus icon will appear in the dialog to indicate this extended qualification."
      },
      "ENABLE_ALL_TOKENS_VISION": {
        "name": "Vision for NPCs",
        "hint": "Enables token vision for all NPC tokens to more easily see point of view"
      },
      "ENABLE_CAMERA_VISION_AGGREGATION": {
        "name": "Camera Vision Aggregation",
        "hint": "When enabled, camera accounts with observer permissions on multiple party tokens will display the best (most permissive) visibility state across all controlled tokens, instead of just the first token. Useful for streaming where camera needs to see what any party member can see."
      },
      "GDV_VISUAL_OVERRIDE_ENABLED": {
        "name": "Greater Darkvision Visual Override",
        "hint": "Client-only: When your selected token has Greater Darkvision, lighten darkness areas so visuals match Visioner rules."
      },
      "GDV_OVERLAY_ALPHA": {
        "name": "GDV Overlay Intensity",
        "hint": "Client-only: How strongly to counteract darkness tint for Greater Darkvision (0–1)."
      },
      "GDV_TOKEN_GRAYSCALE": {
        "name": "GDV: Black & White Tokens",
        "hint": "Client-only: When seeing via (greater) darkvision, render tokens in grayscale to match rules text (black and white vision)."
      },
      "DEFAULT_ENCOUNTER_FILTER": {
        "name": "Set Default \"Encounter Only\" State",
        "hint": "Determines whether the Encounter Only checkbox in Visioner Manager/Action dialogs starts enabled or disabled but can still be toggled manually\n(This checkbox only appears in dialogs during encounters)"
      },
      "LIMIT_SEEK_RANGE": {
        "name": "Limit Combat Seek Range",
        "hint": "Target will be decided based on the specified distance from token using Seek while in combat"
      },
      "SEEK_TEMPLATE_SKIP_DIALOG": {
        "name": "Always Skip Seek Template Dialog",
        "hint": "When enabled, the Seek template configuration dialog will be skipped and default values (15ft burst) will be used."
      },
      "SEEK_USE_TEMPLATE": {
        "name": "Use Seek Template",
        "hint": "When Seeking, targets will be decided using a 15-foot burst template. Template button replaces standard Visioner buttons in Seek chat card"
      },
      "LIMIT_SEEK_RANGE_OUT_OF_COMBAT": {
        "name": "Limit Exploration Seek Range",
        "hint": "Target will be decided based on the specified distance from token using Seek while out of combat"
      },
      "CUSTOM_SEEK_DISTANCE": {
        "name": "Combat Seek Range:",
        "hint": "Maximum Distance for Seek in combat"
      },
      "CUSTOM_SEEK_DISTANCE_OOC": {
        "name": "Exploration Seek Range:",
        "hint": "Maximum Distance for Seek out of combat"
      },
      "USE_HUD_BUTTON": {
        "name": "Use Token HUD Button",
        "hint": "When enabled, adds a visibility button to the token HUD. When disabled, uses a floating button when tokens are selected."
      },
      "BLOCK_PLAYER_TARGET_TOOLTIPS": {
        "name": "Block Target Tooltips for Players",
        "hint": "When enabled, players won't see tooltips when hovering over tokens in target mode (how others see the hovered token). They can still see tooltips when holding O key or pressing Alt."
      },
      "REMOVE_PLAYER_TARGET_TOOLTIPS": {
        "name": "Remove Target Hover Tooltips from Players",
        "hint": "Stops players from seeing hover tooltips from target perspective for owned tokens"
      },
      "REMOVE_PLAYER_OBSERVER_TOOLTIPS": {
        "name": "Remove Observer Hover Tooltips from Players",
        "hint": "Stops players from seeing observer-perspective hover tooltips (O key / observer mode)"
      },
      "INTEGRATE_COVER_VISIBILITY": {
        "name": "Integrate Cover with Visibility Rules",
        "hint": "When enabled, certain actions follow cover prerequisites. For example, Hide is only allowed if the acting token has at least Standard Cover from an observer."
      },
      "INTEGRATE_ROLL_OUTCOME": {
        "name": "Integrate roll outcome in the token manager",
        "hint": "Adds a column to the Token Manager to show the last relevant roll result vs current DC and outcome."
      },
      "ENFORCE_RAW": {
        "name": "Enforce RAW",
        "hint": "When enabled, certain actions follow prerequisites. For example, Hide is only allowed if the acting token is Concealed or has Standard Cover from an observer."
      },
      "DEBUG": {
        "name": "Debug Mode",
        "hint": "Enable detailed console logging for troubleshooting"
      },
      "LOOT_PERCEPTION_DC": {
        "name": "Default Perception DC for Loot Actors",
        "hint": "Used when a loot token needs a Perception DC and doesn't have a system stat."
      },
      "LOOT_STEALTH_DC": {
        "name": "Loot Actor Stealth DC",
        "hint": "Default DC used when using Seek to find hidden Loot Actors. Stealth DC can be changed in the Loot Actor's token settings"
      },
      "WALL_STEALTH_DC": {
        "name": "Wall Stealth DC",
        "hint": "Default DC used when using Seek to find hidden Walls. Stealth DC can be changed in the Wall's settings"
      },
      "HIDE_QUICK_EDIT_TOOL": {
        "name": "Hide Quick Edit Tool",
        "hint": "If enabled, the Quick Edit tool will be hidden from the token controls toolbar."
      },
      "INCLUDE_LOOT_ACTORS": {
        "name": "Hidden Loot Actors",
        "hint": "Allows configuring of loot actors conditional visibility states within the Visioner manager \n(visual only - no conditions)"
      },
      "INCLUDE_WALLS": {
        "name": "Hidden Walls",
        "hint": "Allows configuring of walls conditional visibility states within the Visioner manager. Visual indicator when succeeding at Seek"
      },
      "HIDDEN_WALLS": {
        "name": "Hidden Walls",
        "hint": "Allows configuring of walls conditional visibility states within the Visioner manager. Visual indicator when succeeding at Seek"
      },
      "AUTO_COVER": {
        "name": "Enable Auto-Cover",
        "hint": "Allows cover to be automatically applied based on token coverage in relation to walls and other tokens"
      },
      "EXPERIMENTAL_SEE_THROUGH_WALLS": {
        "name": "Experimental: Per-Token See-Through Walls (Client-Only)",
        "hint": "When enabled on your client, selected token(s) will ignore walls you have marked as Observed in the Hidden Walls list. Visual-only and highly experimental."
      },
      "SNEAK_RAW_ENFORCEMENT": {
        "name": "Sneak Raw Enforcement",
        "hint": "When enabled, Sneak will follow RAW rules. When disabled, Sneak will be more forgiving."
      },
      "TOKEN_HUD_BUTTON": {
        "name": "Token HUD Button",
        "hint": "Adds a button to Foundry's token HUD for opening up the Visioner Manager. When disabled, a movable floating button will appear while a token is selected"
      },
      "VISIONER_SCENE_CONTROLS": {
        "name": "Visioner Scene Controls",
        "hint": "Adds specific Visioner features as buttons to Token Controls and Wall Controls on the left sidebar. If disabled, features can still be accessed via individual token/wall settings or keybinds"
      },
      "HIDDEN_WALL_INDICATOR_WIDTH": {
        "name": "Hidden Wall Indicator Width",
        "hint": "Default width (in pixels) for hidden wall visual indicators. This can be overridden per-scene in Scene Configuration. Larger values make hidden walls more visible on the canvas."
      },
      "DIM_LIGHTING_THRESHOLD": {
        "name": "Dim Lighting Threshold",
        "hint": "Default threshold for determining dim lighting (0.0 to 1.0). Values below this threshold are considered dim light. This can be overridden per-scene in Scene Configuration."
      },
      "DISABLE_AVS_PER_SCENE": {
        "name": "Disable AVS for this Scene",
        "hint": "When enabled, the Auto-Visibility System will be disabled for this scene. Visibility states will not be automatically calculated or updated."
      },
      "AVS_CHANGES_INDICATOR_SIZE": {
        "name": "AVS Changes Indicator Size",
        "hint": "Controls the size of the floating AVS changes indicator button and its tooltip.",
        "CHOICES": {
          "small": "Small",
          "medium": "Medium",
          "large": "Large",
          "xlarge": "Extra Large"
        }
      },
      "SHARED_VISION_INDICATOR_SIZE": {
        "name": "Shared Vision Indicator Size",
        "hint": "Controls the size of the floating shared vision indicator button.",
        "CHOICES": {
          "small": "Small",
          "medium": "Medium",
          "large": "Large",
          "xlarge": "Extra Large"
        }
      },
      "MANAGER_ROLL_COMPARISON": {
        "name": "Visioner Manager Roll Comparison",
        "hint": "Adds a roll comparison column to the Visioner Manager comparing the last relevant roll vs relevant DC"
      },
      "TOKEN_INTERSECTION_MODE": {
        "name": "Token Ray Intersection Mode",
        "hint": "How cover is evaluated based on tokens as blockers",
        "CHOICES": {
          "any": "Any - Any intersection. Lesser Cover; Standard Cover if two sizes or larger than attacker and target",
          "length10": "10% - Intersect 10% or more of blocker side",
          "coverage": "Side Coverage - Thresholds based on percentage of side coverage. 50% Standard/70% Greater",
          "tactical": "Tactical - Corner to corner calculation for more precise calculations"
        }
      },
      "AUTO_COVER_IGNORE_UNDETECTED": {
        "name": "Ignore Undetected Tokens",
        "hint": "Undetected tokens, per Visioner effect, will not provide Auto-Cover"
      },
      "AUTO_COVER_VISUALIZATION_COMBAT_ONLY": {
        "name": "Restrict Auto-Cover Visualization to Combat",
        "hint": "Limits the use of Auto-Cover Visualization keybind to only be usable during an active combat"
      },
      "AUTO_COVER_GM_RESPECT_FOG": {
        "name": "GM Token Auto-Cover Visualization",
        "hint": "GM will see the limits to the Auto-Cover Visualization based on token's vision"
      },
      "AUTO_COVER_IGNORE_DEAD": {
        "name": "Ignore Dead Tokens",
        "hint": "Dead tokens will not provide Auto-Cover"
      },
      "AUTO_COVER_IGNORE_SMALLER_TOKENS": {
        "name": "Ignore Smaller Tokens",
        "hint": "Tokens smaller than the attacker will not provide Auto-Cover"
      },
      "AUTO_COVER_IGNORE_SAME_SIZE_TOKENS": {
        "name": "Ignore Same Size Tokens",
        "hint": "Tokens the same size as the attacker will not provide Auto-Cover"
      },
      "AUTO_COVER_IGNORE_LARGER_TOKENS": {
        "name": "Ignore Larger Tokens",
        "hint": "Tokens larger than the attacker will not provide Auto-Cover"
      },
      "AUTO_COVER_IGNORE_ALLIES": {
        "name": "Ignore Ally Tokens",
        "hint": "Ally tokens will not provide Auto-Cover"
      },
      "WALL_STANDARD_THRESHOLD": {
        "name": "Wall Standard Threshold:",
        "hint": "Percent of the target token that must be blocked to grant Standard Cover"
      },
      "WALL_GREATER_THRESHOLD": {
        "name": "Wall Greater Threshold:",
        "hint": "Percent of the target token that must be blocked to grant Greater Cover"
      },
      "WALLS_ALLOW_GREATER": {
        "name": "Walls Allow Greater Cover",
        "hint": "Allows walls to grant Greater Cover based on configurable threshold"
      },
      "IGNORE_PRONE_TOKENS": {
        "name": "Ignore Prone Tokens",
        "hint": "Prone tokens will not provide Auto-Cover"
      },
      "KEYBIND_OPEN_MANAGER_TARGET_MODE": {
        "name": "Keybinding Opens Manager in Target Mode",
        "hint": "Open Visioner Manager in Target mode rather than Observer via keybinding."
      },
      "VISIONER_QUICK_EDIT_TOOL": {
        "name": "Visioner Quick Edit Tool",
        "hint": "Adds a button to Token Controls sidebar to open the Visioner Quick Edit tool. If disabled, the tool can be accessed with a keybind"
      }
    },
    "UI": {
      "ENCOUNTER_FILTER_TEXT": "Show only encounter tokens",
      "CEASELESS_SHADOWS_UPGRADE_TOOLTIP": "{FEAT}: {FROM} → {TO} (feat upgrade)",
      "COVER_OVERRIDE": "Cover Override",
      "ROLL": "Roll",
      "APPLY_ALL": "Apply All",
      "REVERT_ALL": "Revert All",
      "REMOVE_OVERRIDES": "Remove Overrides",
      "BULK_SET_VISIBILITY": "Bulk Set Visibility",
      "CLEAR_BULK_OVERRIDES": "Clear Bulk Overrides",
      "FILTER_BY_DETECTION_LABEL": "Filter By Viewport",
      "FILTER_BY_DETECTION_TOOLTIP": "Only show tokens that are within the current viewport",
      "ATTEMPTING_TO_HIDE": "Attempting to hide from observers",
      "IGNORE_ALLIES": "Ignore allies",
      "IGNORE_ALLIES_TOOLTIP": "Hide allies from the results list",
      "HIDE_FOUNDRY_HIDDEN": "Hide Foundry-hidden tokens",
      "HIDE_FOUNDRY_HIDDEN_TOOLTIP": "Visually hide tokens that are Foundry-hidden (document.hidden)",
      "SHOW_ONLY_CHANGES": "Show only changes",
      "SHOW_ONLY_CHANGES_TOOLTIP": "Show only rows with visibility changes",
      "ENCOUNTER_FILTER_TOOLTIP": "Only show tokens in the current encounter",
      "CONCEALED_TOOLTIP_SHORT": "Concealed",
      "STANDARD_OR_GREATER_TOOLTIP": "Standard or Greater",
      "FOUNDRY_HIDDEN": "Foundry Hidden",
      "COVER_OVERRIDDEN_POPUP": "Cover overridden via keybind popup",
      "COVER_OVERRIDDEN_DIALOG": "in roll dialog",
      "COVER_OVERRIDDEN_MANUALLY": "manually",
      "NO_COVER_STEALTH": "No Cover (+0 Stealth)",
      "END_POSITION_NOT_AVAILABLE": "End position data not available",
      "START_POSITION_NOT_AVAILABLE": "Start position data not available",
      "AVS_CONTROLLED": "Controlled by Auto-Visibility System",
      "ORIGINAL_COVER": "Original Cover: {state}",
      "APPLY_VISIBILITY_CHANGE": "Apply this visibility change",
      "REVERT_TO_ORIGINAL": "Revert to original visibility",
      "APPLY_ALL_CHANGES": "Apply all visibility changes",
      "REVERT_ALL_CHANGES": "Revert all changes to original state",
      "ATTACK_CONSEQUENCES": "Attack consequences for hidden/undetected attacker",
      "TOKEN": "Token",
      "NAME": "Name",
      "VISIBILITY_CHANGE": "Visibility Change",
      "ACTIONS": "Actions",
      "HIDE_WALLS": "Hide walls from the results list",
      "IGNORE_WALLS": "Hide walls from the results list",
      "OVERRIDE_TO_STATE": "Override to {label}",
      "HIDDEN_OR_UNDETECTED": "Hidden or Undetected",
      "NO_COVER_BONUS": "No cover bonus (+0)",
      "STANDARD_COVER_BONUS": "Standard cover bonus (+2)",
      "GREATER_COVER_BONUS": "Greater cover bonus (+4)",
      "DEFER_TO_END_OF_TURN": "Defer end position check to end of turn (Sneaky feat)",
      "CURRENTLY_DEFERRED": "Currently deferred to end of turn (Sneaky feat)",
      "DEFERRED_ACTIONS_DISABLED": "Actions disabled - deferred to end of turn",
      "REMOVE_DEFER_PROCESS_NOW": "Remove defer and process this check now",
      "ACKNOWLEDGE_END_TURN": "Acknowledge end-of-turn position validation results",
      "CLOSE_DIALOG": "Close dialog (results are automatically applied)",
      "UNDEFER_ALL": "Undefer all currently deferred tokens and restore their original state",
      "DEFER_ALL_ELIGIBLE": "Defer all eligible position checks to end of turn",
      "PROCESS_DEFERRED_CHECKS": "Process {count} deferred position check{s} for end-of-turn validation",
      "APPLY_NO_COVER_ALL": "Apply no cover bonus to all observers",
      "APPLY_STANDARD_COVER_ALL": "Apply standard cover bonus to all observers",
      "APPLY_GREATER_COVER_ALL": "Apply greater cover bonus to all observers",
      "AVS_CHANGE_INFO": "Movement or lighting changes can invalidate previously set visibility overrides. Review each AVS change below to decide whether to accept or reject it.",
      "ACCEPT_ALL_CHANGES": "Accept all changes",
      "REJECT_ALL_CHANGES": "Reject all changes",
      "ACCEPT_THIS_CHANGE": "Accept this change",
      "REJECT_THIS_CHANGE": "Reject this change",
      "ACCEPT_ALL_IN_TABLE": "Accept all changes in this table",
      "CLICK_TO_SWITCH_MODE": "Click to switch between Observer and Target modes",
      "WALL_COVER_AUTO": "Automatic Detection - Wall provides cover based on coverage thresholds",
      "WALL_COVER_NONE": "No Cover - Wall never provides cover regardless of thresholds",
      "WALL_COVER_STANDARD_MAX": "Standard Cover Maximum - Wall provides up to standard cover based on thresholds",
      "WALL_COVER_GREATER_MAX": "Greater Cover Maximum - Wall provides up to greater cover based on thresholds",
      "MARK_WALL_HIDDEN": "Mark this wall as hidden from players",
      "SET_ALL_PCS_AS": "Set all PCs as {state}",
      "SET_ALL_NPCS_AS": "Set all NPCs as {state}",
      "SET_ALL_HAZARDS_OBSERVED": "Set all Hazards as Observed",
      "SET_ALL_HAZARDS_HIDDEN": "Set all Hazards as Hidden",
      "SET_ALL_LOOT_OBSERVED": "Set all Loot as Observed",
      "SET_ALL_LOOT_HIDDEN": "Set all Loot as Hidden",
      "SET_ALL_WALLS_OBSERVED": "Set all listed walls as Observed",
      "SET_ALL_WALLS_HIDDEN": "Set all listed walls as Hidden",
      "SELECT_ALL_PARTY": "Select all party tokens",
      "SELECT_ALL_ENEMIES": "Select all enemy tokens",
      "SWAP_OBSERVER_TARGET": "Swap Observer/Target mode",
      "TARGET_ALL_PARTY": "Target all party tokens",
      "TARGET_ALL_ENEMIES": "Target all enemy tokens",
      "CLEAR_ALL_SELECTIONS": "Clear all selections and targets",
      "PF2E_VISIONER": "PF2E Visioner",
      "CONFIGURE_SETTINGS_BELOW": "Configure settings below.",
      "APPLY_COVER_CHANGE": "Apply this cover change",
      "REVERT_TO_ORIGINAL_COVER": "Revert to original cover",
      "APPLY_ALL_COVER_CHANGES": "Apply all cover changes",
      "REVERT_ALL_COVER_CHANGES": "Revert all changes",
      "SHOW_ONLY_COVER_CHANGES_TOOLTIP": "Show only rows with cover/visibility changes",
      "SET_ALL_WALLS_HIDDEN_BULK": "Set all walls to Hidden",
      "SET_ALL_WALLS_NON_HIDDEN_BULK": "Set all walls to Non-Hidden",
      "SET_ALL_WALLS_AUTO_COVER": "Set all walls to Auto Cover",
      "SET_ALL_WALLS_NO_COVER": "Set all walls to No Cover",
      "SET_ALL_WALLS_LESSER_COVER": "Set all walls to Lesser Cover",
      "SET_ALL_WALLS_STANDARD_COVER": "Set all walls to Standard Cover",
      "SET_ALL_WALLS_GREATER_COVER": "Set all walls to Greater Cover",
      "WALL_TYPE_CYCLE_TOOLTIP": "Left-click: next type | Right-click: previous type",
      "SELECT_WALL_AND_PAN": "Select wall and pan to it",
      "WALL_COVER_AUTO_SHORT": "Automatic Detection",
      "WALL_COVER_NONE_SHORT": "No Cover",
      "WALL_COVER_LESSER_SHORT": "Lesser Cover",
      "WALL_COVER_STANDARD_SHORT": "Standard Cover",
      "WALL_COVER_GREATER_SHORT": "Greater Cover",
      "COVER_OVERRIDDEN_VIA": "Cover overridden {source}: {originalLabel} → {finalLabel}",
      "START_POS_PREVIOUS_SNEAK": "Start position qualification from previous sneak action",
      "START_POS_QUALIFIES": "Start position qualifies for sneak",
      "START_POS_NOT_QUALIFIES": "Start position does not qualify for sneak",
      "END_POS_CHECK_END_TURN": "End position will be checked at end of turn (consecutive sneak)",
      "END_POS_QUALIFIES": "End position qualifies for sneak",
      "END_POS_NOT_QUALIFIES": "End position does not qualify for sneak",
      "END_POS_QUALIFIES_EXTENDED": "End position qualifies for sneak (Hidden/Undetected also allowed)",
      "CONCEALED_HIDDEN_UNDETECTED": "Concealed, Hidden, or Undetected (extended rule active)",
      "AVS_RECOMMENDED": "AVS Recommended: {label}",
      "TOGGLE_MODE_TOOLTIP": "Click to switch between Observer and Target modes",
      "ONLY_SHOW_ENCOUNTER_TOOLTIP": "Only show tokens in the current encounter",
      "HIDE_FOUNDRY_HIDDEN_DOCUMENT_TOOLTIP": "Visually hide tokens that are Foundry-hidden (document.hidden)",
      "SHOW_ONLY_VISIBILITY_CHANGES": "Show only rows with visibility changes",
      "SET_ALL_AS": "Set all {type} as {state}",
      "SET_ALL_WALLS_AS": "Set all listed walls as {state}",
      "WALL_COVER_AUTO_TOOLTIP": "Automatic Detection - Wall provides cover based on coverage thresholds",
      "WALL_COVER_NONE_TOOLTIP": "No Cover - Wall never provides cover regardless of thresholds",
      "WALL_COVER_LESSER_TOOLTIP": "Lesser Cover Maximum - Wall provides up to lesser cover based on thresholds",
      "WALL_COVER_STANDARD_TOOLTIP": "Standard Cover Maximum - Wall provides up to standard cover based on thresholds",
      "WALL_COVER_GREATER_TOOLTIP": "Greater Cover Maximum - Wall provides up to greater cover based on thresholds",
      "WALL_HIDDEN_TOOLTIP": "Mark this wall as hidden from players",
      "SWAP_MODE": "Swap Observer/Target mode",
      "AVS_CHANGE_INFO_TOOLTIP": "Movement or lighting changes can invalidate previously set visibility overrides. Review each AVS change below to decide whether to accept or reject it.",
      "ACCEPT_ALL_CHANGES_IN_TABLE": "Accept all changes in this table",
      "PREVIEW_POINT_OUT_CHANGES": "Preview and apply Point Out visibility changes",
      "APPLY_WITHOUT_DIALOG": "Apply all calculated changes without opening the dialog",
      "TOKEN_COVER_AUTO_TOOLTIP": "Automatic Detection - Token provides cover based on coverage thresholds",
      "TOKEN_COVER_NONE_TOOLTIP": "No Cover - Token never provides cover regardless of thresholds",
      "TOKEN_COVER_LESSER_TOOLTIP": "Lesser Cover - Token always provides lesser cover",
      "TOKEN_COVER_STANDARD_TOOLTIP": "Standard Cover - Token always provides standard cover",
      "TOKEN_COVER_GREATER_TOOLTIP": "Greater Cover - Token always provides greater cover",
      "ENCOUNTER_MASTER_LABEL": "Encounter Master",
      "ENCOUNTER_MASTER_TOOLTIP": "Select a token whose encounter participation determines this token's encounter status. Useful for eidolons, pets, or other companions not directly in the combat tracker.",
      "ENCOUNTER_MASTER_NONE": "None (use default detection)",
      "ENCOUNTER_MASTER_DIALOG_TITLE": "Select Encounter Master",
      "ENCOUNTER_MASTER_PAN": "Pan to token",
      "ENCOUNTER_MASTER_SELECT": "Select",
      "ENCOUNTER_MASTER_CHOOSE": "Choose Master...",
      "VISION_MASTER_LABEL": "Vision Master",
      "VISION_MASTER_TOOLTIP": "Select a master token whose vision this token will share. The minion uses the master's field of view for visibility calculations. Useful for summoned creatures or familiars that should see from their creator's perspective.",
      "VISION_MASTER_CHOOSE": "Choose Vision Master...",
      "SHARED_VISION_TITLE": "Shared Vision",
      "VISION_TOKEN": "Token",
      "VISION_MASTER": "Master",
      "VISION_SHARED_WITH": "Minion",
      "VISION_ROLE_MASTER": "Master",
      "VISION_ROLE_MASTER_MULTIPLE": "Master ({count} minions)",
      "VISION_ROLE_MINION": "Minion",
      "CLICK_TO_PAN": "Click to pan to master token",
      "CLICK_TO_PAN_MINION": "Click to pan to minion token",
      "MIDDLE_CLICK_TO_CYCLE": "Middle-click to cycle minions",
      "RIGHT_CLICK_TO_REMOVE": "Right-click to remove vision sharing",
      "SNIPING_DUO_SPOTTER_LABEL": "Sniping Duo Spotter",
      "SNIPING_DUO_SPOTTER_TOOLTIP": "Choose your Sniping Duo spotter (the ally who should not provide cover for Strikes between you).",
      "SNIPING_DUO_SPOTTER_CHOOSE": "Choose Spotter...",
      "SNIPING_DUO_DIALOG_TITLE": "Select Sniping Duo Spotter",
      "SNIPING_DUO_NONE": "None",
      "SNIPING_DUO_PAN": "Pan to token",
      "SNIPING_DUO_SPOTTER_NOT_FOUND": "Sniping Duo: selected spotter not found.",
      "SNIPING_DUO_COVER_IGNORE_TOOLTIP": "{FEAT}: {ALLY} does not provide cover for this Strike.",
      "SNIPING_DUO_COVER_OVERRIDE_UNAVAILABLE": "{FEAT}: cover override unavailable.",
      "FROM_LINKED_DARKNESS": "From linked Darkness template",
      "NO_POSITION_CHANGE": "No position change",
      "SEARCH_WALL_PLACEHOLDER": "Search by identifier or wall ID...",
      "WALL_IDENTIFIER_PLACEHOLDER": "Hidden Wall",
      "WALL_DC_PLACEHOLDER": "DC",
      "CONNECTED_IDENTIFIERS_PLACEHOLDER": "comma-separated identifiers",
      "START_SNEAK_TOOLTIP": "Start sneaking: capture current visibility and cover states",
      "APPLY_COVER_CHANGES_WITHOUT_DIALOG": "Apply all calculated cover changes without opening the dialog",
      "NO_CHANGE_LABEL": "No Change",
      "APPLY_ALL_COVER_LABEL": "Apply All Cover:",
      "COVER": "Cover",
      "OUTCOME": "Outcome",
      "ROLL_VS_PERCEPTION_DC": "Roll vs Perception DC",
      "STEALTH_VS_PERCEPTION": "Stealth vs Perception",
      "COVER_BONUS": "Cover Bonus",
      "ROLL_OUTCOME": "Roll Outcome",
      "ALLY": "Ally",
      "OBSERVER_HEADER": "Observer",
      "TARGET_HEADER": "Target",
      "CURRENT_STATE": "Current State",
      "EFFECTS": "Effects",
      "STATUS": "Status",
      "SOURCE": "Source",
      "DC": "DC",
      "WALL_HEADER": "Wall",
      "IDENTIFIER": "Identifier",
      "TYPE": "Type",
      "HIDDEN_HEADER": "Hidden",
      "STEALTH_DC": "Stealth DC",
      "SELECT": "Select",
      "WALL_ID": "Wall Id",
      "VS_DC": "vs DC",
      "AVAILABLE_SENSES": "Available Senses",
      "POINT_OUT_INDICATOR": "Point Out",
      "DEFER_ALL_ELIGIBLE_LABEL": "Defer All Eligible",
      "FAILURE_LABEL": "Failure",
      "SUCCESS_LABEL": "Success",
      "PLAYER_CHARACTERS": "Player Characters",
      "NPCS_LABEL": "NPCs",
      "HAZARDS_LABEL": "Hazards",
      "LOOT_LABEL": "Loot",
      "HIDDEN_WALLS_LABEL": "Hidden Walls",
      "TAKING_COVER_HINT": "Taking cover against observers",
      "SHOW_ONLY_CHANGES_LABEL": "Show only changes",
      "CHANGES_AS_OBSERVER": "Changes as Observer",
      "CHANGES_AS_TARGET": "Changes as Target",
      "BULK_ACTION_INFO": "Apply action to all changes at once",
      "PREREQUISITE": "Prerequisite",
      "COVER_CHANGE": "Cover Change",
      "COVER_LABEL": "Cover",
      "HIDDEN_WALL_LABEL": "Hidden Wall",
      "WALL_IDENTIFIER_LABEL": "Wall Identifier",
      "WALL_STEALTH_DC_LABEL": "Wall Stealth DC",
      "ALL_TYPES": "All Types",
      "WALLS": "Walls",
      "DOORS": "Doors",
      "SECRET_DOORS": "Secret Doors",
      "ALL": "All",
      "HIDDEN_ONLY": "Hidden Only",
      "ALL_COVER_TYPES": "All Cover Types",
      "AUTO_DETECTION": "Auto Detection",
      "NO_COVER_OPTION": "No Cover",
      "LESSER_MAX": "Lesser Max",
      "STANDARD_MAX": "Standard Max",
      "GREATER_MAX": "Greater Max",
      "VISIBILITY_LEGEND": "Visibility",
      "COVER_LEGEND": "Cover",
      "TARGET_DC": "Target DC",
      "START_POS": "Start Pos",
      "END_POS": "End Pos",
      "END_TURN_VALIDATION": "End Turn Validation",
      "ORIGINAL_CHANGE": "Original Change:",
      "NON_HIDDEN_ONLY": "Non-Hidden Only",
      "APPLY_ALL_BUTTON": "Apply All",
      "REVERT_ALL_BUTTON": "Revert All",
      "APPLIED_BUTTON": "Applied",
      "REVERTED_BUTTON": "Reverted",
      "PROCESSING": "Processing...",
      "UNDEFER_ALL_BUTTON": "Undefer All",
      "RESTORE_DEFERS_BUTTON": "Restore Defers",
      "REJECTED_LABEL": "Rejected",
      "ACCEPTED_LABEL": "Accepted",
      "APPLY_BUTTON_LABEL": "Apply",
      "REVERT_BUTTON_LABEL": "Revert",
      "HIDDEN_REACTION_LABEL": "Hidden (Reaction)",
      "HIDDEN_SENSE_UNSEEN_LABEL": "Hidden (Sense the Unseen)"
    },
    "WALL": {
      "VISIBLE_TO_YOU": "Hidden Wall",
      "observed": "Observed",
      "hidden": "Hidden"
    },
    "KEYBINDINGS": {
      "OPEN_TOKEN_MANAGER": {
        "name": "Open Visioner Manager",
        "hint": "Open the token manager for selected tokens"
      },
      "OPEN_VISIBILITY_MANAGER": {
        "name": "Open Token Visibility Manager",
        "hint": "Open the visibility manager for selected tokens"
      },
      "HOLD_COVER_OVERRIDE": {
        "name": "Hold to Override Cover on Quick Rolls",
        "hint": "When held while clicking a strike/attack (no dialog), use Visioner cover override instead of auto-calculated cover. No default; configure your own key."
      },
      "TOGGLE_OBSERVER_MODE": {
        "name": "Toggle Observer Mode for Hover Tooltips",
        "hint": "Hold this key to switch hover tooltips to observer mode (how hovered token sees others)"
      },
      "OPEN_QUICK_PANEL": {
        "name": "Open Visioner Quick Panel",
        "hint": "Open the compact Visioner Quick Edit panel."
      },
      "SHOW_AUTO_COVER_OVERLAY": {
        "name": "Show Auto-Cover Overlay",
        "hint": "Press to show auto-cover badges for the hovered token (or controlled token if none)."
      },
      "HOLD_COVER_VISUALIZATION": {
        "name": "Hold for Cover Visualization",
        "hint": "Hold this key while hovering over tokens to visualize cover fields. Shows optimal positioning for attacks."
      },
      "SHOW_WALL_COVER_LABELS": {
        "name": "Show Wall Cover Labels",
        "hint": "Hold this key while the walls tool is active to show cover status labels on walls (AUTO, NONE, LESSER, STANDARD, GREATER)."
      },
      "OPEN_WALL_MANAGER": {
        "name": "Open Wall Manager",
        "hint": "Open the Visioner Wall Manager dialog to bulk edit wall settings."
      },
      "SHOW_VISIBILITY_FACTORS": {
        "name": "Show Visibility Factors",
        "hint": "Press to show detailed reasons for visibility states from controlled tokens to all other tokens."
      }
    },
    "VISIBILITY_FACTORS": {
      "NO_TOKEN_SELECTED": "Select at least one token to show visibility factors",
      "STATE_LABEL": "State",
      "LIGHTING_LABEL": "Lighting",
      "UNKNOWN_STATE": "Unknown State",
      "STORED_STATE": "Visibility state is {state} (stored state - reason not captured)",
      "LIGHTING": {
        "bright": "Bright Light",
        "dim": "Dim Light",
        "darkness": "Darkness",
        "magicalDarkness": "Magical Darkness",
        "greaterMagicalDarkness": "Greater Magical Darkness"
      },
      "REASONS": {
        "OBSERVER_BLINDED": "Observer is blinded (cannot use visual senses)",
        "OBSERVER_DEAFENED_INVISIBLE": "Observer is deafened (cannot hear invisible target)",
        "OBSERVER_DAZZLED": "Observer is dazzled in bright light",
        "TARGET_INVISIBLE": "Target is invisible",
        "TARGET_UNDETECTED_CONDITION": "Target has undetected condition",
        "TARGET_HIDDEN_CONDITION": "Target has hidden condition",
        "TARGET_CONCEALED_CONDITION": "Target has concealed condition",
        "RULE_ELEMENT_OVERRIDE": "Rule element overrides state",
        "TARGET_IN_GREATER_DARKNESS_WITH_GREATER_DARKVISION": "Target is in greater magical darkness ({templates}), but observer has greater darkvision",
        "TARGET_IN_GREATER_DARKNESS_WITH_DARKVISION": "Target is in greater magical darkness ({templates}) - concealed even with darkvision",
        "TARGET_IN_GREATER_DARKNESS_NO_DARKVISION": "Target is in greater magical darkness ({templates}), observer lacks darkvision",
        "TARGET_IN_MAGICAL_DARKNESS_WITH_DARKVISION": "Target is in magical darkness ({templates}), but observer has darkvision",
        "TARGET_IN_MAGICAL_DARKNESS_NO_DARKVISION": "Target is in magical darkness ({templates}), observer lacks darkvision",
        "TARGET_IN_DARKNESS_WITH_DARKVISION": "Target is in darkness ({templates}), but observer has darkvision",
        "TARGET_IN_DARKNESS_NO_DARKVISION": "Target is in darkness ({templates}), observer lacks darkvision",
        "OBSERVER_IN_GREATER_DARKNESS_WITH_GREATER_DARKVISION": "Observer is in greater magical darkness ({templates}), but has greater darkvision",
        "OBSERVER_IN_GREATER_DARKNESS_WITH_DARKVISION": "Observer is in greater magical darkness ({templates}) - limits vision even with darkvision",
        "OBSERVER_IN_GREATER_DARKNESS_NO_DARKVISION": "Observer is in greater magical darkness ({templates}), lacks darkvision",
        "OBSERVER_IN_MAGICAL_DARKNESS_WITH_DARKVISION": "Observer is in magical darkness ({templates}), but has darkvision",
        "OBSERVER_IN_MAGICAL_DARKNESS_NO_DARKVISION": "Observer is in magical darkness ({templates}), lacks darkvision",
        "OBSERVER_IN_DARKNESS_WITH_DARKVISION": "Observer is in darkness ({templates}), but has darkvision",
        "OBSERVER_IN_DARKNESS_NO_DARKVISION": "Observer is in darkness ({templates}), lacks darkvision",
        "DARKNESS_BETWEEN_WITH_GREATER_DARKVISION": "Greater magical darkness between observer and target ({templates}), but observer has greater darkvision",
        "DARKNESS_BETWEEN_WITH_DARKVISION": "Greater magical darkness between observer and target ({templates}) - obscures vision even with darkvision",
        "DARKNESS_BETWEEN_NO_DARKVISION": "Greater magical darkness between observer and target ({templates}), observer lacks darkvision",
        "MAGICAL_DARKNESS_BETWEEN_WITH_DARKVISION": "Magical darkness between observer and target ({templates}), but observer has darkvision",
        "MAGICAL_DARKNESS_BETWEEN_NO_DARKVISION": "Magical darkness between observer and target ({templates}), observer lacks darkvision",
        "REGULAR_DARKNESS_BETWEEN_WITH_DARKVISION": "Darkness between observer and target ({templates}), but observer has darkvision",
        "REGULAR_DARKNESS_BETWEEN_NO_DARKVISION": "Darkness between observer and target ({templates}), observer lacks darkvision",
        "AFFECTED_BY_DARKNESS": "Affected by Darkness spell ({templates})",
        "REGION_CONCEALMENT": "Ray crosses concealment region boundary (e.g., magical darkness template)",
        "RAY_GREATER_DARKNESS_WITH_DARKVISION": "Ray passes through greater magical darkness (rank {rank}) - concealed even with darkvision",
        "RAY_GREATER_DARKNESS_NO_DARKVISION": "Ray passes through magical darkness (rank {rank}), observer lacks darkvision",
        "RAY_MAGICAL_DARKNESS_NO_DARKVISION": "Ray passes through magical darkness (rank {rank}), observer lacks darkvision",
        "GREATER_MAGICAL_DARKNESS_WITH_DARKVISION": "Greater magical darkness (rank {rank}) concealed even with darkvision",
        "TARGET_MAGICAL_DARKNESS_NO_DARKVISION": "Target is in magical darkness (rank {rank}), observer lacks darkvision",
        "TARGET_IN_DARKNESS_NO_DARKVISION_SIMPLE": "Target is in darkness, observer lacks darkvision",
        "TARGET_IN_DIM_NO_LOW_LIGHT": "Target is in dim light, observer lacks low-light vision",
        "DETECTED_BY_LIFESENSE": "Detected by lifesense ({acuity})",
        "DETECTED_BY_THOUGHTSENSE": "Detected by thoughtsense ({acuity})",
        "DETECTED_BY_TREMORSENSE": "Detected by tremorsense ({acuity})",
        "DETECTED_BY_SENSE": "Detected by {sense} (precise)",
        "DETECTED_BY_SENSE_IMPRECISE": "Detected by {sense} (imprecise)",
        "HEARD_INVISIBLE_HIDDEN": "Heard with hearing (imprecise) - invisible creature is hidden",
        "BRIGHT_LIGHT_NORMAL_VISION": "Target is in bright light with normal vision",
        "LOW_LIGHT_VISION_DIM": "Low-light vision sees clearly in dim light",
        "DARKVISION_THROUGH_MAGICAL_DARKNESS": "Darkvision sees through magical darkness (rank {rank})",
        "GREATER_DARKVISION_THROUGH_MAGICAL_DARKNESS": "Greater darkvision sees through magical darkness (rank {rank})",
        "DARKVISION_IN_DARKNESS": "Darkvision sees clearly in darkness",
        "TARGET_INVISIBLE_OBSERVER_DEAFENED": "Target is invisible and observer is deafened",
        "TARGET_INVISIBLE_NO_SENSES": "Target is invisible and cannot be detected by available senses",
        "TARGET_NO_SENSES": "Target cannot be detected by any available senses",
        "SENSES_SUPPRESSED": "Senses suppressed by region: {senses}"
      }
    },
    "REGION_BEHAVIOR": {
      "TYPE_LABEL": "PF2e Visioner Visibility",
      "TYPES": {
        "CONCEALMENT": {
          "label": "AVS Concealment"
        },
        "COVER": {
          "label": "Region Cover"
        },
        "VISIBILITY": {
          "label": "Visioner Visibility"
        },
        "SENSE_SUPPRESSION": {
          "label": "Sense Suppression"
        }
      },
      "VISIBILITY_STATE": {
        "label": "Visibility State",
        "hint": "The visibility state to apply between tokens inside and outside the region"
      },
      "APPLY_TO_INSIDE_TOKENS": {
        "label": "Apply to Inside Tokens",
        "hint": "If enabled, tokens inside the region will have the visibility state applied to other tokens inside the region as well"
      },
      "TWO_WAY_REGION": {
        "label": "Two-Way Region",
        "hint": "If enabled, tokens outside the region will also have the visibility state applied to tokens inside the region"
      },
      "CONCEALMENT_ENABLED": {
        "label": "Enable Concealment",
        "hint": "If enabled, rays that cross this region's boundaries will grant concealment to the target"
      },
      "COVER_ENABLED": {
        "label": "Enable Cover",
        "hint": "If enabled, this region will grant cover based on the configured mode"
      },
      "COVER_LEVEL": {
        "label": "Cover Level",
        "hint": "The level of cover granted by this region"
      },
      "COVER_MODE": {
        "label": "Cover Mode",
        "hint": "How cover is determined for this region",
        "override": "Override - Tokens inside always have cover",
        "lineOfSight": "Line of Sight - Cover when ray crosses boundary or both inside",
        "oneWay": "One Way - Cover only for tokens inside when viewed from outside"
      },
      "SENSE_SUPPRESSION_ENABLED": {
        "label": "Enable Sense Suppression",
        "hint": "If enabled, this region will suppress the selected senses for tokens"
      },
      "SENSE_SUPPRESSION_SENSES": {
        "label": "Suppressed Senses",
        "hint": "Select which senses are suppressed within this region"
      },
      "SENSE_SUPPRESSION_AFFECTS_OBSERVER": {
        "label": "Affects Observer",
        "hint": "When enabled, tokens inside this region lose the selected senses (e.g. overpowering stench overwhelms scent)"
      },
      "SENSE_SUPPRESSION_AFFECTS_TARGET": {
        "label": "Affects Target",
        "hint": "When enabled, tokens inside this region cannot be detected by the selected senses from outside observers"
      },
      "VISIBILITY_UPDATED": "Region visibility updated for {count} token relationships",
      "UPDATE_ERROR": "Failed to update region visibility relationships"
    },
    "SNEAKY_FEAT": {
      "VISIBILITY_CAPPED": "Sneaky Feat",
      "TOOLTIP": "Visibility capped at Hidden due to Sneaky feat effect. This creature successfully sneaked against you."
    },
    "SNEAK_ADEPT_FEAT": {
      "OUTCOME_UPGRADED": "Sneak Adept",
      "TOOLTIP": "Failure upgraded to Success due to Sneak Adept feat. It's almost impossible to spot this creature."
    }
  }
}
