Event Catalog

Generated by go run ./internal/tools/eventdocgen.

Core Events

Summary

Event Namespace Name Constant Payload Emitters
action.outcome_applied action outcome_applied EventTypeOutcomeApplied OutcomeApplyPayload 1
action.outcome_rejected action outcome_rejected EventTypeOutcomeRejected OutcomeRejectPayload 1
action.roll_resolved action roll_resolved EventTypeRollResolved RollResolvePayload 1
campaign.ai_auth_rotated campaign ai_auth_rotated EventTypeAIAuthRotated AIAuthRotatePayload 1
campaign.ai_bound campaign ai_bound EventTypeAIBound AIBindPayload 1
campaign.ai_unbound campaign ai_unbound EventTypeAIUnbound AIUnbindPayload 1
campaign.created campaign created EventTypeCreated CreatePayload 1
campaign.forked campaign forked EventTypeForked ForkPayload 1
campaign.updated campaign updated EventTypeUpdated UpdatePayload 3
character.created character created EventTypeCreated CreatePayload 1
character.deleted character deleted EventTypeDeleted DeletePayload 1
character.updated character updated EventTypeUpdated UpdatePayload 1
participant.bound participant bound EventTypeBound BindPayload 1
participant.joined participant joined EventTypeJoined JoinPayload 1
participant.left participant left EventTypeLeft LeavePayload 1
participant.seat_reassigned participant seat_reassigned EventTypeSeatReassigned SeatReassignPayload 1
participant.unbound participant unbound EventTypeUnbound UnbindPayload 1
participant.updated participant updated EventTypeUpdated UpdatePayload 1
scene.character_added scene character_added EventTypeCharacterAdded CharacterAddedPayload 4
scene.character_removed scene character_removed EventTypeCharacterRemoved CharacterRemovedPayload 2
scene.created scene created EventTypeCreated CreatePayload 2
scene.ended scene ended EventTypeEnded EndPayload 2
scene.gate_abandoned scene gate_abandoned EventTypeGateAbandoned GateAbandonedPayload 1
scene.gate_opened scene gate_opened EventTypeGateOpened GateOpenedPayload 1
scene.gate_resolved scene gate_resolved EventTypeGateResolved GateResolvedPayload 1
scene.gm_interaction_committed scene gm_interaction_committed EventTypeGMInteractionCommitted GMInteractionCommittedPayload 1
scene.player_phase_accepted scene player_phase_accepted EventTypePlayerPhaseAccepted PlayerPhaseAcceptedPayload 1
scene.player_phase_ended scene player_phase_ended EventTypePlayerPhaseEnded PlayerPhaseEndedPayload 2
scene.player_phase_posted scene player_phase_posted EventTypePlayerPhasePosted PlayerPhasePostedPayload 1
scene.player_phase_review_started scene player_phase_review_started EventTypePlayerPhaseReviewStarted PlayerPhaseReviewStartedPayload 1
scene.player_phase_revisions_requested scene player_phase_revisions_requested EventTypePlayerPhaseRevisionsRequested PlayerPhaseRevisionsRequestedPayload 1
scene.player_phase_started scene player_phase_started EventTypePlayerPhaseStarted PlayerPhaseStartedPayload 1
scene.player_phase_unyielded scene player_phase_unyielded EventTypePlayerPhaseUnyielded PlayerPhaseUnyieldedPayload 1
scene.player_phase_yielded scene player_phase_yielded EventTypePlayerPhaseYielded PlayerPhaseYieldedPayload 1
scene.spotlight_cleared scene spotlight_cleared EventTypeSpotlightCleared SpotlightClearedPayload 1
scene.spotlight_set scene spotlight_set EventTypeSpotlightSet SpotlightSetPayload 1
scene.updated scene updated EventTypeUpdated UpdatePayload 1
session.ai_turn_cleared session ai_turn_cleared EventTypeAITurnCleared AITurnClearedPayload 1
session.ai_turn_failed session ai_turn_failed EventTypeAITurnFailed AITurnFailedPayload 1
session.ai_turn_queued session ai_turn_queued EventTypeAITurnQueued AITurnQueuedPayload 1
session.ai_turn_running session ai_turn_running EventTypeAITurnRunning AITurnRunningPayload 1
session.character_controller_set session character_controller_set EventTypeCharacterControllerSet CharacterControllerSetPayload 1
session.ended session ended EventTypeEnded EndPayload 1
session.gate_abandoned session gate_abandoned EventTypeGateAbandoned GateAbandonedPayload 1
session.gate_opened session gate_opened EventTypeGateOpened GateOpenedPayload 1
session.gate_resolved session gate_resolved EventTypeGateResolved GateResolvedPayload 1
session.gate_response_recorded session gate_response_recorded EventTypeGateResponseRecorded GateResponseRecordedPayload 1
session.gm_authority_set session gm_authority_set EventTypeGMAuthoritySet GMAuthoritySetPayload 1
session.ooc_closed session ooc_closed EventTypeOOCClosed OOCClosedPayload 1
session.ooc_opened session ooc_opened EventTypeOOCOpened OOCOpenedPayload 1
session.ooc_posted session ooc_posted EventTypeOOCPosted OOCPostedPayload 1
session.ooc_ready_cleared session ooc_ready_cleared EventTypeOOCReadyCleared OOCReadyClearedPayload 1
session.ooc_ready_marked session ooc_ready_marked EventTypeOOCReadyMarked OOCReadyMarkedPayload 1
session.ooc_resolved session ooc_resolved EventTypeOOCResolved OOCResolvedPayload 1
session.recap_recorded session recap_recorded EventTypeRecapRecorded RecapRecordedPayload 1
session.scene_activated session scene_activated EventTypeSceneActivated SceneActivatedPayload 1
session.spotlight_cleared session spotlight_cleared EventTypeSpotlightCleared SpotlightClearedPayload 1
session.spotlight_set session spotlight_set EventTypeSpotlightSet SpotlightSetPayload 1
session.started session started EventTypeStarted StartPayload 1
story.note_added story note_added EventTypeNoteAdded NoteAddPayload 1

