{
  "BL.Apply": "Apply",
  "BL.AuditClean": "No issues found on this scene.",
  "BL.AuditConfirmDelete": "This fix will delete {target}. This can't be undone unless you have a backup. Proceed?",
  "BL.AuditFix": "Fix this issue",
  "BL.AuditFixAll": "Fix All",
  "BL.AuditFixBucket": "Fix all issues in this category",
  "BL.AuditFixFail": "Fix failed — see console.",
  "BL.AuditFixed": "Fixed {ok} issue(s); {fail} failed.",
  "BL.AuditFixedOne": "Issue fixed.",
  "BL.AuditIgnore": "Ignore (skip on future audits)",
  "BL.AuditIgnored": "ignored",
  "BL.AuditIssues": "issue(s) found",
  "BL.AuditOpenHint": "open Audit & Fix to review",
  "BL.AuditRules": "Rules (enable / disable for this scene)",
  "BL.AuditRulesHint": "Turn off any rule that doesn't fit this build. Off = its violations are hidden and skipped by Fix All.",
  "BL.AuditTitle": "Audit & Fix",
  "BL.AuditUnignore": "Stop ignoring",
  "BL.AuditWhy": "Why this change?",
  "BL.BackupAndCommit": "Back up, then apply",
  "BL.BackupAndFix": "Back up, then Fix All",
  "BL.BackupAndRepair": "Back up, then repair",
  "BL.BackupBefore": "Fix All changes many things at once. Back up the scene first so you can restore it if something goes wrong?",
  "BL.BackupBeforeTitle": "Back up before fixing?",
  "BL.BackupCreate": "Create scene backup",
  "BL.BackupDeleteConfirm": "Permanently delete the backup \"{name}\"? This can't be undone.",
  "BL.BackupDeleteTip": "Delete this backup",
  "BL.BackupDeleteTitle": "Delete backup?",
  "BL.BackupDone": "Scene backed up as \"{name}\".",
  "BL.BackupFail": "Scene backup failed — see console (F12).",
  "BL.BackupName": "Backup",
  "BL.BackupNone": "No backups yet for this scene — create one above.",
  "BL.BackupRestoreBtn": "Backup or Restore this scene",
  "BL.BackupRestoreHint": "Create a restore point before risky changes, then roll the scene back to any saved point.",
  "BL.BackupRestoreTitle": "Backup & Restore",
  "BL.BackupTitle": "Back up this scene (restore point)",
  "BL.BackupWhen": "When",
  "BL.BuildMode": "Build Mode (show only this level's tiles)",
  "BL.BuildModeOff": "Build Mode off — all tiles visible.",
  "BL.BuildModeOn": "Build Mode on — showing only tiles in the viewed level.",
  "BL.BulkDone": "Configured {n} tile(s) as {role}.",
  "BL.BulkFailed": "{n} tile(s) failed — see the console.",
  "BL.BulkNoSelection": "Select one or more tiles on the canvas first.",
  "BL.Cancel": "Cancel",
  "BL.CanvasAuditTitle": "Audit",
  "BL.ChooseBasement": "Which basement level?",
  "BL.ChooseBasementTitle": "Assign Basement",
  "BL.Close": "Close",
  "BL.CreateActive_fauxDraw": "Drawing faux overheads",
  "BL.CreateActive_fauxFill": "Filling faux overheads",
  "BL.CreateActive_stair": "Drawing stairs",
  "BL.CreateCancel": "Stop creating",
  "BL.CreateCancelled": "Create mode off.",
  "BL.CreateExitHint": "Double right-click or press Esc to exit",
  "BL.CreateFauxDraw": "Faux Overhead — draw by hand",
  "BL.CreateFauxFill": "Faux Overhead — fill from walls",
  "BL.CreateMenu": "Create — stairs, faux overheads and other new entities",
  "BL.CreateStair": "Stair region",
  "BL.CreateStairs": "Create Stairs (new regions become Change Level stairs)",
  "BL.CreateStairsOff": "Create Stairs off.",
  "BL.CreateStairsOn": "Create Stairs on — new regions become stairs to the level above.",
  "BL.CreateStarted_fauxDraw": "Faux Overhead draw — draw a region and it becomes a Faux Overhead. Double right-click or Esc to stop.",
  "BL.CreateStarted_fauxFill": "Faux Overhead fill — click inside an enclosed space. Keeps going until you stop: double right-click or Esc.",
  "BL.CreateStarted_stair": "Stair mode on — draw regions and each becomes a stair to the level above. Double right-click or Esc to stop.",
  "BL.DefNote": "Live build toggles (Build Mode, etc.) now live on the scene toolbar — these are persistent defaults only.",
  "BL.DefNote2": "Behavior toggles (auto-name, light-on-drop) are now in module Settings.",
  "BL.DefOpenSettings": "Open Game Settings",
  "BL.DefSave": "Save",
  "BL.DefSaved": "Better Levels defaults saved.",
  "BL.DefTitle": "Set Defaults",
  "BL.DragCrossElevation": "Tiles can only be restacked within their own elevation — sort is only compared between tiles at the same elevation. Change the tile's elevation to move it to another floor.",
  "BL.DragFailed": "Reorder failed — see the console.",
  "BL.DragGhost": "{n} tile(s)",
  "BL.DragMixedElevations": "That selection spans several elevations ({elevations}). Tiles can only be restacked among tiles at the SAME elevation, because sort is only compared within one elevation. Select tiles from a single floor and try again.",
  "BL.DragReordered": "Restacked {n} tile(s) at elevation {elevation}.",
  "BL.FauxBehaviorName": "Faux Overhead",
  "BL.FauxBtnOff": "Faux Overhead — hide tokens travelling beneath this area",
  "BL.FauxBtnOn": "Faux Overhead is ON — click to stop hiding tokens beneath this area",
  "BL.FauxDefApplied": "Applied to {n} region(s).",
  "BL.FauxDefApply": "Apply to selected",
  "BL.FauxDefApplyN": "Apply to selected ({n})",
  "BL.FauxDefBtn": "Faux defaults",
  "BL.FauxDefKeepLit": "Keep lit through fog of war",
  "BL.FauxDefLight": "Light / fog",
  "BL.FauxDefLightNone": "Neither",
  "BL.FauxDefMakeSurface": "Make Surface (block sight between levels)",
  "BL.FauxDefNoneSelected": "No Faux Overhead regions were selected.",
  "BL.FauxDefNote": "These apply to newly drawn Faux Overheads. Use \"Apply to selected\" to stamp them onto the faux regions you have selected.",
  "BL.FauxDefOccludeLight": "Occlude light (like a roof)",
  "BL.FauxDefReveal": "Token visibility override",
  "BL.FauxDefSave": "Save as defaults",
  "BL.FauxDefSaved": "Faux Overhead defaults saved.",
  "BL.FauxDefTitle": "Faux Overhead Defaults",
  "BL.FauxLightVsKeepLit": "This Faux Overhead has BOTH \"Occlude light\" and \"Keep lit through fog of war\" on. In Foundry v14 they share the same depth channel, so the occluder darkens the kept-lit area (except where a token stands). Turn off one of the two on this region.",
  "BL.FauxMakeSurface": "Make Surface (block sight between levels)",
  "BL.FauxMakeSurfaceHint": "Give this Faux Overhead a real Define Surface so token occlusion works properly: without one, two tokens can see each other straight through the bridge because sight is not blocked between levels. Applies a full surface tagged to every level that can see this one. Leave off for something you can see through (a rope bridge, an awning). This does NOT block light, only sight and movement.",
  "BL.FauxNowOff": "Faux Overhead off — tokens below this area are visible again.",
  "BL.FauxNowOn": "Faux Overhead on — tokens below this area are now hidden, as if a tile covered them.",
  "BL.FauxOccludeLight": "Occlude light (like a roof)",
  "BL.FauxOccludeLightHint": "Block light beneath this Faux Overhead so a torch under it does not spill onto its level, exactly as a roof tile does. Better Levels adds an invisible depth occluder shaped to the region at its elevation. Leave off for something you can see light through (a catwalk, a rope bridge). NOTE: light occlusion and \"Keep lit through fog of war\" cannot both work on one region in Foundry v14 - an occluder suppresses the keep-lit brightness beneath it except where a token is standing. Use one or the other per region.",
  "BL.FauxOnSurfaceWarn": "This region is also a floor Surface. A Faux Overhead hides every token beneath it across its whole footprint — on a floor-sized region that means every token below it, everywhere. Faux Overhead is meant for a small painted-in feature like a bridge.",
  "BL.FauxRevealFog": "Keep this area lit",
  "BL.FauxRevealFogHint": "Stops the interior going dark. A walled area under a faux overhead has no line of sight into it, so it reads as unexplored fog — worse as scene darkness rises. This marks the region's footprint as seen, matching the brightness of the rest of the map. Holes in the region stay dark. Turn it off for something that should read as dark, like a cave mouth.",
  "BL.FauxRevealGhost": "A faded ghost of the token",
  "BL.FauxRevealHidden": "Nothing at all — the part under the overhead is hidden, the rest still shows (token stays selectable)",
  "BL.FauxRevealInherit": "Use each player's setting",
  "BL.FauxRevealMode": "Token concealment (this region)",
  "BL.FauxRevealModeHint": "How tokens beneath THIS overhead are drawn, overriding each player's own preference. Leave on \"Use each player's setting\" unless this piece of scenery should behave differently — a solid stone bridge might hide a token outright, while a slatted catwalk you can see through might not.",
  "BL.FauxRevealOutline": "Hitbox only — artwork clipped at the overhead's edge, plus a box marking where the token is",
  "BL.FauxRevealVisible": "The token as normal (effect off)",
  "BL.FauxTool": "Mark selected region(s) as a Faux Overhead (hide tokens travelling beneath)",
  "BL.FauxToolReport": "Faux Overhead: {on} region(s) on, {off} off.",
  "BL.FillBranching": "Those walls branch instead of forming a single loop. Select only the outermost walls that enclose the area.",
  "BL.FillCancelled": "Fill cancelled.",
  "BL.FillClickPrompt": "Click inside the enclosed space to fill it. Double right-click or Esc to stop.",
  "BL.FillDone": "Filled the walled area from {n} walls — Faux Overhead created on {level}.",
  "BL.FillDoneClick": "Filled the enclosed space — Faux Overhead created on {level}.",
  "BL.FillExtraWalls": "The selection closes a loop but includes extra walls beyond it. Select only the walls that form the enclosure.",
  "BL.FillFailed": "Could not create the region — see the console for details.",
  "BL.FillNeedsThree": "That is not an enclosed area — at least three walls are needed.",
  "BL.FillNoPoint": "Couldn't read that click position — try again, or select the enclosing walls instead.",
  "BL.FillNoSweep": "This Foundry build doesn't expose the wall-sweep used to detect enclosures. Select the enclosing walls instead.",
  "BL.FillNoWalls": "Select the walls enclosing the area first, then click Fill.",
  "BL.FillNotEnclosed": "That spot isn't enclosed by walls — the fill would have covered the map. Close the gaps, or select the enclosing walls and click Fill again.",
  "BL.FillOpenLoop": "Those walls do not form a closed loop. There is a gap somewhere: nudge the wall endpoints together (grid snapping helps) or add a wall to close it.",
  "BL.FillWallsTool": "Fill an enclosed space with a Faux Overhead — click inside it, or select its walls first",
  "BL.FixAlready": "This {type} is already set up correctly on \"{level}\". If you meant to do something else, the most likely change is its level — pick a new one below, or close.",
  "BL.FixAlreadyTitle": "Already configured",
  "BL.FixApply": "Apply",
  "BL.FixConfirmSurface": "This will create a Define Surface region for level \"{level}\". Proceed?",
  "BL.FixConfirmTitle": "Confirm change",
  "BL.FixCreateSurface": "Create / update its Surface region",
  "BL.FixDone": "Fixed {n} entities — see console (F12) for details.",
  "BL.FixFaux": "Faux Overhead (hide tokens travelling beneath it)",
  "BL.FixGoBtn": "Go to {level}",
  "BL.FixGoFail": "Could not switch levels automatically — pick \"{level}\" in the Levels nav.",
  "BL.FixGoHelp": "It's on \"{level}\" — switch to that level to see it.",
  "BL.FixIgnoreAudit": "Ignore this entity in the Audit",
  "BL.FixLevel": "Level:",
  "BL.FixLevelTitle": "Fix — which level?",
  "BL.FixLightTitle": "Fix Light — which level?",
  "BL.FixMoveBtn": "Move",
  "BL.FixMoveTo": "Move to level:",
  "BL.FixNoBackup": "Fix without backup",
  "BL.FixNone": "Select an entity first (tile, region, light, sound, drawing, or wall).",
  "BL.FixPrefabTitle": "Heads up — this is part of a prefab",
  "BL.FixPrefabWarn": "This entity is part of a Mass Edit prefab. Changing it here can desync it from the rest of the prefab. Proceed with care.",
  "BL.FixRegionRole": "Configure this region as",
  "BL.FixRegionRoleNone": "Leave the level configuration alone",
  "BL.FixRegionTitle": "Fix Region",
  "BL.FixRegionType": "This region is a:",
  "BL.FixReportFauxOff": "Faux Overhead removed — tokens below this region are visible again.",
  "BL.FixReportFauxOn": "Faux Overhead ON — tokens below this region are now hidden.",
  "BL.FixReportIgnored": "Ignored — the Audit will skip this entity until you untick that box.",
  "BL.FixReportLight": "Light set to \"{level}\" (untagged, elevation {elev}).",
  "BL.FixReportStair": "Region configured as a Stair: \"{from}\" ↔ \"{to}\".",
  "BL.FixReportSurface": "Region configured as a Surface on \"{level}\".",
  "BL.FixReportSurfaceSettings": "Updated surface settings (level and band) — no region created (Fix Settings Only).",
  "BL.FixReportTagged": "{type} tagged to \"{level}\".",
  "BL.FixReportTile": "Tile configured as {role} on \"{level}\" (+ surface region).",
  "BL.FixReportTileNoSurface": "Tile configured as {role} on \"{level}\" (no surface region).",
  "BL.FixReportTitle": "Fix Entity",
  "BL.FixRole": "Configure this tile as:",
  "BL.FixSettingsOnlyDelete": "Fix Settings Only is on — won't delete {target}. Turn the setting off to allow deletions.",
  "BL.FixSettingsOnlyNoBehavior": "Fix Settings Only is on — adjusted the region's level and band, but did not create a Define Surface behavior.",
  "BL.FixTileTitle": "Fix Tile",
  "BL.FixTitle": "Fix / configure the selected entity",
  "BL.FixUnsupported": "Better Levels can't auto-configure a {type} yet.",
  "BL.FixWallTitle": "Fix Wall — which level?",
  "BL.GenBasements": "Basements",
  "BL.GenConfirm": "This rebuilds the scene's levels. Existing bands that match are kept; others are replaced and placeables tagged to them may need re-tagging. Continue?",
  "BL.GenDone": "Generated {count} level(s): {names}.",
  "BL.GenDropped": "{n} old level(s) were replaced — check placeable level tags.",
  "BL.GenFail": "Level generation failed — see console.",
  "BL.GenFloorHeight": "Floor height (ft)",
  "BL.GenFloors": "Above-ground floors",
  "BL.GenNote": "Bands matching existing levels keep their id and background; basements are sealed off.",
  "BL.GenRoof": "Add roof level",
  "BL.GenRun": "Generate",
  "BL.GenTitle": "Generate Levels",
  "BL.HudBack": "Send to back",
  "BL.HudBalcony": "Auto-configure Balcony (+ Surface region)",
  "BL.HudBasement": "Auto-configure Basement (+ Surface region)",
  "BL.HudFloor": "Auto-configure Floor (+ Surface region)",
  "BL.HudFront": "Bring to front",
  "BL.HudIgnoreNowChecked": "Tile is checked by the Audit again.",
  "BL.HudIgnoreNowIgnored": "Tile ignored — the Audit will skip it until you toggle this back.",
  "BL.HudIgnoreOff": "Ignore this tile (exclude it from the Audit)",
  "BL.HudIgnoreOn": "Ignored — click to put this tile back under Audit checks",
  "BL.HudMoveLevel": "Move tile to a different Level",
  "BL.HudRoleClear": "Tagged as {role} — click to clear this tile's role",
  "BL.HudRoof": "Auto-configure Roof (+ Surface region)",
  "BL.Kind_drawing": "drawing",
  "BL.Kind_entity": "entity",
  "BL.Kind_light": "light",
  "BL.Kind_note": "note",
  "BL.Kind_sound": "sound",
  "BL.Kind_stair": "stair",
  "BL.Kind_surface": "surface region",
  "BL.Kind_wall": "wall",
  "BL.LMAddLevel": "Add level",
  "BL.LMBadBand": "Level \"{name}\" has an invalid range — the top must be above the bottom (or blank for infinite).",
  "BL.LMBgBrowse": "Browse for an image or video",
  "BL.LMBgClear": "Remove image",
  "BL.LMBgColor": "Background colour",
  "BL.LMBgColorHint": "Shown wherever no image covers the canvas — below the map, and in any gap the artwork leaves.",
  "BL.LMBgImage": "Background image",
  "BL.LMBgImageHint": "Leave empty to show whichever visible level below has an image. Only levels that need their OWN artwork should set this — repeating the ground floor's image here paints an opaque copy of the map over everything beneath it.",
  "BL.LMBgInherited": "Using the background from {level} — click to give this level its own",
  "BL.LMBgInheritedNote": "This level currently shows {level}'s background. Setting an image here gives it its own instead.",
  "BL.LMBgNoDialog": "This Foundry build doesn't expose the dialog API needed to edit backgrounds.",
  "BL.LMBgNoImagePlaceholder": "(no image — inherit from the level below)",
  "BL.LMBgNone": "No background image set — click to add one, or change the colour",
  "BL.LMBgOwn": "Background image: {file} — click to change",
  "BL.LMBgThisLevel": "this level",
  "BL.LMBgTitle": "Background — {level}",
  "BL.LMColBg": "BG",
  "BL.LMColBgTip": "Each level's background. A solid thumbnail is the level's own image; a faded one is another level's image showing through; a colour swatch means no image anywhere below. Click to change.",
  "BL.LMColBottom": "Bottom",
  "BL.LMColBottomTip": "Bottom elevation of this level (ft)",
  "BL.LMColCounts": "Contents",
  "BL.LMColCountsTip": "Entities on this level: tiles, lights, regions, walls, tokens",
  "BL.LMColName": "Level",
  "BL.LMColTop": "Top",
  "BL.LMColTopTip": "Top elevation of this level (ft) — must be above bottom",
  "BL.LMCommit": "Apply changes",
  "BL.LMCommitFail": "Applying level changes failed — see console (F12).",
  "BL.LMCommitNote": "Deleting a level strips its tag from placeables. Any remaining surface/entity reconcile shows up in Audit & Fix.",
  "BL.LMCommitNow": "Apply now",
  "BL.LMCommitTitle": "Apply level changes?",
  "BL.LMDeleteRow": "Remove this level (applied on Apply)",
  "BL.LMDone": "Level changes applied.",
  "BL.LMFollowup": "{n} audit issue(s) remain — open Audit & Fix to reconcile.",
  "BL.LMHint": "Edit names and elevations inline, add or remove levels, then Apply. Removing a level strips its tag from placeables; surface/entity reconcile is surfaced in Audit & Fix.",
  "BL.LMLights": "Lights",
  "BL.LMManage": "Open the Level Manager",
  "BL.LMNoChanges": "No level changes to apply.",
  "BL.LMRegions": "Regions",
  "BL.LMSumCreate": "Create {n} level(s)",
  "BL.LMSumDelete": "Delete {n} level(s) — {e} tagged reference(s) will be cleaned up",
  "BL.LMSumUpdate": "Update {n} level(s)",
  "BL.LMTiles": "Tiles",
  "BL.LMTitle": "Level Manager",
  "BL.LMTokens": "Tokens",
  "BL.LMTopInfinite": "Leave blank for an infinite top (a roof level).",
  "BL.LMVisCanSee": "Can see →",
  "BL.LMVisHint": "Each row is a level; an open eye means that level can see the level in that column (its \"Visible Levels\"). Click any cell to toggle. Applied on Apply.",
  "BL.LMVisNewNote": "New levels join the visibility grid after you Apply.",
  "BL.LMVisOff": "Hidden — click to make visible from this level",
  "BL.LMVisOn": "Visible — click to hide from this level",
  "BL.LMVisReset": "Reset to policy",
  "BL.LMVisResetTip": "Re-seed the whole grid from the default policy: above-ground levels see each other; basements sealed (per Set Defaults).",
  "BL.LMVisSelf": "A level always sees itself.",
  "BL.LMVisTitle": "Level visibility — which levels each level can see",
  "BL.LMWalls": "Walls",
  "BL.MakeSurface": "Configure selected region(s) as Level Surface",
  "BL.MarkFloorTool": "Mark selected tiles as Floor (adds a Define Surface region to each)",
  "BL.MigrateBackupFirst": "Back up, then migrate",
  "BL.MigrateBody": "\"{scene}\" still uses legacy (v13) Levels data ({summary}). This runs Mass Edit's scene migration to convert it to v14 core Levels.",
  "BL.MigrateDone": "Migrated \"{name}\" to v14 Levels — the audit has been re-run against the converted scene.",
  "BL.MigrateFail": "Scene migration failed — see console (F12).",
  "BL.MigrateNoMassEdit": "Migration needs Baileywiki Mass Edit (multi-token-edit) installed and up to date — it provides MassEdit.migrateScene.",
  "BL.MigrateNone": "No legacy Levels data on this scene — nothing to migrate.",
  "BL.MigrateNote": "It converts entities to v14 standards, expands flat levels, and generates surface regions. Recommended: back up the scene first — you can restore it from Backup & Restore.",
  "BL.MigrateNow": "Migrate now",
  "BL.MigrateTitle": "Migrate this scene to v14 Levels?",
  "BL.MoveBtn": "Move",
  "BL.MoveToLevel": "Move to which level?",
  "BL.MoveToLevelTitle": "Move Tile to Level",
  "BL.NoBasement": "This scene has no basement level — generate one first.",
  "BL.NoIssues": "No obvious level issues detected.",
  "BL.NoLevels": "This scene has no Levels configured yet.",
  "BL.NoLevelsForTile": "This scene has no Levels — generate levels first.",
  "BL.NoRegionSelected": "Select one or more regions first (Region layer).",
  "BL.NoScene": "No active scene.",
  "BL.Off": "Off",
  "BL.On": "On",
  "BL.OpenPanel": "Better Levels",
  "BL.PanelBuild": "Build",
  "BL.PanelBuildMode": "Build Mode",
  "BL.PanelClose": "Close (reopen from the Tiles toolbar button)",
  "BL.PanelCollapse": "Collapse",
  "BL.PanelLevels": "levels",
  "BL.PanelStairs": "Stairs",
  "BL.PanelTitle": "Better Levels",
  "BL.PrefAutoName": "Auto-name placeables from filename",
  "BL.PrefBuild": "Build Mode (show only tiles in the active band)",
  "BL.PrefFloorLOS": "Also apply line-of-sight occlusion to floor tiles (not roofs)",
  "BL.PrefHUDs": "Show Better Levels tile-HUD buttons",
  "BL.PrefLightElev": "Auto-set light elevation on drop (leave Levels blank)",
  "BL.PrefRoofFog": "Roofs reveal fog of war beneath them",
  "BL.PrefRoofInfinity": "Auto-configured roofs get a surface region of infinite height",
  "BL.PrefSealBasements": "Basements are sealed (not visible to each other or other levels)",
  "BL.PrefStairs": "Create Stairs mode (new regions become stairs)",
  "BL.PrefUnique": "Unique Regions mode (each draw = new region)",
  "BL.Refresh": "Refresh",
  "BL.RegionConfigured": "Region configured as Surface on \"{level}\".",
  "BL.RegionPointEditFailed": "Could not update the region shape.",
  "BL.RegionPointMinPoints": "A polygon needs at least three points. Delete the whole shape instead.",
  "BL.RepairAlert": "Better Levels: this scene has {n} region(s) with corrupt shapes that break scene updates. Open the Better Levels panel and click Repair to remove them.",
  "BL.RepairBody": "Found {n} region(s) whose shape data is corrupt (undefined coordinates). They can't load and they make every scene update throw errors. Repair replaces their broken geometry with a small placeholder and unlinks them, so the scene loads cleanly — nothing is deleted. They'll be renamed \"[BL] Broken region\" so you can find and delete or redraw them through the normal Region tools. Back up first if you want a restore point.",
  "BL.RepairButton": "Repair",
  "BL.RepairDone": "Repaired {n} region(s) — they're now valid placeholders named \"[BL] Broken region\". Delete or redraw them when convenient.",
  "BL.RepairFail": "Repair failed — see console (F12).",
  "BL.RepairNone": "No corrupt regions found — nothing to repair.",
  "BL.RepairNow": "Repair now",
  "BL.RepairTip": "Remove regions with corrupt shapes (fixes the validation-error spam)",
  "BL.RepairTitle": "Repair corrupt regions",
  "BL.Restore": "Restore",
  "BL.RestoreBackupFirst": "Back up current, then restore",
  "BL.RestoreConfirm": "This replaces everything in \"{scene}\" with the contents of \"{name}\". The current scene state is lost unless you back it up first.",
  "BL.RestoreConfirmTitle": "Restore this backup?",
  "BL.RestoreDone": "Restored scene from \"{name}\".",
  "BL.RestoreFail": "Restore failed — see console (F12).",
  "BL.RestoreMissing": "That backup no longer exists.",
  "BL.RestoreNow": "Restore (overwrite)",
  "BL.RestoreTip": "Overwrite this scene with this backup",
  "BL.RiskAmber": "Adjusts settings",
  "BL.RiskAmberDesc": "These change settings on existing entities — nothing is created or deleted.",
  "BL.RiskGreen": "Cosmetic",
  "BL.RiskGreenDesc": "Safe label and name changes only.",
  "BL.RiskRed": "Creates or removes things",
  "BL.RiskRedDesc": "These fixes add or delete entities (levels, regions). Review each before applying.",
  "BL.Role_balcony": "Balcony",
  "BL.Role_basement": "Basement",
  "BL.Role_floor": "Floor",
  "BL.Role_roof": "Roof",
  "BL.Role_stair": "Stair (connects two levels)",
  "BL.Role_surface": "Surface (a floor on one level)",
  "BL.RuleAboveBasementTag": "Above-ground tiles tagged to basement",
  "BL.RuleAboveBlank": "Above-ground tiles visible from basement",
  "BL.RuleBehaviorDisabled": "Disabled region behaviors",
  "BL.RuleDegenerate": "Degenerate level bands",
  "BL.RuleDupBackground": "Duplicated level background",
  "BL.RuleFauxLargeSurface": "Faux Overhead on a floor-sized Surface",
  "BL.RuleFloorLOS": "Floors have line-of-sight occlusion",
  "BL.RuleFloorNoSurface": "Floor tile has no Define Surface region",
  "BL.RuleHolePassthrough": "Floor openings carry through to the level below",
  "BL.RuleLegacyFlag": "Legacy Levels flags",
  "BL.RuleLegacyMigrate": "Legacy (v13) Levels scene — migrate first",
  "BL.RuleLevelElevConflict": "Entity elevation matches its level",
  "BL.RuleLevelNoSurface": "Levels missing a floor surface",
  "BL.RuleLevelOverlap": "Overlapping / spanning levels",
  "BL.RuleLevelUnused": "Unused (empty) levels",
  "BL.RuleLightOffBand": "Lights off-band",
  "BL.RuleLightTagged": "Lights are untagged (elevation-only)",
  "BL.RuleNameNumber": "Levels are numbered in sequence (Level 01, 02, 03…)",
  "BL.RuleNameRange": "Level name shows its range",
  "BL.RuleOccludeLW": "Floor/roof tile occludes light & weather",
  "BL.RuleRegionNaming": "Region naming (Surface / Stair)",
  "BL.RuleRegionOrphan": "Orphaned region level refs",
  "BL.RuleRoofFog": "Roofs reveal fog of war",
  "BL.RuleRoofInfinity": "Roof surfaces are infinite height",
  "BL.RuleRoofNoSurface": "Roof tile has no Define Surface region",
  "BL.RuleStairConnects": "Stair connects the right levels",
  "BL.RuleStairElevation": "Stair spans its connected levels",
  "BL.RuleSurfaceInfinite": "Surface with infinite top below the top level",
  "BL.RuleSurfaceIsStair": "Region is both a Surface and a Stair",
  "BL.RuleSurfacePlacement": "Define Surface set to Bottom and Top",
  "BL.RuleSurfaceVisibility": "Surface reaches every level that sees it",
  "BL.RuleTileBasement": "Basement tiles (basement-only)",
  "BL.RuleTileNoBasement": "Tiles below all levels",
  "BL.RuleTileUntagged": "Tiles with no role assigned (unmonitored)",
  "BL.RuleVisibility": "Level visibility policy",
  "BL.SampleFailed": "Could not import the sample scene — see console (F12).",
  "BL.SampleImport": "Import",
  "BL.SampleImported": "Imported sample scene \"{name}\".",
  "BL.SamplesBtn": "Open a bundled sample scene",
  "BL.SamplesEmpty": "No sample scenes are bundled yet.",
  "BL.SamplesHint": "Import a ready-made Levels scene to explore how Better Levels works.",
  "BL.SamplesTitle": "Sample scenes",
  "BL.SelectAll": "Select All Levels",
  "BL.SelectedN": "Selected {n} tile(s) across all levels.",
  "BL.SettingAuditBadge": "Show the Audit issue badge",
  "BL.SettingAuditBadgeHint": "Puts a red count on the helper panel when the current scene has audit issues. Turn this off to make Audit & Fix purely on-demand — the button still works, it just stops flagging scenes at you. Affects only your own client.",
  "BL.SettingAutoLight": "Auto-set light elevation on drop",
  "BL.SettingAutoLightHint": "When you drop a light, clear its Levels tag and set its elevation to the active level's band (lights stay untagged so light bleeds between floors).",
  "BL.SettingAutoName": "Auto-name tiles from filename",
  "BL.SettingAutoNameHint": "New tiles are named from their texture filename (the label shown in the Placeables sidebar).",
  "BL.SettingAutoShowPanel": "Auto-show the Better Levels panel",
  "BL.SettingAutoShowPanelHint": "Automatically open the helper panel when you load a scene that has Levels.",
  "BL.SettingCanvasAudit": "Show audit outlines on the canvas",
  "BL.SettingCanvasAuditHint": "When Build Mode is on or the helper panel is open, outline red and amber audit issues on the floor you are viewing. Click an outline to fix or ignore it.",
  "BL.SettingDragReorder": "Drag to restack tiles",
  "BL.SettingDragReorderHint": "In the Placeables tab, drag tile rows to change their stacking order. Shift+click selects a range, Ctrl/Cmd+click toggles one. Tiles can only be restacked within their own elevation.",
  "BL.SettingFauxReveal": "Under a Faux Overhead, show",
  "BL.SettingFauxRevealHint": "Controls how your controlled token is occluded when it enters a Faux Overhead region (a bridge, balcony or awning painted into the map art). Tokens you can see that other players control are ghosted instead.",
  "BL.SettingFixSettingsOnly": "Fix Settings Only (no create / delete)",
  "BL.SettingFixSettingsOnlyHint": "When on, Audit & Fix and Fix Entity only adjust settings on existing entities — they never create or delete levels, regions, or behaviors.",
  "BL.SettingLevelElev": "Set elevation when changing a token's level",
  "BL.SettingLevelElevHint": "When you change a token's level via the Token HUD, also move it to that level's bottom elevation (instead of leaving its elevation unchanged).",
  "BL.SettingRegionPointEditing": "Edit region points on the canvas",
  "BL.SettingRegionPointEditingHint": "Select a polygon region with the Regions layer's Select tool to get vertex handles: drag a point to move it, right-click a point to delete it, and drag an edge midpoint to add a new point. Hold Shift while dragging to bypass grid snapping.",
  "BL.SettingShowButton": "Show toolbar button",
  "BL.SettingShowButtonHint": "Show the Better Levels button in the Tiles scene controls.",
  "BL.SettingSortByDepth": "Order tiles by depth",
  "BL.SettingSortByDepthHint": "In the Placeables tab, list tiles in stacking order (top of the list is drawn in front) instead of alphabetically. Uses elevation, then sort — the same rule the canvas uses.",
  "BL.SettingSyncOnlyBuild": "Sync to Levels Elevation only in Build Mode",
  "BL.SettingSyncOnlyBuildHint": "When on, the Placeables list only filters to the current level while Build Mode is active, and shows everything during play. The Token tab never filters by elevation either way, so line of sight between levels is always preserved.",
  "BL.SettingThumbs": "Show tile thumbnails in the Placeables tab",
  "BL.SettingThumbsHint": "Put a small preview of each tile's art next to its row in the Placeables sidebar, and pop a large preview when you hover the row — so you can find a tile by sight instead of by name.",
  "BL.SettingTokenReveal": "Show visible tokens only (experimental)",
  "BL.SettingTokenRevealHint": "When a token gains line of sight to a token on another level, reveal ONLY that token — drawn on top of whatever covers it, with a dashed outline — instead of Foundry's default of unoccluding every tile above it (which exposes the seen token's whole surroundings, and can even remove the floor under the viewer). The seen token stays targetable. v13 Levels behaviour, brought back for v14.",
  "BL.StairAutoMade": "Create Stairs is ON — this new region was made a stair. Toggle it off in the panel for plain regions.",
  "BL.StairNoAbove": "No level above this one — can't make a stair. Add a level above first.",
  "BL.StatusTitle": "Better Levels",
  "BL.SyncLevel": "Sync to Levels Elevation",
  "BL.SyncLevelOff": "Placeables no longer follow the Levels nav.",
  "BL.SyncLevelOn": "Placeables now follow the level selected in the Levels nav.",
  "BL.TileConfigured": "Configured tile as {role} on \"{level}\" + Surface region.",
  "BL.TileMoved": "Moved tile to \"{level}\" (elevation {elev}) and brought it to the front.",
  "BL.TileNoBand": "Tile elevation is not within any level band — set its elevation or generate levels.",
  "BL.TileOccLinkId": "Occlusion Link Id",
  "BL.TileOccLinkIdHint": "Any text. Tiles that share this Id fade together when a Source tile among them is occluded (has a token under it). Useful for a multi-tile roof on a prefab.",
  "BL.TileOccLinkSource": "Occlusion Link Source",
  "BL.TileOccLinkSourceHint": "When a token goes under this tile and it fades, every tile sharing its Occlusion Link Id fades with it. A tile that is not a source only receives the command; it never sends one.",
  "BL.TileRevealFog": "Reveal fog of war beneath (Better Levels)",
  "BL.TileRevealFogHint": "Paint this tile's footprint into the sight mask so the area it covers stays visible through fog of war instead of reading as a dark unexplored hole. Set automatically when you mark the tile as a Roof.",
  "BL.TileRoleCleared": "Cleared the {role} role from this tile; its original settings were restored.",
  "BL.TileRoleClearedRegion": "Cleared the {role} role from this tile and removed the Surface region it created.",
  "BL.TipAboveBasementTag": "An above-ground tile is tagged to a basement, so it would appear underground. The fix removes the basement tag.",
  "BL.TipAboveBlank": "This above-ground tile has no level tag. Untagged tiles are visible from every level, including sealed basements, so it leaks downward. The fix tags it to the above-ground levels.",
  "BL.TipBehaviorDisabled": "A behaviour on this region is switched off, so the region looks configured but does nothing. The fix re-enables it.",
  "BL.TipDegenerate": "This level's top is not above its bottom, so it has zero height and nothing can live in it. Levels are elevation bands [bottom, top); a band needs real height. The fix re-bands it from its neighbours.",
  "BL.TipDupBackground": "In v14 the background image belongs to the LEVEL, not the scene, and every level that has one paints it across the whole canvas at its own elevation. If an upper floor repeats the ground floor's image, it draws an opaque copy of the map on top of everything below — tokens down there disappear, though their hitbox and selection border still show because those draw above the map. An upper floor does not need its own copy to avoid rendering black: keep the ground floor in its Visible Levels list and the map shows through from beneath. Fixing clears the image from the upper level only. If two levels are meant to share artwork, set the image on the upper level yourself from the Level Manager's BG column — a background you chose deliberately is left alone by this rule.",
  "BL.TipFauxLargeSurface": "A Faux Overhead hides every token beneath it across its entire footprint. That is exactly what you want for a bridge or a catwalk painted into the map. On a region big enough to be a floor Surface it hides every token on every level below, everywhere — which looks like a broken module rather than a mis-set region. The fix removes the Faux Overhead behavior and leaves the Surface alone. Pairing the two is fine on a small, bridge-sized region.",
  "BL.TipFloorLOS": "This floor tile isn't set to block line-of-sight, so vision passes through it between floors. A floor you stand on should also block sight downward. The fix enables line-of-sight occlusion on it.",
  "BL.TipFloorNoSurface": "This floor tile has no Define Surface region of its own (or its region was deleted, or it's sharing another tile's region). Each floor tile needs its own surface so its exact footprint is what tokens stand on and what occludes below. The fix gives it its own surface region.",
  "BL.TipHolePassthrough": "A hole in a floor or roof surface (a stairwell, balcony opening, or trapdoor) must also exist in the surface of the level directly below it, or that lower floor — which now occludes on the upper level too — re-blocks the view and tokens on the two levels can't see each other through the opening. The fix copies the opening down one level. Run it again for a multi-storey atrium; a single opening only drops one floor, and openings never cross a sealed basement.",
  "BL.TipLegacyFlag": "A leftover flag from the old Levels module is riding along on this entity. It does nothing in v14 but can confuse other tools. The fix strips it — no visible change.",
  "BL.TipLegacyMigrate": "This scene still stores elevation in the old Levels module's flags. v14 replaced that module with built-in levels, and Better Levels can only audit the new format. Migration (via Mass Edit) rebuilds the scene to v14 standards and turns the old flat levels into real level bands with surface regions. A backup is offered first.",
  "BL.TipLevelElevConflict": "An entity is tagged to one level but its elevation sits in another's band. A tag says 'I belong to this floor'; the elevation says otherwise, so it renders on the wrong level. The fix snaps its elevation into its tagged level's band.",
  "BL.TipLevelNoSurface": "This level has content but no Define Surface and no floor tiles, so tokens have nothing to stand on and stairs arriving here have no floor to land on. A surface is the walkable, occluding plane of a level. The fix creates a level-wide floor surface. (When a level DOES have floor tiles, those are handled per-tile instead.)",
  "BL.TipLevelOverlap": "Two levels claim overlapping elevations, so an entity's elevation can't be resolved to a single floor — occlusion and vision get ambiguous. Levels must tile elevation without overlapping. The fix deletes the overlapping level (review first).",
  "BL.TipLevelUnused": "This level holds no tiles, lights, regions, walls or tokens. Empty levels clutter the stack and the level palette. The fix deletes it (review first).",
  "BL.TipLightOffBand": "This light's elevation doesn't fall on any level, so Levels can't decide which floor it lights. The fix snaps it to the nearest band. Lights are left untagged on purpose, so their glow spills between floors like real light.",
  "BL.TipLightTagged": "This light carries a level tag, which pins its effect to one floor. Lights usually read better untagged so illumination bleeds naturally between levels. The fix clears the tag; elevation is untouched.",
  "BL.TipNameNumber": "Levels read best numbered in sequence (Level 01, 02, 03…). This is purely a label. The fix renumbers them in order — no behaviour change.",
  "BL.TipNameRange": "Level names read best when they show their range, e.g. 'Level 02 (10–20 ft)'. This is purely a label so you can read the stack at a glance. The fix appends the range — no behaviour change.",
  "BL.TipOccludeLW": "This floor/roof/basement/balcony tile isn't set to restrict light and weather, so both bleed through it to the floor below. A solid floor should block them. The fix turns on both restriction checkboxes.",
  "BL.TipRegionNaming": "This surface/stair region's name doesn't follow the convention — 'Surface {level}' for a floor surface, 'Stair {lower} ↔ {upper}' for a stair. Consistent names keep the region list readable and let the audit pair regions to levels. Label change only; surfaces and stairs are named distinctly.",
  "BL.TipRegionOrphan": "This region is tagged to level ids that no longer exist (a level was deleted out from under it). Stale tags can make a region silently inactive. The fix drops the dead references.",
  "BL.TipRoofFog": "This roof tile isn't set to reveal fog of war beneath it, so the interior it covers reads as a dark, unexplored hole instead of the explored space it should be. Better Levels reveals it natively now (no external module): the fix marks the tile to reveal fog, and its footprint is painted into the sight mask.",
  "BL.TipRoofInfinity": "This roof's surface has a finite top. An infinite top keeps a token flying above the top level from seeing in. Note: this does NOT change what a token standing on a defined level above sees — that's the surface's level assignment (see the roof-coverage rule). The fix sets the top to infinite.",
  "BL.TipRoofNoSurface": "This roof tile has no Define Surface region, so it can't occlude the space beneath it — anyone above sees right in. A roof is the top of a section and needs a surface just like a floor does. The fix creates one for the roof's footprint, assigned to every level above.",
  "BL.TipStairConnects": "A stair should connect a clean set of adjacent floors — normally exactly two, and every floor its band passes through. This one doesn't, which usually means a mis-drawn band or a skipped floor. Review which levels it should link (auto-fix only when a passed-through floor is clearly missing).",
  "BL.TipStairElevation": "This stair's elevation band doesn't span the floors it connects, or its top edge isn't inclusive. A stair must contain the elevation a token stands at on every level it links — including the top floor, or the token can't step back down. The fix sets the band floor-to-floor with an inclusive top.",
  "BL.TipSurfaceInfinite": "An infinite elevation top on a surface only makes sense on the very top level, where it means \"open sky above.\" On any lower level it makes the surface stretch upward forever, overlapping every level above it, and an unbounded region crashes Foundry's own movement code when a token changes elevation through it. Fixing caps the surface at its own level's top. Better Levels used to create these by treating a lower roof as if it were the top; that no longer happens.",
  "BL.TipSurfaceIsStair": "This region is both a Surface (a floor you stand on) and a Stair (it moves you between levels). A token standing on it is instantly level-changed, so stairs behave erratically. A region should be one or the other. The fix removes the Change Level behaviour, leaving a plain surface.",
  "BL.TipSurfacePlacement": "This Define Surface isn't set to apply at both the bottom and top of its band, so occlusion can flicker at the edges. Surfaces should cover the whole band. The fix sets it to both.",
  "BL.TipSurfaceVisibility": "A surface only occludes on the levels it's assigned to. To block sight in BOTH directions between any two levels that can see each other, the surface must be tagged to its own level AND every level mutually visible with it — otherwise cross-level sightlines leak through it. The fix assigns the full set. Basements stay sealed automatically: a sealed basement is visible to/from nothing, so its surfaces resolve to just itself.",
  "BL.TipTileBasement": "A basement tile is tagged to more than its basement, so it would show through on floors above. Basements are meant to be sealed. The fix tags it to its basement only.",
  "BL.TipTileNoBasement": "This tile sits below every defined level and no basement covers it, so it has no home floor. Generate a basement to hold it (no automatic fix — it's a structural decision).",
  "BL.TipTileUntagged": "These tiles have never been marked as Floor, Roof, Basement or Balcony — so Better Levels treats them as decoration and skips them in EVERY other tile check: no surface region, no occlusion, no light-and-weather. That's why a half-configured scene can otherwise audit clean. There's no automatic fix on purpose: Better Levels can't tell a floor plate from a rug or a shadow overlay, and guessing would create surfaces your tokens stand on. Mark the real floors and roofs with the tile HUD buttons, or select several and use \"Mark selected tiles as Floor\" — from then on they're checked and fixable. Genuine decoration can stay untagged, and you can switch this rule off if a scene is intentionally mostly props.",
  "BL.TipVisibility": "This level's Visible Levels list doesn't match the default policy (above-ground floors see each other; basements are sealed). Visible Levels is what a token on this level is allowed to see on other levels. The fix rebuilds the list to the default — it's skipped once you set visibility by hand in the Level Manager.",
  "BL.ToolTitle": "Open Better Levels",
  "BL.VehicleBtnOff": "Link Token: make this prefab a vehicle (tokens ride its regions)",
  "BL.VehicleBtnOn": "Link Token is ON — click to stop tokens riding this prefab",
  "BL.VehicleNoRegions": "This prefab has no regions to link tokens to.",
  "BL.VehicleOff": "Link Token OFF — {n} region(s) no longer carry tokens.",
  "BL.VehicleOn": "Link Token ON — {n} region(s) will carry tokens that stand on them.",
  "BL.VehiclePartial": "Some regions couldn't be updated ({n} failed). The scene has corrupt regions — click Repair in the Better Levels panel, then try again.",
  "TYPES.RegionBehavior.baileywiki-better-levels.fauxOverhead": "Better Levels: Faux Overhead"
}
