aboutsummaryrefslogtreecommitdiff
path: root/engine/entities/flow-entry.ts
blob: bd781d5356c312b38f9397cfb318bad9b6c8204a (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 './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
}