Namespace action

action.outcome_applied

  • Constant: EventTypeOutcomeApplied
  • Defined at: internal/services/game/domain/action/decider.go:17
  • Payload: OutcomeApplyPayload (internal/services/game/domain/action/payload.go:37)
  • Fields:
Field JSON Type Required
RequestID request_id string yes
RollSeq roll_seq uint64 yes
Targets targets []string yes
RequiresComplication requires_complication bool yes
AppliedChanges applied_changes []OutcomeAppliedChange no
PreEffects pre_effects []OutcomeAppliedEffect no
PostEffects post_effects []OutcomeAppliedEffect no
  • Emitters:
    • internal/services/game/domain/action/decider_outcome.go:61

action.outcome_rejected

  • Constant: EventTypeOutcomeRejected
  • Defined at: internal/services/game/domain/action/decider.go:18
  • Payload: OutcomeRejectPayload (internal/services/game/domain/action/payload.go:48)
  • Fields:
Field JSON Type Required
RequestID request_id string yes
RollSeq roll_seq uint64 yes
ReasonCode reason_code string yes
Message message string no
  • Emitters:
    • internal/services/game/domain/action/decider_outcome.go:90

action.roll_resolved

  • Constant: EventTypeRollResolved
  • Defined at: internal/services/game/domain/action/decider.go:16
  • Payload: RollResolvePayload (internal/services/game/domain/action/payload.go:10)
  • Fields:
Field JSON Type Required
RequestID request_id string yes
RollSeq roll_seq uint64 yes
Results results map[string]any yes
Outcome outcome string no
SystemData system_data map[string]any no
  • Emitters:
    • internal/services/game/domain/action/decider_roll.go:33

Namespace campaign

campaign.ai_auth_rotated

  • Constant: EventTypeAIAuthRotated
  • Defined at: internal/services/game/domain/campaign/decider.go:26
  • Payload: AIAuthRotatePayload (internal/services/game/domain/campaign/payload.go:54)
  • Fields:
Field JSON Type Required
EpochAfter epoch_after uint64 yes
Reason reason string yes
  • Emitters:
    • internal/services/game/domain/campaign/decider_ai.go:70

campaign.ai_bound

  • Constant: EventTypeAIBound
  • Defined at: internal/services/game/domain/campaign/decider.go:24
  • Payload: AIBindPayload (internal/services/game/domain/campaign/payload.go:46)
  • Fields:
Field JSON Type Required
AIAgentID ai_agent_id string yes
  • Emitters:
    • internal/services/game/domain/campaign/decider_ai.go:35

