debugging

package
v0.1.0-preview.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 12, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package debugging defines transport-neutral contracts for the external debug workbench.

Index

Constants

View Source
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"
)
View Source
const (
	DefaultRequestCapacity = 64
	DefaultResultCapacity  = 128
)

Default bridge capacities bound work performed and retained between frames.

View Source
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.

View Source
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"
)
View Source
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"
)
View Source
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"
)
View Source
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"
)
View Source
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"
)
View Source
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"
)
View Source
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"
)
View Source
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"
)
View Source
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 changes optional sextant navigation policy.
	CommandReduxNavigationFlexibleSextantUseSet = "redux.navigation.flexible_sextant_use.set"
)
View Source
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"
)
View Source
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"
)
View Source
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"
)
View Source
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"
)
View Source
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"
)
View Source
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"
)
View Source
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"
)
View Source
const (

	// CommandCodexQuestStateSetAll atomically normalizes every reviewed shrine quest.
	CommandCodexQuestStateSetAll = "codex.quest-state.set-all"
)
View Source
const (
	// CommandPartyEquipmentLoadoutUpdate atomically changes one or more slots for one or all active characters.
	CommandPartyEquipmentLoadoutUpdate = "party.equipment.loadout.update"
)
View Source
const OptionProviderActivePartyCharacters = "party.active-characters"

OptionProviderActivePartyCharacters resolves current active-party character choices.

View Source
const OptionProviderActivePartyPositions = "party.active-positions"

OptionProviderActivePartyPositions resolves current occupied party positions.

View Source
const OptionProviderEquipmentLoadoutTargets = "party.equipment-loadout-targets"

OptionProviderEquipmentLoadoutTargets resolves all-party and current character loadout targets.

View Source
const ScenarioValueResolverActivePartyPosition = "active-party-position"

ScenarioValueResolverActivePartyPosition replaces a planned party position with a live command value.

Variables

View Source
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")
)
View Source
var ErrRequestQueueFull = errors.New("debug request queue is full")

ErrRequestQueueFull indicates that the update thread has not caught up with submissions.

Functions

func DurationEffectDescription

func DurationEffectDescription(code string) string

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 NewBridge

func NewBridge(requestCapacity, resultCapacity int) *Bridge

NewBridge constructs a bounded bridge. Capacities must be positive.

func NewDefaultBridge

func NewDefaultBridge() *Bridge

NewDefaultBridge constructs a bridge with application defaults.

func (*Bridge) NextResult

func (b *Bridge) NextResult() (Result, bool)

NextResult returns the next result without blocking.

func (*Bridge) Process

func (b *Bridge) Process(executor Executor, maxRequests int) int

Process executes at most maxRequests queued requests without blocking. It stops before execution when no result capacity is available.

func (*Bridge) Submit

func (b *Bridge) Submit(request Request) error

Submit queues a request without blocking the caller.

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

func (c *Catalog) NormalizeRequest(request Request) (Request, error)

NormalizeRequest validates a request, deep-copies it, and applies parameter defaults.

func (*Catalog) ValidateRequest

func (c *Catalog) ValidateRequest(request Request) error

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"`
	SetupUnavailableReason     string                    `json:"setupUnavailableReason,omitempty"`
	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 Executor

type Executor interface {
	ExecuteDebugCommand(request Request) Result
}

Executor executes a validated command on the Ebitengine update thread.

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"`
	UnavailableReason        string        `json:"unavailableReason,omitempty"`
	PreviewAvailable         bool          `json:"previewAvailable"`
	PreviewUnavailableReason string        `json:"previewUnavailableReason,omitempty"`
	LiveAvailable            bool          `json:"liveAvailable"`
	LiveUnavailableReason    string        `json:"liveUnavailableReason,omitempty"`
	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

type OptionSet struct {
	Provider          string   `json:"provider"`
	Choices           []Choice `json:"choices"`
	UnavailableReason string   `json:"unavailableReason,omitempty"`
}

OptionSet contains detached choices resolved for one dynamic parameter provider.

func CloneOptionSets

func CloneOptionSets(optionSets []OptionSet) []OptionSet

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"`
	Navigation   ReduxNavigationModificationsData   `json:"navigation"`
}

ReduxModificationsStatusData is the typed persisted Redux-rules payload.

type ReduxNavigationModificationsData

type ReduxNavigationModificationsData struct {
	FlexibleSextantUse bool `json:"flexibleSextantUse"`
}

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

func FailureResult(request Request, code, message string) Result

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"`
	UnavailableReason  string                  `json:"unavailableReason,omitempty"`
	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

type WorldPositionSetupData struct {
	Floor int `json:"floor"`
	X     int `json:"x"`
	Y     int `json:"y"`
}

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.

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL