aboutsummaryrefslogtreecommitdiff
path: root/engine/entities/flow-entry.ts
blob: ba2b11af5f62e1884ce956e6a7c0867c33b23680 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import type { GameTime } from '@hollowdark/time/gameTime'
import type { FlowEntryId, PersonId, PlaceId, WorldEventId } from '@hollowdark/engine/entities/base'

/**
 * A compact snapshot of the context that produced a flow passage. Kept
 * alongside the entry so passages can be regenerated deterministically
 * if content or voice-modulation changes — no reliance on re-simulating
 * the full world to reproduce a specific week's prose.
 */
export interface FlowContextSnapshot {
  readonly season: string
  readonly placeId: PlaceId
  readonly activeWorldEventIds: readonly WorldEventId[]
  readonly moodBucket: string
  readonly dominantTraitMarkers: readonly string[]
}

export interface FlowEntry {
  readonly id: FlowEntryId
  readonly personId: PersonId
  readonly time: GameTime
  readonly passageText: string
  readonly passageRef: string
  readonly contextSnapshot: FlowContextSnapshot
}