campaign.ai_unbound

  • Constant: EventTypeAIUnbound
  • Defined at: internal/services/game/domain/campaign/decider.go:25
  • Payload: AIUnbindPayload (internal/services/game/domain/campaign/payload.go:51)
  • Emitters:
    • internal/services/game/domain/campaign/decider_ai.go:47

campaign.created

  • Constant: EventTypeCreated
  • Defined at: internal/services/game/domain/campaign/decider.go:22
  • Payload: CreatePayload (internal/services/game/domain/campaign/payload.go:6)
  • Fields:
Field JSON Type Required
Name name string yes
Locale locale string yes
GameSystem game_system string yes
GmMode gm_mode string yes
Intent intent string no
AccessPolicy access_policy string no
ThemePrompt theme_prompt string no
CoverAssetID cover_asset_id string no
CoverSetID cover_set_id string no
  • Emitters:
    • internal/services/game/domain/campaign/decider_create.go:31

campaign.forked

  • Constant: EventTypeForked
  • Defined at: internal/services/game/domain/campaign/decider.go:27
  • Payload: ForkPayload (internal/services/game/domain/campaign/payload.go:60)
  • Fields:
Field JSON Type Required
ParentCampaignID parent_campaign_id ids.CampaignID yes
ForkEventSeq fork_event_seq uint64 yes
OriginCampaignID origin_campaign_id ids.CampaignID yes
CopyParticipants copy_participants bool yes
  • Emitters:
    • internal/services/game/domain/campaign/decider_fork.go:29

campaign.updated

  • Constant: EventTypeUpdated
  • Defined at: internal/services/game/domain/campaign/decider.go:23
  • Payload: UpdatePayload (internal/services/game/domain/campaign/payload.go:41)
  • Fields:
Field JSON Type Required
Fields fields map[string]string yes
  • Emitters:
    • internal/services/game/domain/campaign/decider_lifecycle.go:37
    • internal/services/game/domain/campaign/decider_update.go:101
    • internal/services/game/domain/readiness/session_start_workflow.go:60

Namespace character

character.created

  • Constant: EventTypeCreated
  • Defined at: internal/services/game/domain/character/decider.go:15
  • Payload: CreatePayload (internal/services/game/domain/character/payload.go:6)
  • Fields:
Field JSON Type Required
CharacterID character_id ids.CharacterID yes
OwnerParticipantID owner_participant_id ids.ParticipantID no
Name name string yes
Kind kind string yes
Notes notes string no
AvatarSetID avatar_set_id string no
AvatarAssetID avatar_asset_id string no
Pronouns pronouns string no
Aliases aliases []string no
  • Emitters:
    • internal/services/game/domain/character/decider_create.go:78

character.deleted

  • Constant: EventTypeDeleted
  • Defined at: internal/services/game/domain/character/decider.go:17
  • Payload: DeletePayload (internal/services/game/domain/character/payload.go:25)
  • Fields:
Field JSON Type Required
CharacterID character_id ids.CharacterID yes
Reason reason string no
  • Emitters:
    • internal/services/game/domain/character/decider_lifecycle.go:37

character.updated

  • Constant: EventTypeUpdated
  • Defined at: internal/services/game/domain/character/decider.go:16
  • Payload: UpdatePayload (internal/services/game/domain/character/payload.go:19)
  • Fields:
Field JSON Type Required
CharacterID character_id ids.CharacterID yes
Fields fields map[string]string yes
  • Emitters:
    • internal/services/game/domain/character/decider_update.go:117

Namespace participant

participant.bound

  • Constant: EventTypeBound
  • Defined at: internal/services/game/domain/participant/decider.go:21
  • Payload: BindPayload (internal/services/game/domain/participant/payload.go:31)
  • Fields:
Field JSON Type Required
ParticipantID participant_id ids.ParticipantID yes
UserID user_id ids.UserID yes
  • Emitters:
    • internal/services/game/domain/participant/decider_binding.go:53

participant.joined

  • Constant: EventTypeJoined
  • Defined at: internal/services/game/domain/participant/decider.go:18
  • Payload: JoinPayload (internal/services/game/domain/participant/payload.go:6)
  • Fields:
