blob: 2d37ced2bf4174d5d00b173eaa85f016fc95bf01 (
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
/**
* A coarse wealth tier derived from the hidden economic state. Never
* displayed numerically; informs surface prose ("struggling", "comfortable",
* "old money").
*/
export type EconomicClass =
| 'destitute'
| 'struggling'
| 'working'
| 'lower_middle'
| 'middle'
| 'upper_middle'
| 'wealthy'
| 'very_wealthy'
| 'old_money'
| 'generationally_wealthy'
export type AccountKind = 'checking' | 'savings' | 'brokerage' | 'retirement'
export interface Account {
readonly id: string
readonly kind: AccountKind
readonly balance: number
}
export type AssetKind = 'home' | 'vehicle' | 'business' | 'collectible' | 'real_estate'
export interface Asset {
readonly id: string
readonly kind: AssetKind
readonly description: string
readonly estimatedValue: number
readonly encumbered: boolean
}
export type DebtKind = 'mortgage' | 'auto' | 'student' | 'credit_card' | 'personal' | 'medical'
export interface Debt {
readonly id: string
readonly kind: DebtKind
readonly balance: number
readonly monthlyPayment: number
readonly apr: number
}
/**
* Hidden economic state for a character. All numbers are in "marks" (the
* world's universal currency). Never surfaced to the player as digits —
* the simulation drives prose and qualitative affordability context.
*/
export interface EconomicState {
readonly cashOnHand: number
readonly accounts: readonly Account[]
readonly assets: readonly Asset[]
readonly debts: readonly Debt[]
readonly monthlyIncome: number
readonly monthlyExpenses: number
readonly netWorth: number
readonly classification: EconomicClass
}
|