Documentation
¶
Overview ¶
Package debugging defines transport-neutral contracts for the external debug workbench.
Index ¶
- Constants
- Variables
- func DurationEffectDescription(code string) string
- type ActiveSpellEffectData
- type Bridge
- type Catalog
- type Choice
- type CommandDefinition
- type CommandInvocation
- type DiscoverySnapshot
- type DungeonExplorerCellData
- type DungeonExplorerStatusData
- type ExecutionMode
- type Executor
- type MagicLightEffectData
- type MerchantTesterCatalogData
- type MerchantTesterContextData
- type MerchantTesterMerchantData
- type MerchantTesterOpenData
- type OptionSet
- type ParameterDefinition
- type ParameterKind
- type ReduxCombatModificationsData
- type ReduxDungeonModificationsData
- type ReduxModificationsStatusData
- type ReduxNavigationModificationsData
- type ReduxPresentationModificationsData
- type Request
- type Result
- type SaveSnapshotCaptureData
- type SaveSnapshotCompatibility
- type SaveSnapshotDeleteData
- type SaveSnapshotDetail
- type SaveSnapshotEligibility
- type SaveSnapshotGetData
- type SaveSnapshotListData
- type SaveSnapshotLoadData
- type SaveSnapshotSummary
- type SpellEffectsData
- type SpellInventoryEntryData
- type SpellInventoryStatusData
- type StateChange
- type TileAnnotation
- type WorldPositionBoundsData
- type WorldPositionDestinationData
- type WorldPositionPlacementTargetData
- type WorldPositionSetupData
- type WorldPositionStatusData
Constants ¶
const ( // CommandCombatStatus reports a detached snapshot of the active tactical encounter. CommandCombatStatus = "combat.status" // CommandCombatMonsterSleepSet changes one live monster's sleep condition. CommandCombatMonsterSleepSet = "combat.monster.sleep.set" // CommandCombatExitDebug discards one reviewed tactical encounter without resolving an outcome. CommandCombatExitDebug = "combat.exit-debug" // CommandCombatMonsterSpawn atomically adds one reviewed reinforcement batch. CommandCombatMonsterSpawn = "combat.monster.spawn" // CommandRNGSeedSet resets the global gameplay RNG from reviewed active combat. CommandRNGSeedSet = "rng.seed.set" // CommandCombatMonsterDamageRaw applies bounded damage under the debug defeat policy. CommandCombatMonsterDamageRaw = "combat.monster.damage-raw" // CommandCombatMonsterKill defeats one reviewed combatant under the debug defeat policy. CommandCombatMonsterKill = "combat.monster.kill" // CommandCombatMonsterKillAll defeats every monster in one reviewed encounter snapshot. CommandCombatMonsterKillAll = "combat.monster.kill-all" // CommandCombatDungeonRoomClear defeats hostile enemies in an authoritative fixed dungeon room. CommandCombatDungeonRoomClear = "combat.dungeon-room.clear" // CommandCombatMonsterClear removes every monster without resolving a combat outcome. CommandCombatMonsterClear = "combat.monster.clear" )
const ( DefaultRequestCapacity = 64 DefaultResultCapacity = 128 )
Default bridge capacities bound work performed and retained between frames.
const ( CommandCodexEquipmentCatalog = "codex.equipment.catalog" CommandCodexMonsterCatalog = "codex.monster.catalog" CommandCodexSpellCatalog = "codex.spell.catalog" CommandCodexTileCatalog = "codex.tile.catalog" CommandCodexLocationCatalog = "codex.location.catalog" CommandCodexNPCCatalog = "codex.npc.catalog" CommandCodexQuestCatalog = "codex.quest.catalog" CommandCodexSaveFormat = "codex.save-format.catalog" CommandCodexSearchLocations = "codex.search-location.catalog" CommandCodexConsumables = "codex.consumable.catalog" )
Codex command IDs identify immutable developer-reference queries.
const ( // CommandTestTelescope queues the production telescope workflow from compatible live state. CommandTestTelescope = "command-test.telescope" // CommandTestSpyglass queues the production spyglass workflow from compatible live state. CommandTestSpyglass = "command-test.spyglass" // CommandTestCrystalBall queues the production crystal-ball workflow from compatible live state. CommandTestCrystalBall = "command-test.crystal-ball" )
const ( // CommandQuestShardUse queues the production shard-use workflow for one stable shard identity. CommandQuestShardUse = "quest.shard.use" // CommandQuestInventoryPresetUsable applies the reviewed all-usable inventory preset. CommandQuestInventoryPresetUsable = "quest.inventory.preset-usable" )
const ( // CommandEnvironmentWindStatus reports the current wind direction. CommandEnvironmentWindStatus = "environment.wind.status" // CommandEnvironmentWindSet changes the current wind direction without consuming gameplay resources. CommandEnvironmentWindSet = "environment.wind.set" // CommandCombatMapCatalog reports available Britannia and dungeon combat maps. CommandCombatMapCatalog = "combat.map-catalog.all" // CommandLoggingStatus reports current categorized logging configuration. CommandLoggingStatus = "logging.status" // CommandShrineReferenceInspect reports static reference data for one shrine. CommandShrineReferenceInspect = "shrine.reference.inspect" // CommandShrineStatus reports reference and progression state for every shrine. CommandShrineStatus = "shrine.status" // CommandShrineProgressUpdate atomically changes one shrine's progression flags. CommandShrineProgressUpdate = "shrine.progress.update" // CommandPartyCharacterInspect reports editable state for the active party. CommandPartyCharacterInspect = "party.character.inspect" // CommandPartyCharacterUpdate atomically alters one active character outside combat. CommandPartyCharacterUpdate = "party.character.update" // CommandPartyMaximizeLevels raises every active character to level eight. CommandPartyMaximizeLevels = "party.maximize-levels" // CommandPartyStatusSet applies one explicit status to reviewed active roster indices. CommandPartyStatusSet = "party.status.set" // CommandPartyFill fills open active-party positions in roster order. CommandPartyFill = "party.fill" // CommandPartyMemberAdd adds one reviewed inactive roster member. CommandPartyMemberAdd = "party.member.add" // CommandPartyKarmaSet sets the party-wide karma value exactly. CommandPartyKarmaSet = "party.karma.set" // CommandCalendarStatus reports the current Britannian calendar. CommandCalendarStatus = "calendar.status" // CommandCalendarSetTime sets the current hour and minute without advancing time. CommandCalendarSetTime = "calendar.set-time" // CommandCalendarSetDay sets the day within the current month. CommandCalendarSetDay = "calendar.set-day" // CommandSearchStatus reports search state around the Avatar. CommandSearchStatus = "search.status" // CommandSearchItemStackAdd adds a supported provision to a current-map item stack. CommandSearchItemStackAdd = "search.item-stack.add" // CommandSearchProgressReset clears one-time authentic search progress. CommandSearchProgressReset = "search.progress.reset" // CommandQuestItemStatus reports all quest-item quantities and known placements. CommandQuestItemStatus = "quest.item.status" // CommandQuestItemEnsure ensures one quest item is in inventory. CommandQuestItemEnsure = "quest.item.ensure" // CommandQuestItemRemove removes one quest item from inventory. CommandQuestItemRemove = "quest.item.remove" // CommandWorldPositionStatus reports the current same-map coordinate space. CommandWorldPositionStatus = "world.position.status" // CommandMovementTeleport teleports the Avatar within the current map. CommandMovementTeleport = "movement.teleport" // CommandMovementEnterLocation transitions directly to one supported small-map entry point. CommandMovementEnterLocation = "movement.enter-location" // CommandMovementFloorSet transitions to one exact valid floor. CommandMovementFloorSet = "movement.floor.set" // CommandMovementLandmarkTravel transitions to a curated physical landmark. CommandMovementLandmarkTravel = "movement.landmark.travel" // CommandMoongateStatus reports moon phase, moonstones, and computed destination. CommandMoongateStatus = "moongate.status" // CommandConversationScriptCatalog lists loaded conversation sources and one source's scripts. CommandConversationScriptCatalog = "conversation.script.catalog" // CommandConversationScriptInspect returns one detached conversation script. CommandConversationScriptInspect = "conversation.script.inspect" // CommandCombatEncounterOptions reports valid encounter composer options. CommandCombatEncounterOptions = "combat.encounter.options" // CommandCombatEncounterStart starts a composed tactical encounter. CommandCombatEncounterStart = "combat.encounter.start" // CommandVFXStatus reports active presentation effects. CommandVFXStatus = "vfx.status" // CommandVFXKapow presents a kapow effect without changing gameplay state. CommandVFXKapow = "vfx.kapow" // CommandVFXProjectile presents a projectile without changing gameplay state. CommandVFXProjectile = "vfx.projectile" // CommandEnvironmentEarthquake presents a parameterized earthquake without changing gameplay state. CommandEnvironmentEarthquake = "environment.earthquake" // CommandMonsterEcosystemStatus reports current-map monster generation and units. CommandMonsterEcosystemStatus = "monster.ecosystem.status" // CommandMonsterGenerationSet changes natural monster generation settings. CommandMonsterGenerationSet = "monster.generation.set" // CommandMonsterClearMapEnemies removes current-map hostile units. CommandMonsterClearMapEnemies = "monster.clear-map-enemies" // CommandMonsterSpawnWhirlpool attempts an authoritative whirlpool spawn. CommandMonsterSpawnWhirlpool = "monster.spawn-whirlpool" // CommandMonsterSpawnPirate attempts an authoritative pirate spawn. CommandMonsterSpawnPirate = "monster.spawn-pirate" // CommandVehicleStatus reports the currently boarded party vehicle. CommandVehicleStatus = "vehicle.status" // CommandVehicleSpawn inserts a frigate or skiff at the Avatar or a stable overworld dock. CommandVehicleSpawn = "vehicle.spawn" // CommandVehicleForceBoard replaces the party vehicle while intentionally bypassing terrain checks. CommandVehicleForceBoard = "vehicle.force-board" // CommandShipDamageRaw applies non-sinking raw hull damage. CommandShipDamageRaw = "ship.damage-raw" // CommandShipRepairFull restores frigate hull strength. CommandShipRepairFull = "ship.repair-full" // CommandShipSkiffSet sets the exact number of skiffs attached to the current frigate. CommandShipSkiffSet = "ship.skiff.set" // CombatMapSectionAll selects both Britannia and dungeon combat maps. CombatMapSectionAll = "all" // CombatMapSectionBritannia selects Britannia combat maps. CombatMapSectionBritannia = "britannia" // CombatMapSectionDungeons selects dungeon combat maps. CombatMapSectionDungeons = "dungeons" // WindDirectionCalm is the stable serialized calm-wind identity. WindDirectionCalm = "calm" // WindDirectionNorth is the stable serialized north-wind identity. WindDirectionNorth = "north" // WindDirectionSouth is the stable serialized south-wind identity. WindDirectionSouth = "south" // WindDirectionEast is the stable serialized east-wind identity. WindDirectionEast = "east" // WindDirectionWest is the stable serialized west-wind identity. WindDirectionWest = "west" // ShrineQuestNotAssigned normalizes cleared completed and active flags. ShrineQuestNotAssigned = "not_assigned" // ShrineQuestAssigned normalizes a cleared completed flag and set active flag. ShrineQuestAssigned = "assigned" // ShrineQuestReadyToComplete normalizes set completed and active flags. ShrineQuestReadyToComplete = "ready_to_complete" // ShrineQuestOffering normalizes a set completed flag and cleared active flag. ShrineQuestOffering = "offering" )
const ( // CommandInventoryLockerStatus reports the complete locker-managed inventory. CommandInventoryLockerStatus = "inventory.locker.status" // CommandInventoryProvisionSet assigns one provision quantity. CommandInventoryProvisionSet = "inventory.provision.set" // CommandInventoryProvisionPreset applies a provision locker preset. CommandInventoryProvisionPreset = "inventory.provision.preset" // CommandInventoryReagentPreset applies a reagent locker preset. CommandInventoryReagentPreset = "inventory.reagent.preset" // CommandInventoryReagentSet assigns one reagent quantity. CommandInventoryReagentSet = "inventory.reagent.set" // CommandInventoryPotionAdd adds to one potion stack. CommandInventoryPotionAdd = "inventory.potion.add" // CommandInventoryPotionPreset applies a potion locker preset. CommandInventoryPotionPreset = "inventory.potion.preset" // CommandInventoryScrollAdd adds to one scroll stack. CommandInventoryScrollAdd = "inventory.scroll.add" // CommandInventoryScrollPreset applies a scroll locker preset. CommandInventoryScrollPreset = "inventory.scroll.preset" // CommandInventoryEquipmentPreset applies an equipment locker preset. CommandInventoryEquipmentPreset = "inventory.equipment.preset" // CommandInventoryEquipmentSet assigns one carried equipment quantity. CommandInventoryEquipmentSet = "inventory.equipment.set" // CommandInventoryEquipmentGrantPreset applies an additive equipment locker preset. CommandInventoryEquipmentGrantPreset = "inventory.equipment.grant-preset" // CommandInventoryEquipmentClear destroys all carried equipment and every roster loadout. CommandInventoryEquipmentClear = "inventory.equipment.clear" )
const ( // CommandLoggingEnabledSet changes the process-wide logging master switch. CommandLoggingEnabledSet = "logging.enabled.set" // CommandLoggingStdoutSet changes process-wide stdout logging output. CommandLoggingStdoutSet = "logging.stdout.set" // CommandLoggingLevelSet changes the process-wide minimum logging level. CommandLoggingLevelSet = "logging.level.set" // CommandLoggingCategorySet changes one process-wide logging category. CommandLoggingCategorySet = "logging.category.set" // CommandLoggingCategoriesSetAll changes every known process-wide logging category. CommandLoggingCategoriesSetAll = "logging.categories.set-all" )
const ( // CommandMerchantTesterCatalog reports canonical merchants and current launch availability. CommandMerchantTesterCatalog = "merchant.tester.catalog" // CommandMerchantTesterPreviewOpen opens a read-only production merchant presentation. CommandMerchantTesterPreviewOpen = "merchant.tester.preview.open" // CommandMerchantTesterLiveOpen opens a production merchant session, transitioning towns when required. CommandMerchantTesterLiveOpen = "merchant.tester.live.open" // OptionProviderMerchantTesterMerchants resolves canonical merchant identities from loaded references. OptionProviderMerchantTesterMerchants = "merchant.tester.merchants" )
const ( // CommandGuardsStatus reports current town-guard availability and hostility. CommandGuardsStatus = "guards.status" // CommandShadowlordStatus reports current Shadowlord life, presence, and assignment state. CommandShadowlordStatus = "shadowlord.status" // CommandDeathStatus reports current party death state and resurrection consequences. CommandDeathStatus = "death.status" // CommandDebugOptionsStatus reports frequently used gameplay and renderer diagnostics. CommandDebugOptionsStatus = "debug.options.status" // CommandMovementFreeMoveSet explicitly enables or disables collision-free movement. CommandMovementFreeMoveSet = "movement.free-move.set" // CommandTextPlaceholdersSet explicitly enables or disables empty-line placeholders. CommandTextPlaceholdersSet = "overlay.text-placeholders.set" // CommandDialogBoundsSet explicitly enables or disables dialog text-area bounds. CommandDialogBoundsSet = "overlay.dialog-bounds.set" // CommandUnlimitedCastingResourcesSet explicitly enables or disables casting resource enforcement. CommandUnlimitedCastingResourcesSet = "magic.unlimited-casting-resources.set" // CommandSpellLevelRestrictionsBypassSet explicitly enables or disables spell-circle level enforcement. CommandSpellLevelRestrictionsBypassSet = "magic.spell-level-restrictions-bypass.set" // CommandDisplayStatus reports requested and observed runtime display state. CommandDisplayStatus = "display.status" // CommandDisplayModeSet requests one runtime game-window mode. CommandDisplayModeSet = "display.mode.set" // CommandDisplayResolutionSet requests one runtime game-window preset. CommandDisplayResolutionSet = "display.resolution.set" // CommandDisplayFullscreenSet is the compatibility runtime fullscreen toggle. CommandDisplayFullscreenSet = "display.fullscreen.set" )
const ( // CommandLightingOverlaySet changes the game-window lighting diagnostic overlay. CommandLightingOverlaySet = "overlay.lighting.set" // CommandSearchOverlaySet changes the game-window search-location overlay. CommandSearchOverlaySet = "overlay.search.set" // CommandMoongateOverlaySet changes the game-window moonstone overlay. CommandMoongateOverlaySet = "overlay.moongate.set" // CommandCombatPresentationSpeedSet changes persisted combat movement presentation speed. CommandCombatPresentationSpeedSet = "combat.presentation.speed.set" )
const ( // CommandReduxModificationsStatus reports persisted Redux gameplay choices. CommandReduxModificationsStatus = "redux.modifications.status" // CommandReduxCombatRepeatedMonsterDivisionSet changes repeated SPLITS behavior. CommandReduxCombatRepeatedMonsterDivisionSet = "redux.combat.repeated-monster-division.set" // CommandReduxDungeonsPersistHiddenDiscoveriesSet changes hidden-feature retention between visits. CommandReduxDungeonsPersistHiddenDiscoveriesSet = "redux.dungeons.persist-hidden-discoveries.set" // CommandReduxDungeonsSubduedUnlitVisibilitySet changes cosmetic unlit dungeon visibility. CommandReduxDungeonsSubduedUnlitVisibilitySet = "redux.dungeons.subdued-unlit-visibility.set" // CommandReduxPresentationSmoothSurfaceMovementSet changes optional surface camera scrolling. CommandReduxPresentationSmoothSurfaceMovementSet = "redux.presentation.smooth-surface-movement.set" CommandReduxNavigationFlexibleSextantUseSet = "redux.navigation.flexible_sextant_use.set" )
const ( // CommandScenarioStatus reports context and state used by forced scenarios. CommandScenarioStatus = "scenario.status" // CommandScenarioStarvationTrigger applies one deterministic starvation damage check. CommandScenarioStarvationTrigger = "scenario.starvation.trigger" // CommandScenarioStarvationHourly forces zero food and the authentic hourly meal check. CommandScenarioStarvationHourly = "scenario.starvation.force-hourly" // CommandScenarioGuardsActivate makes eligible town guards hostile. CommandScenarioGuardsActivate = "scenario.guards.activate" // CommandScenarioWaterfallSetup positions the party one step before the canonical waterfall trigger. CommandScenarioWaterfallSetup = "scenario.waterfall.setup" // CommandScenarioBridgeTroll starts the production bridge sneak and attack workflow from deterministic state. CommandScenarioBridgeTroll = "scenario.bridge-troll.start" // CommandScenarioWordSetup positions the party beside the dungeon matching a Word of Power. CommandScenarioWordSetup = "scenario.word.setup" // CommandScenarioDefinitionList lists durable scripted scenario definitions. CommandScenarioDefinitionList = "scenario.definition.list" // CommandScenarioDefinitionGet returns one complete durable scripted scenario definition. CommandScenarioDefinitionGet = "scenario.definition.get" // CommandScenarioDefinitionValidate validates a scripted scenario without persisting it. CommandScenarioDefinitionValidate = "scenario.definition.validate" // CommandScenarioDefinitionCreate creates one absent durable scripted scenario definition. CommandScenarioDefinitionCreate = "scenario.definition.create" // CommandScenarioDefinitionUpdate conditionally updates one durable scripted scenario definition. CommandScenarioDefinitionUpdate = "scenario.definition.update" // CommandScenarioDefinitionDelete conditionally deletes one durable scripted scenario definition. CommandScenarioDefinitionDelete = "scenario.definition.delete" // CommandScenarioDefinitionDuplicate copies one revision to an absent explicit destination. CommandScenarioDefinitionDuplicate = "scenario.definition.duplicate" // CommandScenarioRunStart starts one durable scripted scenario workflow. CommandScenarioRunStart = "scenario.run.start" // CommandScenarioRunStatus reports the active run and bounded durable history. CommandScenarioRunStatus = "scenario.run.status" // CommandScenarioRunCancel cancels only the remaining steps of one identified run. CommandScenarioRunCancel = "scenario.run.cancel" )
const ( // CommandScenarioBlackthornInterrogation starts the production Blackthorn interrogation from deterministic state. CommandScenarioBlackthornInterrogation = "scenario.blackthorn-interrogation.start" // CommandScenarioLordBritishFinale starts the production terminal finale with exact Wooden Box ownership. CommandScenarioLordBritishFinale = "scenario.lord-british-finale.start" )
const ( // CommandDeathKillParty atomically wipes the reviewed active party without starting resurrection. CommandDeathKillParty = "death.kill-party" // CommandDeathTestSequence atomically wipes the reviewed active party and queues resurrection. CommandDeathTestSequence = "death.test-sequence" )
const ( // CommandSaveSnapshotList lists detached repository metadata. CommandSaveSnapshotList = "save.snapshot.list" // CommandSaveSnapshotGet returns detached detail for one repository record. CommandSaveSnapshotGet = "save.snapshot.get" // CommandSaveSnapshotCapture creates an immutable named capture. CommandSaveSnapshotCapture = "save.snapshot.capture" // CommandSaveSnapshotLoad atomically replaces gameplay after persisting rollback state. CommandSaveSnapshotLoad = "save.snapshot.load" // CommandSaveSnapshotDelete revision-safely removes a named capture. CommandSaveSnapshotDelete = "save.snapshot.delete" )
const ( // CommandInventorySpellStatus reports prepared spells and the active duration effect. CommandInventorySpellStatus = "inventory.spell.status" // CommandInventorySpellSet assigns one prepared spell quantity. CommandInventorySpellSet = "inventory.spell.set" // CommandInventorySpellPresetMax sets every castable spell quantity to 99. CommandInventorySpellPresetMax = "inventory.spell.preset-max" // CommandSpellEffectSetRemaining sets exact remaining turns with stale-state preconditions. CommandSpellEffectSetRemaining = "spell.effect.set-remaining" // CommandSpellEffectActivate explicitly activates Light or Time Stop at its authentic duration. CommandSpellEffectActivate = "spell.effect.activate" )
const ( // CommandTestHoleUp queues the production camping workflow with explicit test branches. CommandTestHoleUp = "command-test.hole-up" // CommandTestSearch queues the production map-specific Search action. CommandTestSearch = "command-test.search" // CommandMoongateTravel queues production moongate travel from reviewed live state. CommandMoongateTravel = "moongate.travel" )
const ( // CommandWorldPositionSet atomically applies an exact position or authoritative route target. CommandWorldPositionSet = "world.position.set" // CommandDungeonExplorerStatus reports the active semantic dungeon floor. CommandDungeonExplorerStatus = "dungeon.explorer.status" // CommandDungeonExplorerSetup installs one exact production dungeon setup. CommandDungeonExplorerSetup = "dungeon.explorer.setup" // WorldPlacementExact preserves arbitrary location, floor, and coordinate setup. WorldPlacementExact = "exact" // WorldPlacementDungeonOutside resolves a dungeon entrance on a selected world plane. WorldPlacementDungeonOutside = "dungeon_outside_entrance" // WorldPlacementDungeonInsideStart resolves the selected route's fresh dungeon entry. WorldPlacementDungeonInsideStart = "dungeon_inside_start" // WorldPlacementDungeonUnderworldExit resolves the floor-seven down-ladder endpoint. WorldPlacementDungeonUnderworldExit = "dungeon_underworld_exit" // WorldRouteBritannia selects the surface route. WorldRouteBritannia = "britannia" // WorldRouteUnderworld selects the Underworld route. WorldRouteUnderworld = "underworld" )
const (
// CommandCodexQuestStateSetAll atomically normalizes every reviewed shrine quest.
CommandCodexQuestStateSetAll = "codex.quest-state.set-all"
)
const (
// CommandPartyEquipmentLoadoutUpdate atomically changes one or more slots for one or all active characters.
CommandPartyEquipmentLoadoutUpdate = "party.equipment.loadout.update"
)
const OptionProviderActivePartyCharacters = "party.active-characters"
OptionProviderActivePartyCharacters resolves current active-party character choices.
const OptionProviderActivePartyPositions = "party.active-positions"
OptionProviderActivePartyPositions resolves current occupied party positions.
const OptionProviderEquipmentLoadoutTargets = "party.equipment-loadout-targets"
OptionProviderEquipmentLoadoutTargets resolves all-party and current character loadout targets.
const ScenarioValueResolverActivePartyPosition = "active-party-position"
ScenarioValueResolverActivePartyPosition replaces a planned party position with a live command value.
Variables ¶
var ( // ErrCommandNotFound indicates that a request references an unknown command ID. ErrCommandNotFound = errors.New("debug command not found") // ErrInvalidRequest indicates that a request does not satisfy its command schema. ErrInvalidRequest = errors.New("invalid debug command request") // ErrInvalidCatalog indicates that a command definition is malformed. ErrInvalidCatalog = errors.New("invalid debug command catalog") // ErrInvalidArgument indicates that an argument does not satisfy its parameter schema. ErrInvalidArgument = errors.New("invalid debug command argument") )
var ErrRequestQueueFull = errors.New("debug request queue is full")
ErrRequestQueueFull indicates that the update thread has not caught up with submissions.
Functions ¶
func DurationEffectDescription ¶
DurationEffectDescription supplies inspector-only explanations. Effect identity, duration and display names come from the authoritative gameplay status.
Types ¶
type ActiveSpellEffectData ¶
type ActiveSpellEffectData struct {
Active bool `json:"active"`
EffectType string `json:"effectType"`
FriendlyName string `json:"friendlyName"`
Incantations []string `json:"incantations"`
SourceAmbiguous bool `json:"sourceAmbiguous"`
Description string `json:"description"`
TurnsRemaining int `json:"turnsRemaining"`
}
ActiveSpellEffectData reports the single active duration-spell slot.
type Bridge ¶
type Bridge struct {
// contains filtered or unexported fields
}
Bridge transfers immutable requests and results across the network/update boundary.
func NewDefaultBridge ¶
func NewDefaultBridge() *Bridge
NewDefaultBridge constructs a bridge with application defaults.
func (*Bridge) NextResult ¶
NextResult returns the next result without blocking.
type Catalog ¶
type Catalog struct {
// contains filtered or unexported fields
}
Catalog stores validated command definitions in stable registration order.
func NewCatalog ¶
func NewCatalog(definitions []CommandDefinition) (*Catalog, error)
NewCatalog validates and constructs a command catalog.
func NewInitialCatalog ¶
func NewInitialCatalog() *Catalog
NewInitialCatalog creates the first transport-neutral command slice.
func (*Catalog) Definitions ¶
func (c *Catalog) Definitions() []CommandDefinition
Definitions returns a defensive copy of the catalog in registration order.
func (*Catalog) Get ¶
func (c *Catalog) Get(commandID string) (CommandDefinition, bool)
Get returns a defensive copy of one command definition.
func (*Catalog) NormalizeRequest ¶
NormalizeRequest validates a request, deep-copies it, and applies parameter defaults.
func (*Catalog) ValidateRequest ¶
ValidateRequest validates request identity and arguments against the command schema.
type Choice ¶
type Choice struct {
Value string `json:"value"`
Label string `json:"label"`
Metadata json.RawMessage `json:"metadata,omitempty"`
}
Choice defines one serialized value and display label for an enum parameter.
type CommandDefinition ¶
type CommandDefinition struct {
ID string `json:"id"`
Category string `json:"category"`
Name string `json:"name"`
Description string `json:"description"`
Aliases []string `json:"aliases,omitempty"`
SearchTerms []string `json:"searchTerms,omitempty"`
Parameters []ParameterDefinition `json:"parameters,omitempty"`
ExecutionModes []ExecutionMode `json:"executionModes"`
Destructive bool `json:"destructive"`
ScenarioTerminal bool `json:"scenarioTerminal,omitempty"`
ScenarioExcluded bool `json:"scenarioExcluded,omitempty"`
}
CommandDefinition is the authoritative discovery schema for a logical command.
type CommandInvocation ¶
type CommandInvocation struct {
CommandID string `json:"commandId"`
Arguments map[string]json.RawMessage `json:"arguments"`
}
CommandInvocation identifies the normalized command and typed arguments that were executed.
func NewNormalizedInvocation ¶
func NewNormalizedInvocation(request Request) *CommandInvocation
NewNormalizedInvocation snapshots a catalog-normalized request without transport ownership fields.
type DiscoverySnapshot ¶
type DiscoverySnapshot struct {
SceneGeneration uint64 `json:"sceneGeneration"`
OptionsRevision uint64 `json:"optionsRevision"`
Commands []CommandDefinition `json:"commands"`
OptionSets []OptionSet `json:"optionSets,omitempty"`
}
DiscoverySnapshot atomically describes commands and their update-thread-resolved options.
func CloneDiscoverySnapshot ¶
func CloneDiscoverySnapshot(snapshot DiscoverySnapshot) DiscoverySnapshot
CloneDiscoverySnapshot returns a detached copy safe for publication across goroutines.
type DungeonExplorerCellData ¶
type DungeonExplorerCellData struct {
X int `json:"x"`
Y int `json:"y"`
Raw int `json:"raw"`
KindID int `json:"kindId"`
KindName string `json:"kindName"`
Payload int `json:"payload"`
Bit08 bool `json:"bit08"`
Player bool `json:"player"`
}
DungeonExplorerCellData describes one packed semantic cell on the active floor.
type DungeonExplorerStatusData ¶
type DungeonExplorerStatusData struct {
SourceFingerprint string `json:"sourceFingerprint"`
Active bool `json:"active"`
SetupAvailable bool `json:"setupAvailable"`
LocationID int `json:"locationId"`
LocationName string `json:"locationName"`
Floor int `json:"floor"`
DisplayLevel int `json:"displayLevel"`
X int `json:"x"`
Y int `json:"y"`
FacingID int `json:"facingId"`
FacingLabel string `json:"facingLabel"`
LastDirectionID int `json:"lastDirectionId"`
LastDirectionLabel string `json:"lastDirectionLabel"`
Lit bool `json:"lit"`
TorchMinutesRemaining int `json:"torchMinutesRemaining"`
MagicLightMinutesRemaining int `json:"magicLightMinutesRemaining"`
Revision uint64 `json:"revision"`
Cells []DungeonExplorerCellData `json:"cells"`
}
DungeonExplorerStatusData is the typed semantic Dungeon Explorer payload.
type ExecutionMode ¶
type ExecutionMode string
ExecutionMode describes how a command interacts with live game state.
const ( ExecutionQuery ExecutionMode = "query" ExecutionLiveSafe ExecutionMode = "live_safe" ExecutionSynchronized ExecutionMode = "synchronized_live" ExecutionWorkflow ExecutionMode = "workflow" ExecutionAlteration ExecutionMode = "coordinated_alteration" ExecutionSceneRestart ExecutionMode = "scene_restart" ExecutionPresentation ExecutionMode = "presentation" )
Supported command execution modes.
type MagicLightEffectData ¶
type MagicLightEffectData struct {
Active bool `json:"active"`
MinutesRemaining int `json:"minutesRemaining"`
}
MagicLightEffectData reports independent magical illumination.
type MerchantTesterCatalogData ¶
type MerchantTesterCatalogData struct {
SourceFingerprint string `json:"sourceFingerprint"`
CurrentContext MerchantTesterContextData `json:"currentContext"`
Merchants []MerchantTesterMerchantData `json:"merchants"`
}
MerchantTesterCatalogData is the authoritative Merchant Tester catalog and reviewed source state.
type MerchantTesterContextData ¶
type MerchantTesterContextData struct {
LocationID int `json:"locationId"`
LocationName string `json:"locationName"`
Floor int `json:"floor"`
X int `json:"x"`
Y int `json:"y"`
}
MerchantTesterContextData is the reviewed launch context for Merchant Tester operations.
type MerchantTesterMerchantData ¶
type MerchantTesterMerchantData struct {
MerchantID string `json:"merchantId"`
TownID int `json:"townId"`
TownName string `json:"townName"`
ShopName string `json:"shopName"`
OwnerName string `json:"ownerName"`
FamilyID string `json:"familyId"`
FamilyLabel string `json:"familyLabel"`
DialogCode int `json:"dialogCode"`
Implemented bool `json:"implemented"`
PreviewAvailable bool `json:"previewAvailable"`
LiveAvailable bool `json:"liveAvailable"`
LiveExecutionMode ExecutionMode `json:"liveExecutionMode"`
}
MerchantTesterMerchantData describes one canonical active merchant and its current launch availability.
type MerchantTesterOpenData ¶
type MerchantTesterOpenData struct {
MerchantID string `json:"merchantId"`
TownID int `json:"townId"`
TownName string `json:"townName"`
Preview bool `json:"preview"`
Transitioned bool `json:"transitioned"`
WorkflowQueued bool `json:"workflowQueued"`
LocationID int `json:"locationId"`
Floor int `json:"floor"`
X int `json:"x"`
Y int `json:"y"`
}
MerchantTesterOpenData reports presentation/setup queued by an open command.
type OptionSet ¶
OptionSet contains detached choices resolved for one dynamic parameter provider.
func CloneOptionSets ¶
CloneOptionSets detaches dynamic choices without copying immutable commands.
type ParameterDefinition ¶
type ParameterDefinition struct {
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
Kind ParameterKind `json:"kind"`
Required bool `json:"required"`
Default json.RawMessage `json:"default,omitempty"`
Minimum *int `json:"minimum,omitempty"`
Maximum *int `json:"maximum,omitempty"`
Pattern string `json:"pattern,omitempty"`
Choices []Choice `json:"choices,omitempty"`
OptionsProvider string `json:"optionsProvider,omitempty"`
ControlHint string `json:"controlHint,omitempty"`
Availability []string `json:"availability,omitempty"`
ScenarioRuntime bool `json:"scenarioRuntime,omitempty"`
ScenarioChoices []Choice `json:"scenarioChoices,omitempty"`
ScenarioValueResolver string `json:"scenarioValueResolver,omitempty"`
}
ParameterDefinition describes one typed command argument.
type ParameterKind ¶
type ParameterKind string
ParameterKind identifies the value and control type for a command parameter.
const ( ParameterString ParameterKind = "string" ParameterInteger ParameterKind = "integer" ParameterIntegerList ParameterKind = "integer_list" ParameterBoolean ParameterKind = "boolean" ParameterEnum ParameterKind = "enum" ParameterCharacter ParameterKind = "character" ParameterLocation ParameterKind = "location" ParameterMonster ParameterKind = "monster" ParameterEquipment ParameterKind = "equipment" )
Supported parameter kinds for generated workbench controls.
type ReduxCombatModificationsData ¶
type ReduxCombatModificationsData struct {
AllowRepeatedMonsterDivision bool `json:"allowRepeatedMonsterDivision"`
}
ReduxCombatModificationsData reports Redux combat behavior choices.
type ReduxDungeonModificationsData ¶
type ReduxDungeonModificationsData struct {
PersistHiddenDungeonDiscoveries bool `json:"persistHiddenDungeonDiscoveries"`
ShowSubduedUnlitDungeons bool `json:"showSubduedUnlitDungeons"`
}
ReduxDungeonModificationsData reports Redux dungeon persistence and presentation choices.
type ReduxModificationsStatusData ¶
type ReduxModificationsStatusData struct {
Combat ReduxCombatModificationsData `json:"combat"`
Dungeons ReduxDungeonModificationsData `json:"dungeons"`
Presentation ReduxPresentationModificationsData `json:"presentation"`
}
ReduxModificationsStatusData is the typed persisted Redux-rules payload.
type ReduxNavigationModificationsData ¶
type ReduxNavigationModificationsData struct {
}
ReduxNavigationModificationsData reports optional sextant navigation policy.
type ReduxPresentationModificationsData ¶
type ReduxPresentationModificationsData struct {
SmoothSurfaceMovement bool `json:"smoothSurfaceMovement"`
}
ReduxPresentationModificationsData reports optional camera presentation choices.
type Request ¶
type Request struct {
SessionID string `json:"sessionId"`
ID string `json:"id"`
CommandID string `json:"commandId"`
ExpectedSceneGeneration uint64 `json:"expectedSceneGeneration,omitempty"`
ExpectedOptionsRevision uint64 `json:"expectedOptionsRevision,omitempty"`
Arguments map[string]json.RawMessage `json:"arguments,omitempty"`
}
Request is an immutable command invocation submitted to the update thread.
type Result ¶
type Result struct {
SessionID string `json:"sessionId"`
RequestID string `json:"requestId"`
CommandID string `json:"commandId"`
SceneGeneration uint64 `json:"sceneGeneration"`
Invocation *CommandInvocation `json:"invocation,omitempty"`
EffectiveExecutionMode ExecutionMode `json:"effectiveExecutionMode,omitempty"`
Success bool `json:"success"`
Summary string `json:"summary,omitempty"`
ErrorCode string `json:"errorCode,omitempty"`
ErrorMessage string `json:"errorMessage,omitempty"`
Changes []StateChange `json:"changes,omitempty"`
Data json.RawMessage `json:"data,omitempty"`
}
Result is the structured outcome of a command invocation.
func FailureResult ¶
FailureResult creates a failed command result.
func SuccessResult ¶
func SuccessResult(request Request, mode ExecutionMode, summary string, data json.RawMessage) Result
SuccessResult creates a successful command result.
type SaveSnapshotCaptureData ¶
type SaveSnapshotCaptureData struct {
Snapshot SaveSnapshotSummary `json:"snapshot"`
}
SaveSnapshotCaptureData identifies the immutable capture that was created.
type SaveSnapshotCompatibility ¶
type SaveSnapshotCompatibility struct {
Compatible bool `json:"compatible"`
Reason string `json:"reason,omitempty"`
}
SaveSnapshotCompatibility reports whether this process can hydrate a capture.
type SaveSnapshotDeleteData ¶
type SaveSnapshotDeleteData struct {
Reference string `json:"reference"`
Revision string `json:"revision"`
}
SaveSnapshotDeleteData identifies the exact revision removed from the repository.
type SaveSnapshotDetail ¶
type SaveSnapshotDetail struct {
Summary SaveSnapshotSummary `json:"summary"`
SnapshotVersion int `json:"snapshotVersion"`
Location int `json:"location"`
LocationName string `json:"locationName"`
X int `json:"x"`
Y int `json:"y"`
Floor int `json:"floor"`
Year int `json:"year"`
Month int `json:"month"`
Day int `json:"day"`
Hour int `json:"hour"`
Minute int `json:"minute"`
PartyMembers int `json:"partyMembers"`
MoonPhase string `json:"moonPhase"`
MoonPhaseIndex int `json:"moonPhaseIndex"`
}
SaveSnapshotDetail adds a compact review projection without exposing the full snapshot.
type SaveSnapshotEligibility ¶
type SaveSnapshotEligibility struct {
CanCapture bool `json:"canCapture"`
CanLoad bool `json:"canLoad"`
CanDelete bool `json:"canDelete"`
Reason string `json:"reason,omitempty"`
}
SaveSnapshotEligibility reports operations allowed for a detached repository record.
type SaveSnapshotGetData ¶
type SaveSnapshotGetData struct {
Snapshot SaveSnapshotDetail `json:"snapshot"`
}
SaveSnapshotGetData is the typed detail-command payload.
type SaveSnapshotListData ¶
type SaveSnapshotListData struct {
Snapshots []SaveSnapshotSummary `json:"snapshots"`
CaptureEligibility SaveSnapshotEligibility `json:"captureEligibility"`
}
SaveSnapshotListData is the typed list-command payload.
type SaveSnapshotLoadData ¶
type SaveSnapshotLoadData struct {
Reference string `json:"reference"`
Revision string `json:"revision"`
RollbackReference string `json:"rollbackReference"`
RollbackRevision string `json:"rollbackRevision"`
SceneGeneration uint64 `json:"sceneGeneration"`
}
SaveSnapshotLoadData identifies the loaded capture, rollback, and replacement generation.
type SaveSnapshotSummary ¶
type SaveSnapshotSummary struct {
Reference string `json:"reference"`
Source string `json:"source"`
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
CreatedAt string `json:"createdAt"`
GameVersion string `json:"gameVersion"`
Revision string `json:"revision"`
Compatibility SaveSnapshotCompatibility `json:"compatibility"`
Eligibility SaveSnapshotEligibility `json:"eligibility"`
ReferencedBy []string `json:"referencedBy,omitempty"`
}
SaveSnapshotSummary is detached repository metadata and never contains gameplay state.
type SpellEffectsData ¶
type SpellEffectsData struct {
MagicLight MagicLightEffectData `json:"magicLight"`
ActiveSpell ActiveSpellEffectData `json:"activeSpell"`
}
SpellEffectsData reports both independent persistent magical effects.
type SpellInventoryEntryData ¶
type SpellInventoryEntryData struct {
ID int `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
Circle int `json:"circle"`
Targeting string `json:"targeting"`
Context string `json:"context"`
Quantity uint16 `json:"quantity"`
Maximum uint16 `json:"maximum"`
}
SpellInventoryEntryData describes one prepared spell quantity.
type SpellInventoryStatusData ¶
type SpellInventoryStatusData struct {
SnapshotFingerprint string `json:"snapshotFingerprint"`
Spells []SpellInventoryEntryData `json:"spells"`
MagicLight MagicLightEffectData `json:"magicLight"`
ActiveSpell ActiveSpellEffectData `json:"activeSpell"`
}
SpellInventoryStatusData is the typed prepared-spell instrument payload.
type StateChange ¶
type StateChange struct {
Path string `json:"path"`
Before json.RawMessage `json:"before,omitempty"`
After json.RawMessage `json:"after,omitempty"`
}
StateChange describes one semantic before/after value produced by a command.
type TileAnnotation ¶
type TileAnnotation struct {
Description string `json:"Description"`
IsPartOfAnimation bool `json:"IsPartOfAnimation"`
TotalAnimationFrames int `json:"TotalAnimationFrames"`
IsEnemy bool `json:"IsEnemy"`
IsNPC bool `json:"IsNPC"`
IsBuilding bool `json:"IsBuilding"`
}
TileAnnotation describes atlas browsing labels, not gameplay rules. Animation labels describe authored sprite groups, not generated pixel-effect frame counts.
func TileAtlasAnnotation ¶
func TileAtlasAnnotation(index indexes.SpriteIndex) TileAnnotation
TileAtlasAnnotation returns a detached annotation. Missing entries have no annotation.
type WorldPositionBoundsData ¶
type WorldPositionBoundsData struct {
MinimumX int `json:"minimumX"`
MaximumX int `json:"maximumX"`
MinimumY int `json:"minimumY"`
MaximumY int `json:"maximumY"`
}
WorldPositionBoundsData describes one destination's valid coordinate space.
type WorldPositionDestinationData ¶
type WorldPositionDestinationData struct {
LocationID int `json:"locationId"`
LocationName string `json:"locationName"`
MapType string `json:"mapType"`
Floors []int `json:"floors"`
Bounds WorldPositionBoundsData `json:"bounds"`
DefaultSetup WorldPositionSetupData `json:"defaultSetup"`
WorldEntrance *WorldPositionSetupData `json:"worldEntrance,omitempty"`
PlacementTargets []WorldPositionPlacementTargetData `json:"placementTargets,omitempty"`
}
WorldPositionDestinationData describes one complete World Navigator destination.
type WorldPositionPlacementTargetData ¶
type WorldPositionPlacementTargetData struct {
Placement string `json:"placement"`
PlacementLabel string `json:"placementLabel"`
Route string `json:"route"`
RouteLabel string `json:"routeLabel"`
Available bool `json:"available"`
LocationID int `json:"locationId"`
Setup *WorldPositionSetupData `json:"setup,omitempty"`
FacingLabel string `json:"facingLabel,omitempty"`
LastDirectionLabel string `json:"lastDirectionLabel,omitempty"`
}
WorldPositionPlacementTargetData describes one server-resolved dungeon route target.
type WorldPositionSetupData ¶
WorldPositionSetupData is the destination's useful initial Workbench draft.
type WorldPositionStatusData ¶
type WorldPositionStatusData struct {
SourceFingerprint string `json:"sourceFingerprint"`
LocationID int `json:"locationId"`
LocationName string `json:"locationName"`
MapType string `json:"mapType"`
Floor int `json:"floor"`
X int `json:"x"`
Y int `json:"y"`
Bounds WorldPositionBoundsData `json:"bounds"`
Destinations []WorldPositionDestinationData `json:"destinations"`
}
WorldPositionStatusData is the typed World Navigator status payload.
Source Files
¶
- active_combat_catalog.go
- bridge.go
- catalog.go
- codex_catalog.go
- contracts.go
- effect_annotations.go
- fifth_batch_catalog.go
- fourth_batch_catalog.go
- initial_catalog.go
- inventory_locker_catalog.go
- logging_catalog.go
- merchant_tester_catalog.go
- operations_catalog.go
- party_equipment_catalog.go
- presentation_catalog.go
- redux_modifications_catalog.go
- scenario_catalog.go
- scripted_scene_catalog.go
- seventh_batch_catalog.go
- sixth_batch_catalog.go
- snapshot_catalog.go
- spell_catalog.go
- third_batch_catalog.go
- tile_annotations.go
- world_dungeon_catalog.go
Directories
¶
| Path | Synopsis |
|---|---|
|
Package scenarios defines and persists scripted debug scenarios without depending on game or presentation state.
|
Package scenarios defines and persists scripted debug scenarios without depending on game or presentation state. |
|
Package webui provides the embedded production assets for the debug workbench.
|
Package webui provides the embedded production assets for the debug workbench. |
|
Package workbench serves the local browser debug workbench.
|
Package workbench serves the local browser debug workbench. |