Field JSON Type Required
ParticipantID participant_id ids.ParticipantID yes
UserID user_id ids.UserID yes
Name name string yes
Role role string yes
Controller controller string yes
CampaignAccess campaign_access string yes
AvatarSetID avatar_set_id string no
AvatarAssetID avatar_asset_id string no
Pronouns pronouns string no
  • Emitters:
    • internal/services/game/domain/participant/decider_join.go:96

participant.left

  • Constant: EventTypeLeft
  • Defined at: internal/services/game/domain/participant/decider.go:20
  • Payload: LeavePayload (internal/services/game/domain/participant/payload.go:25)
  • Fields:
Field JSON Type Required
ParticipantID participant_id ids.ParticipantID yes
Reason reason string no
  • Emitters:
    • internal/services/game/domain/participant/decider_lifecycle.go:35

participant.seat_reassigned

  • Constant: EventTypeSeatReassigned
  • Defined at: internal/services/game/domain/participant/decider.go:23
  • Payload: SeatReassignPayload (internal/services/game/domain/participant/payload.go:44)
  • Fields:
Field JSON Type Required
ParticipantID participant_id ids.ParticipantID yes
PriorUserID prior_user_id ids.UserID no
UserID user_id ids.UserID yes
Reason reason string no
  • Emitters:
    • internal/services/game/domain/participant/decider_binding.go:143

participant.unbound

  • Constant: EventTypeUnbound
  • Defined at: internal/services/game/domain/participant/decider.go:22
  • Payload: UnbindPayload (internal/services/game/domain/participant/payload.go:37)
  • Fields:
Field JSON Type Required
ParticipantID participant_id ids.ParticipantID yes
UserID user_id ids.UserID no
Reason reason string no
  • Emitters:
    • internal/services/game/domain/participant/decider_binding.go:92

participant.updated

  • Constant: EventTypeUpdated
  • Defined at: internal/services/game/domain/participant/decider.go:19
  • Payload: UpdatePayload (internal/services/game/domain/participant/payload.go:19)
  • Fields:
Field JSON Type Required
ParticipantID participant_id ids.ParticipantID yes
Fields fields map[string]string yes
  • Emitters:
    • internal/services/game/domain/participant/decider_update.go:149

Namespace scene

scene.character_added

  • Constant: EventTypeCharacterAdded
  • Defined at: internal/services/game/domain/scene/decider.go:49
  • Payload: CharacterAddedPayload (internal/services/game/domain/scene/payload.go:32)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
CharacterID character_id ids.CharacterID yes
  • Emitters:
    • internal/services/game/domain/scene/decider_character.go:101
    • internal/services/game/domain/scene/decider_character.go:35
    • internal/services/game/domain/scene/decider_lifecycle.go:136
    • internal/services/game/domain/scene/decider_lifecycle.go:48

scene.character_removed

  • Constant: EventTypeCharacterRemoved
  • Defined at: internal/services/game/domain/scene/decider.go:50
  • Payload: CharacterRemovedPayload (internal/services/game/domain/scene/payload.go:38)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
CharacterID character_id ids.CharacterID yes
  • Emitters:
    • internal/services/game/domain/scene/decider_character.go:62
    • internal/services/game/domain/scene/decider_character.go:97

scene.created

  • Constant: EventTypeCreated
  • Defined at: internal/services/game/domain/scene/decider.go:46
  • Payload: CreatePayload (internal/services/game/domain/scene/payload.go:6)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
Name name string yes
Description description string no
CharacterIDs character_ids []ids.CharacterID yes
  • Emitters:
    • internal/services/game/domain/scene/decider_lifecycle.go:131
    • internal/services/game/domain/scene/decider_lifecycle.go:43

scene.ended

  • Constant: EventTypeEnded
  • Defined at: internal/services/game/domain/scene/decider.go:48
  • Payload: EndPayload (internal/services/game/domain/scene/payload.go:26)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
Reason reason string no
  • Emitters:
    • internal/services/game/domain/scene/decider_lifecycle.go:141
    • internal/services/game/domain/scene/decider_lifecycle.go:92

scene.gate_abandoned

  • Constant: EventTypeGateAbandoned
  • Defined at: internal/services/game/domain/scene/decider.go:53
  • Payload: GateAbandonedPayload (internal/services/game/domain/scene/payload.go:76)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
GateID gate_id ids.GateID yes
Reason reason string no
  • Emitters:
    • internal/services/game/domain/scene/decider_gate.go:114

scene.gate_opened

  • Constant: EventTypeGateOpened
  • Defined at: internal/services/game/domain/scene/decider.go:51
  • Payload: GateOpenedPayload (internal/services/game/domain/scene/payload.go:59)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
GateID gate_id ids.GateID yes
GateType gate_type string yes
Reason reason string no
Metadata metadata map[string]any no
  • Emitters:
    • internal/services/game/domain/scene/decider_gate.go:45

scene.gate_resolved

  • Constant: EventTypeGateResolved
  • Defined at: internal/services/game/domain/scene/decider.go:52
  • Payload: GateResolvedPayload (internal/services/game/domain/scene/payload.go:68)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
GateID gate_id ids.GateID yes
Decision decision string no
Resolution resolution map[string]any no
  • Emitters:
    • internal/services/game/domain/scene/decider_gate.go:80

scene.gm_interaction_committed

  • Constant: EventTypeGMInteractionCommitted
  • Defined at: internal/services/game/domain/scene/decider.go:64
  • Payload: GMInteractionCommittedPayload (internal/services/game/domain/scene/payload.go:182)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
InteractionID interaction_id string yes
PhaseID phase_id string no
ParticipantID participant_id ids.ParticipantID yes
Title title string no
CharacterIDs character_ids []ids.CharacterID no
Illustration illustration *GMInteractionIllustration no
Beats beats []GMInteractionBeat no
  • Emitters:
    • internal/services/game/domain/scene/decider_gm_output.go:55

scene.player_phase_accepted

  • Constant: EventTypePlayerPhaseAccepted
  • Defined at: internal/services/game/domain/scene/decider.go:62
  • Payload: PlayerPhaseAcceptedPayload (internal/services/game/domain/scene/payload.go:147)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
PhaseID phase_id string yes
  • Emitters:
    • internal/services/game/domain/scene/decider_player_phase_review.go:30

scene.player_phase_ended

  • Constant: EventTypePlayerPhaseEnded
  • Defined at: internal/services/game/domain/scene/decider.go:63
  • Payload: PlayerPhaseEndedPayload (internal/services/game/domain/scene/payload.go:153)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
PhaseID phase_id string yes
Reason reason string no
  • Emitters:
    • internal/services/game/domain/scene/decider_player_phase.go:235
    • internal/services/game/domain/scene/decider_player_phase_review.go:38

scene.player_phase_posted

  • Constant: EventTypePlayerPhasePosted
  • Defined at: internal/services/game/domain/scene/decider.go:57
  • Payload: PlayerPhasePostedPayload (internal/services/game/domain/scene/payload.go:104)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
PhaseID phase_id string yes
ParticipantID participant_id ids.ParticipantID yes
CharacterIDs character_ids []ids.CharacterID no
SummaryText summary_text string no
  • Emitters:
    • internal/services/game/domain/scene/decider_player_phase.go:133

scene.player_phase_review_started

  • Constant: EventTypePlayerPhaseReviewStarted
  • Defined at: internal/services/game/domain/scene/decider.go:59
  • Payload: PlayerPhaseReviewStartedPayload (internal/services/game/domain/scene/payload.go:120)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
PhaseID phase_id string yes
  • Emitters:
    • internal/services/game/domain/scene/decider_player_phase.go:180

scene.player_phase_revisions_requested

  • Constant: EventTypePlayerPhaseRevisionsRequested
  • Defined at: internal/services/game/domain/scene/decider.go:61
  • Payload: PlayerPhaseRevisionsRequestedPayload (internal/services/game/domain/scene/payload.go:140)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
PhaseID phase_id string yes
Revisions revisions []PlayerPhaseRevisionRequest no
  • Emitters:
    • internal/services/game/domain/scene/decider_player_phase_review.go:113

scene.player_phase_started

  • Constant: EventTypePlayerPhaseStarted
  • Defined at: internal/services/game/domain/scene/decider.go:56
  • Payload: PlayerPhaseStartedPayload (internal/services/game/domain/scene/payload.go:96)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
PhaseID phase_id string yes
ActingCharacterIDs acting_character_ids []ids.CharacterID no
ActingParticipantIDs acting_participant_ids []ids.ParticipantID no
  • Emitters:
    • internal/services/game/domain/scene/decider_player_phase.go:72

scene.player_phase_unyielded

  • Constant: EventTypePlayerPhaseUnyielded
  • Defined at: internal/services/game/domain/scene/decider.go:60
  • Payload: PlayerPhaseUnyieldedPayload (internal/services/game/domain/scene/payload.go:126)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
PhaseID phase_id string yes
ParticipantID participant_id ids.ParticipantID yes
  • Emitters:
    • internal/services/game/domain/scene/decider_player_phase.go:217

scene.player_phase_yielded

  • Constant: EventTypePlayerPhaseYielded
  • Defined at: internal/services/game/domain/scene/decider.go:58
  • Payload: PlayerPhaseYieldedPayload (internal/services/game/domain/scene/payload.go:113)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
PhaseID phase_id string yes
ParticipantID participant_id ids.ParticipantID yes
  • Emitters:
    • internal/services/game/domain/scene/decider_player_phase.go:170

scene.spotlight_cleared

  • Constant: EventTypeSpotlightCleared
  • Defined at: internal/services/game/domain/scene/decider.go:55
  • Payload: SpotlightClearedPayload (internal/services/game/domain/scene/payload.go:90)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
Reason reason string no
  • Emitters:
    • internal/services/game/domain/scene/decider_spotlight.go:64

scene.spotlight_set

  • Constant: EventTypeSpotlightSet
  • Defined at: internal/services/game/domain/scene/decider.go:54
  • Payload: SpotlightSetPayload (internal/services/game/domain/scene/payload.go:83)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
SpotlightType spotlight_type SpotlightType yes
CharacterID character_id ids.CharacterID no
  • Emitters:
    • internal/services/game/domain/scene/decider_spotlight.go:41

scene.updated

  • Constant: EventTypeUpdated
  • Defined at: internal/services/game/domain/scene/decider.go:47
  • Payload: UpdatePayload (internal/services/game/domain/scene/payload.go:18)
  • Fields:
Field JSON Type Required
SceneID scene_id ids.SceneID yes
Name name string no
Description description string no
Fields fields map[string]string no
  • Emitters:
    • internal/services/game/domain/scene/decider_lifecycle.go:73

Namespace session

session.ai_turn_cleared

  • Constant: EventTypeAITurnCleared
  • Defined at: internal/services/game/domain/session/decider.go:55
  • Payload: AITurnClearedPayload (internal/services/game/domain/session/payload.go:128)
  • Fields:
Field JSON Type Required
SessionID session_id ids.SessionID yes
TurnToken turn_token string no
Reason reason string no
  • Emitters:
    • internal/services/game/domain/session/decider_ai_turn.go:135

session.ai_turn_failed

  • Constant: EventTypeAITurnFailed
  • Defined at: internal/services/game/domain/session/decider.go:54
  • Payload: AITurnFailedPayload (internal/services/game/domain/session/payload.go:121)
  • Fields:
Field JSON Type Required
SessionID session_id ids.SessionID yes
TurnToken turn_token string yes
LastError last_error string no
  • Emitters:
    • internal/services/game/domain/session/decider_ai_turn.go:107

session.ai_turn_queued

  • Constant: EventTypeAITurnQueued
  • Defined at: internal/services/game/domain/session/decider.go:52
  • Payload: AITurnQueuedPayload (internal/services/game/domain/session/payload.go:105)
  • Fields:
Field JSON Type Required
SessionID session_id ids.SessionID yes
TurnToken turn_token string yes
OwnerParticipantID owner_participant_id ids.ParticipantID yes
SourceEventType source_event_type string no
SourceSceneID source_scene_id ids.SceneID no
SourcePhaseID source_phase_id string no
  • Emitters:
    • internal/services/game/domain/session/decider_ai_turn.go:40

session.ai_turn_running

  • Constant: EventTypeAITurnRunning
  • Defined at: internal/services/game/domain/session/decider.go:53
  • Payload: AITurnRunningPayload (internal/services/game/domain/session/payload.go:115)
  • Fields:
Field JSON Type Required
SessionID session_id ids.SessionID yes
TurnToken turn_token string yes
  • Emitters:
    • internal/services/game/domain/session/decider_ai_turn.go:73

session.character_controller_set

  • Constant: EventTypeCharacterControllerSet
  • Defined at: internal/services/game/domain/session/decider.go:45
  • Payload: CharacterControllerSetPayload (internal/services/game/domain/session/payload.go:55)
  • Fields:
Field JSON Type Required
SessionID session_id ids.SessionID yes
CharacterID character_id ids.CharacterID yes
ParticipantID participant_id ids.ParticipantID yes
  • Emitters:
    • internal/services/game/domain/session/decider_session_authority.go:104

session.ended

  • Constant: EventTypeEnded
  • Defined at: internal/services/game/domain/session/decider.go:35
  • Payload: EndPayload (internal/services/game/domain/session/payload.go:20)
  • Fields:
Field JSON Type Required
SessionID session_id ids.SessionID yes
  • Emitters:
    • internal/services/game/domain/session/decider_lifecycle.go:101

session.gate_abandoned

  • Constant: EventTypeGateAbandoned
  • Defined at: internal/services/game/domain/session/decider.go:40
  • Payload: GateAbandonedPayload (internal/services/game/domain/session/gate/payload.go:29)
  • Fields:
Field JSON Type Required
GateID gate_id ids.GateID yes
Reason reason string no
  • Emitters:
    • internal/services/game/domain/session/decider_gate.go:149

session.gate_opened

  • Constant: EventTypeGateOpened
  • Defined at: internal/services/game/domain/session/decider.go:37
  • Payload: GateOpenedPayload (internal/services/game/domain/session/gate/payload.go:6)
  • Fields:
Field JSON Type Required
GateID gate_id ids.GateID yes
GateType gate_type string yes
Reason reason string no
Metadata metadata map[string]any no
  • Emitters:
    • internal/services/game/domain/session/decider_gate.go:50

session.gate_resolved

  • Constant: EventTypeGateResolved
  • Defined at: internal/services/game/domain/session/decider.go:39
  • Payload: GateResolvedPayload (internal/services/game/domain/session/gate/payload.go:14)
  • Fields:
Field JSON Type Required
GateID gate_id ids.GateID yes
Decision decision string no
Resolution resolution map[string]any no
  • Emitters:
    • internal/services/game/domain/session/decider_gate.go:58

session.gate_response_recorded

  • Constant: EventTypeGateResponseRecorded
  • Defined at: internal/services/game/domain/session/decider.go:38
  • Payload: GateResponseRecordedPayload (internal/services/game/domain/session/gate/payload.go:21)
  • Fields:
Field JSON Type Required
GateID gate_id ids.GateID yes
ParticipantID participant_id ids.ParticipantID yes
Decision decision string no
Response response map[string]any no
  • Emitters:
    • internal/services/game/domain/session/decider_gate.go:93

session.gm_authority_set

  • Constant: EventTypeGMAuthoritySet
  • Defined at: internal/services/game/domain/session/decider.go:44
  • Payload: GMAuthoritySetPayload (internal/services/game/domain/session/payload.go:48)
  • Fields:
Field JSON Type Required
SessionID session_id ids.SessionID yes
ParticipantID participant_id ids.ParticipantID yes
  • Emitters:
    • internal/services/game/domain/session/decider_session_authority.go:67

session.ooc_closed

  • Constant: EventTypeOOCClosed
  • Defined at: internal/services/game/domain/session/decider.go:50
  • Payload: OOCClosedPayload (internal/services/game/domain/session/payload.go:92)
  • Fields:
Field JSON Type Required
SessionID session_id ids.SessionID yes
Reason reason string no
  • Emitters:
    • internal/services/game/domain/session/decider_ooc.go:145

session.ooc_opened

  • Constant: EventTypeOOCOpened
  • Defined at: internal/services/game/domain/session/decider.go:46
  • Payload: OOCOpenedPayload (internal/services/game/domain/session/payload.go:62)
  • Fields:
Field JSON Type Required
SessionID session_id ids.SessionID yes
RequestedByParticipantID requested_by_participant_id ids.ParticipantID no
Reason reason string no
InterruptedSceneID interrupted_scene_id ids.SceneID no
InterruptedPhaseID interrupted_phase_id string no
InterruptedPhaseStatus interrupted_phase_status string no
  • Emitters:
    • internal/services/game/domain/session/decider_ooc.go:32

session.ooc_posted

  • Constant: EventTypeOOCPosted
  • Defined at: internal/services/game/domain/session/decider.go:47
  • Payload: OOCPostedPayload (internal/services/game/domain/session/payload.go:72)
  • Fields:
Field JSON Type Required
SessionID session_id ids.SessionID yes
PostID post_id string yes
ParticipantID participant_id ids.ParticipantID yes
Body body string yes
  • Emitters:
    • internal/services/game/domain/session/decider_ooc.go:71

session.ooc_ready_cleared

  • Constant: EventTypeOOCReadyCleared
  • Defined at: internal/services/game/domain/session/decider.go:49
  • Payload: OOCReadyClearedPayload (internal/services/game/domain/session/payload.go:86)
  • Fields:
Field JSON Type Required
SessionID session_id ids.SessionID yes
ParticipantID participant_id ids.ParticipantID yes
  • Emitters:
    • internal/services/game/domain/session/decider_ooc.go:125

session.ooc_ready_marked

  • Constant: EventTypeOOCReadyMarked
  • Defined at: internal/services/game/domain/session/decider.go:48
  • Payload: OOCReadyMarkedPayload (internal/services/game/domain/session/payload.go:80)
  • Fields:
Field JSON Type Required
SessionID session_id ids.SessionID yes
ParticipantID participant_id ids.ParticipantID yes
  • Emitters:
    • internal/services/game/domain/session/decider_ooc.go:98

session.ooc_resolved

  • Constant: EventTypeOOCResolved
  • Defined at: internal/services/game/domain/session/decider.go:51
  • Payload: OOCResolvedPayload (internal/services/game/domain/session/payload.go:99)
  • Fields:
Field JSON Type Required
SessionID session_id ids.SessionID yes
Resolution resolution string no
  • Emitters:
    • internal/services/game/domain/session/decider_ooc.go:165

session.recap_recorded

  • Constant: EventTypeRecapRecorded
  • Defined at: internal/services/game/domain/session/decider.go:36
  • Payload: RecapRecordedPayload (internal/services/game/domain/session/payload.go:25)
  • Fields:
Field JSON Type Required
SessionID session_id ids.SessionID yes
Markdown markdown string yes
  • Emitters:
    • internal/services/game/domain/session/decider_recap.go:47

session.scene_activated

  • Constant: EventTypeSceneActivated
  • Defined at: internal/services/game/domain/session/decider.go:43
  • Payload: SceneActivatedPayload (internal/services/game/domain/session/payload.go:42)
  • Fields:
Field JSON Type Required
SessionID session_id ids.SessionID yes
ActiveSceneID active_scene_id ids.SceneID yes
  • Emitters:
    • internal/services/game/domain/session/decider_session_authority.go:38

session.spotlight_cleared

  • Constant: EventTypeSpotlightCleared
  • Defined at: internal/services/game/domain/session/decider.go:42
  • Payload: SpotlightClearedPayload (internal/services/game/domain/session/payload.go:37)
  • Fields:
Field JSON Type Required
Reason reason string no
  • Emitters:
    • internal/services/game/domain/session/decider_spotlight.go:44

session.spotlight_set

  • Constant: EventTypeSpotlightSet
  • Defined at: internal/services/game/domain/session/decider.go:41
  • Payload: SpotlightSetPayload (internal/services/game/domain/session/payload.go:31)
  • Fields:
Field JSON Type Required
SpotlightType spotlight_type string yes
CharacterID character_id ids.CharacterID no
  • Emitters:
    • internal/services/game/domain/session/decider_spotlight.go:36

session.started

  • Constant: EventTypeStarted
  • Defined at: internal/services/game/domain/session/decider.go:34
  • Payload: StartPayload (internal/services/game/domain/session/payload.go:13)
  • Fields:
Field JSON Type Required
SessionID session_id ids.SessionID yes
SessionName session_name string no
CharacterControllers character_controllers []CharacterControllerAssignment no
  • Emitters:
    • internal/services/game/domain/session/decider_lifecycle.go:74

Namespace story

story.note_added

  • Constant: EventTypeNoteAdded
  • Defined at: internal/services/game/domain/action/decider.go:19
  • Payload: NoteAddPayload (internal/services/game/domain/action/payload.go:56)
  • Fields:
Field JSON Type Required
Content content string yes
CharacterID character_id ids.CharacterID no
  • Emitters:
    • internal/services/game/domain/action/decider_note.go:28

Unmapped Payloads

  • CharacterTransferPayload (internal/services/game/domain/scene/payload.go:44)
  • CreateWithParticipantsPayload (internal/services/game/domain/campaign/payload.go:35)
  • TransitionPayload (internal/services/game/domain/scene/payload.go:51)