chore(cms): regenerate payload types for market state and voiceover
Ultraworked with [Sisyphus](https://github.com/code-yeongju/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
parent
b9a619807d
commit
dbe8a210fb
1 changed files with 283 additions and 0 deletions
|
|
@ -104,6 +104,9 @@ export interface Config {
|
||||||
loadouts: Loadout;
|
loadouts: Loadout;
|
||||||
'market-listings': MarketListing;
|
'market-listings': MarketListing;
|
||||||
'market-negotiations': MarketNegotiation;
|
'market-negotiations': MarketNegotiation;
|
||||||
|
'market-state': MarketState;
|
||||||
|
'voice-scripts': VoiceScript;
|
||||||
|
'voice-submissions': VoiceSubmission;
|
||||||
tickets: Ticket;
|
tickets: Ticket;
|
||||||
'ticket-votes': TicketVote;
|
'ticket-votes': TicketVote;
|
||||||
'wiki-pages': WikiPage;
|
'wiki-pages': WikiPage;
|
||||||
|
|
@ -172,6 +175,9 @@ export interface Config {
|
||||||
loadouts: LoadoutsSelect<false> | LoadoutsSelect<true>;
|
loadouts: LoadoutsSelect<false> | LoadoutsSelect<true>;
|
||||||
'market-listings': MarketListingsSelect<false> | MarketListingsSelect<true>;
|
'market-listings': MarketListingsSelect<false> | MarketListingsSelect<true>;
|
||||||
'market-negotiations': MarketNegotiationsSelect<false> | MarketNegotiationsSelect<true>;
|
'market-negotiations': MarketNegotiationsSelect<false> | MarketNegotiationsSelect<true>;
|
||||||
|
'market-state': MarketStateSelect<false> | MarketStateSelect<true>;
|
||||||
|
'voice-scripts': VoiceScriptsSelect<false> | VoiceScriptsSelect<true>;
|
||||||
|
'voice-submissions': VoiceSubmissionsSelect<false> | VoiceSubmissionsSelect<true>;
|
||||||
tickets: TicketsSelect<false> | TicketsSelect<true>;
|
tickets: TicketsSelect<false> | TicketsSelect<true>;
|
||||||
'ticket-votes': TicketVotesSelect<false> | TicketVotesSelect<true>;
|
'ticket-votes': TicketVotesSelect<false> | TicketVotesSelect<true>;
|
||||||
'wiki-pages': WikiPagesSelect<false> | WikiPagesSelect<true>;
|
'wiki-pages': WikiPagesSelect<false> | WikiPagesSelect<true>;
|
||||||
|
|
@ -703,6 +709,27 @@ export interface Resource {
|
||||||
*/
|
*/
|
||||||
tradeable?: boolean | null;
|
tradeable?: boolean | null;
|
||||||
rarity: 'common' | 'uncommon' | 'rare' | 'epic' | 'legendary' | 'exotic' | 'unique';
|
rarity: 'common' | 'uncommon' | 'rare' | 'epic' | 'legendary' | 'exotic' | 'unique';
|
||||||
|
/**
|
||||||
|
* Baseline world supply and demand used by the market economy simulation (economy tick).
|
||||||
|
*/
|
||||||
|
economy?: {
|
||||||
|
/**
|
||||||
|
* Whether the economy simulation tracks this resource. Disabled items keep their resting price.
|
||||||
|
*/
|
||||||
|
enabled?: boolean | null;
|
||||||
|
/**
|
||||||
|
* GM-set resting world supply. Used as the starting point of this resource's market-state ledger.
|
||||||
|
*/
|
||||||
|
baselineSupply?: number | null;
|
||||||
|
/**
|
||||||
|
* GM-set resting demand (NPC faction pressure). Used as the starting point of this resource's market-state ledger.
|
||||||
|
*/
|
||||||
|
baselineDemand?: number | null;
|
||||||
|
/**
|
||||||
|
* Price band, as a fraction of the base value (e.g. 0.5 = price can move ±50%). Leave empty to use the global default band from Game Rules.
|
||||||
|
*/
|
||||||
|
maxModifier?: number | null;
|
||||||
|
};
|
||||||
/**
|
/**
|
||||||
* The unit of measure for this resource in singular form (no plurals, e.g., liter, kg, point, unit, megawatt, person, etc.)
|
* The unit of measure for this resource in singular form (no plurals, e.g., liter, kg, point, unit, megawatt, person, etc.)
|
||||||
*/
|
*/
|
||||||
|
|
@ -910,6 +937,27 @@ export interface Asset {
|
||||||
baseSellPrice?: number | null;
|
baseSellPrice?: number | null;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
/**
|
||||||
|
* Baseline world supply and demand used by the market economy simulation (economy tick).
|
||||||
|
*/
|
||||||
|
economy?: {
|
||||||
|
/**
|
||||||
|
* Whether the economy simulation tracks this asset. Disabled items keep their resting price.
|
||||||
|
*/
|
||||||
|
enabled?: boolean | null;
|
||||||
|
/**
|
||||||
|
* GM-set resting world supply. Used as the starting point of this asset's market-state ledger.
|
||||||
|
*/
|
||||||
|
baselineSupply?: number | null;
|
||||||
|
/**
|
||||||
|
* GM-set resting demand (NPC faction pressure). Used as the starting point of this asset's market-state ledger.
|
||||||
|
*/
|
||||||
|
baselineDemand?: number | null;
|
||||||
|
/**
|
||||||
|
* Price band, as a fraction of the base price (e.g. 0.5 = price can move ±50%). Leave empty to use the global default band from Game Rules.
|
||||||
|
*/
|
||||||
|
maxModifier?: number | null;
|
||||||
|
};
|
||||||
crafting: {
|
crafting: {
|
||||||
craftable?: boolean | null;
|
craftable?: boolean | null;
|
||||||
/**
|
/**
|
||||||
|
|
@ -1528,6 +1576,11 @@ export interface Role {
|
||||||
| 'market-negotiations:update'
|
| 'market-negotiations:update'
|
||||||
| 'market-negotiations:delete'
|
| 'market-negotiations:delete'
|
||||||
| 'admin:market-negotiations:manage'
|
| 'admin:market-negotiations:manage'
|
||||||
|
| 'market-state:create'
|
||||||
|
| 'market-state:read'
|
||||||
|
| 'market-state:update'
|
||||||
|
| 'market-state:delete'
|
||||||
|
| 'admin:market-state:manage'
|
||||||
| 'projects:create'
|
| 'projects:create'
|
||||||
| 'projects:read'
|
| 'projects:read'
|
||||||
| 'projects:update'
|
| 'projects:update'
|
||||||
|
|
@ -1819,6 +1872,7 @@ export interface GameEventLog {
|
||||||
| 'loadouts'
|
| 'loadouts'
|
||||||
| 'market-listings'
|
| 'market-listings'
|
||||||
| 'market-negotiations'
|
| 'market-negotiations'
|
||||||
|
| 'market-state'
|
||||||
| 'evaluations'
|
| 'evaluations'
|
||||||
| 'tickets'
|
| 'tickets'
|
||||||
| 'wiki-pages'
|
| 'wiki-pages'
|
||||||
|
|
@ -1826,6 +1880,8 @@ export interface GameEventLog {
|
||||||
| 'wiki-templates'
|
| 'wiki-templates'
|
||||||
| 'game-servers'
|
| 'game-servers'
|
||||||
| 'assignment-transfers'
|
| 'assignment-transfers'
|
||||||
|
| 'voice-scripts'
|
||||||
|
| 'voice-submissions'
|
||||||
)
|
)
|
||||||
| null;
|
| null;
|
||||||
targetId?: number | null;
|
targetId?: number | null;
|
||||||
|
|
@ -1976,6 +2032,9 @@ export interface Profile {
|
||||||
xpEarned?: number | null;
|
xpEarned?: number | null;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
voiceover?: {
|
||||||
|
xpEarned?: number | null;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
updatedAt: string;
|
updatedAt: string;
|
||||||
createdAt: string;
|
createdAt: string;
|
||||||
|
|
@ -2975,6 +3034,103 @@ export interface MarketNegotiation {
|
||||||
updatedAt: string;
|
updatedAt: string;
|
||||||
createdAt: string;
|
createdAt: string;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Supply/demand ledger per item, maintained by the economy tick. Baselines are copied from the item's Supply & Demand fields on first creation.
|
||||||
|
*
|
||||||
|
* This interface was referenced by `Config`'s JSON-Schema
|
||||||
|
* via the `definition` "market-state".
|
||||||
|
*/
|
||||||
|
export interface MarketState {
|
||||||
|
id: number;
|
||||||
|
/**
|
||||||
|
* Which collection this ledger entry tracks.
|
||||||
|
*/
|
||||||
|
itemType: 'resource' | 'asset';
|
||||||
|
/**
|
||||||
|
* ID of the tracked resource or asset document.
|
||||||
|
*/
|
||||||
|
itemId: number;
|
||||||
|
/**
|
||||||
|
* GM-set resting supply. Copied from the item's Supply & Demand baseline when this entry is first created.
|
||||||
|
*/
|
||||||
|
gmBaselineSupply: number;
|
||||||
|
/**
|
||||||
|
* GM-set resting demand. Copied from the item's Supply & Demand baseline when this entry is first created.
|
||||||
|
*/
|
||||||
|
gmBaselineDemand: number;
|
||||||
|
/**
|
||||||
|
* Living abstract supply. Decremented by unit purchases from NPC listings, incremented by production/sales (later phases).
|
||||||
|
*/
|
||||||
|
currentSupply: number;
|
||||||
|
/**
|
||||||
|
* NPC faction demand pressure. Slow-drifting random walk bounded around the GM baseline, updated per economy tick.
|
||||||
|
*/
|
||||||
|
artificialDemand: number;
|
||||||
|
/**
|
||||||
|
* Decaying rolling aggregate of completed unit purchases (quantity-weighted). Decayed each tick by the Game Rules decay factor.
|
||||||
|
*/
|
||||||
|
realDemand: number;
|
||||||
|
/**
|
||||||
|
* Computed price multiplier applied to the item's base price when generating NEW NPC listings only (1 = resting price). Existing listings and open negotiations are never repriced.
|
||||||
|
*/
|
||||||
|
priceModifier: number;
|
||||||
|
/**
|
||||||
|
* When the economy tick last recomputed this entry.
|
||||||
|
*/
|
||||||
|
lastComputedAt?: string | null;
|
||||||
|
updatedAt: string;
|
||||||
|
createdAt: string;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* This interface was referenced by `Config`'s JSON-Schema
|
||||||
|
* via the `definition` "voice-scripts".
|
||||||
|
*/
|
||||||
|
export interface VoiceScript {
|
||||||
|
id: number;
|
||||||
|
title: string;
|
||||||
|
/**
|
||||||
|
* Voice talent reads this verbatim. Inline emotion tags like [calm] are stored as written.
|
||||||
|
*/
|
||||||
|
script: string;
|
||||||
|
/**
|
||||||
|
* XP awarded per accepted submission of this script.
|
||||||
|
*/
|
||||||
|
xpAmount: number;
|
||||||
|
/**
|
||||||
|
* Closed scripts reject new submissions
|
||||||
|
*/
|
||||||
|
status: 'open' | 'closed';
|
||||||
|
updatedAt: string;
|
||||||
|
createdAt: string;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* This interface was referenced by `Config`'s JSON-Schema
|
||||||
|
* via the `definition` "voice-submissions".
|
||||||
|
*/
|
||||||
|
export interface VoiceSubmission {
|
||||||
|
id: number;
|
||||||
|
script: number | VoiceScript;
|
||||||
|
/**
|
||||||
|
* Submitter
|
||||||
|
*/
|
||||||
|
user: number | User;
|
||||||
|
status: 'pending' | 'accepted' | 'rejected';
|
||||||
|
/**
|
||||||
|
* Optional admin review note.
|
||||||
|
*/
|
||||||
|
reviewNote?: string | null;
|
||||||
|
updatedAt: string;
|
||||||
|
createdAt: string;
|
||||||
|
url?: string | null;
|
||||||
|
thumbnailURL?: string | null;
|
||||||
|
filename?: string | null;
|
||||||
|
mimeType?: string | null;
|
||||||
|
filesize?: number | null;
|
||||||
|
width?: number | null;
|
||||||
|
height?: number | null;
|
||||||
|
focalX?: number | null;
|
||||||
|
focalY?: number | null;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* This interface was referenced by `Config`'s JSON-Schema
|
* This interface was referenced by `Config`'s JSON-Schema
|
||||||
* via the `definition` "tickets".
|
* via the `definition` "tickets".
|
||||||
|
|
@ -3665,6 +3821,18 @@ export interface PayloadLockedDocument {
|
||||||
relationTo: 'market-negotiations';
|
relationTo: 'market-negotiations';
|
||||||
value: number | MarketNegotiation;
|
value: number | MarketNegotiation;
|
||||||
} | null)
|
} | null)
|
||||||
|
| ({
|
||||||
|
relationTo: 'market-state';
|
||||||
|
value: number | MarketState;
|
||||||
|
} | null)
|
||||||
|
| ({
|
||||||
|
relationTo: 'voice-scripts';
|
||||||
|
value: number | VoiceScript;
|
||||||
|
} | null)
|
||||||
|
| ({
|
||||||
|
relationTo: 'voice-submissions';
|
||||||
|
value: number | VoiceSubmission;
|
||||||
|
} | null)
|
||||||
| ({
|
| ({
|
||||||
relationTo: 'tickets';
|
relationTo: 'tickets';
|
||||||
value: number | Ticket;
|
value: number | Ticket;
|
||||||
|
|
@ -4156,6 +4324,11 @@ export interface ProfilesSelect<T extends boolean = true> {
|
||||||
xpEarned?: T;
|
xpEarned?: T;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
voiceover?:
|
||||||
|
| T
|
||||||
|
| {
|
||||||
|
xpEarned?: T;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
updatedAt?: T;
|
updatedAt?: T;
|
||||||
createdAt?: T;
|
createdAt?: T;
|
||||||
|
|
@ -4560,6 +4733,14 @@ export interface AssetsSelect<T extends boolean = true> {
|
||||||
baseSellPrice?: T;
|
baseSellPrice?: T;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
economy?:
|
||||||
|
| T
|
||||||
|
| {
|
||||||
|
enabled?: T;
|
||||||
|
baselineSupply?: T;
|
||||||
|
baselineDemand?: T;
|
||||||
|
maxModifier?: T;
|
||||||
|
};
|
||||||
crafting?:
|
crafting?:
|
||||||
| T
|
| T
|
||||||
| {
|
| {
|
||||||
|
|
@ -4621,6 +4802,14 @@ export interface ResourcesSelect<T extends boolean = true> {
|
||||||
baseValue?: T;
|
baseValue?: T;
|
||||||
tradeable?: T;
|
tradeable?: T;
|
||||||
rarity?: T;
|
rarity?: T;
|
||||||
|
economy?:
|
||||||
|
| T
|
||||||
|
| {
|
||||||
|
enabled?: T;
|
||||||
|
baselineSupply?: T;
|
||||||
|
baselineDemand?: T;
|
||||||
|
maxModifier?: T;
|
||||||
|
};
|
||||||
unitOfMeasure?: T;
|
unitOfMeasure?: T;
|
||||||
massPerUnit?: T;
|
massPerUnit?: T;
|
||||||
stackSize?: T;
|
stackSize?: T;
|
||||||
|
|
@ -4990,6 +5179,56 @@ export interface MarketNegotiationsSelect<T extends boolean = true> {
|
||||||
updatedAt?: T;
|
updatedAt?: T;
|
||||||
createdAt?: T;
|
createdAt?: T;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* This interface was referenced by `Config`'s JSON-Schema
|
||||||
|
* via the `definition` "market-state_select".
|
||||||
|
*/
|
||||||
|
export interface MarketStateSelect<T extends boolean = true> {
|
||||||
|
itemType?: T;
|
||||||
|
itemId?: T;
|
||||||
|
gmBaselineSupply?: T;
|
||||||
|
gmBaselineDemand?: T;
|
||||||
|
currentSupply?: T;
|
||||||
|
artificialDemand?: T;
|
||||||
|
realDemand?: T;
|
||||||
|
priceModifier?: T;
|
||||||
|
lastComputedAt?: T;
|
||||||
|
updatedAt?: T;
|
||||||
|
createdAt?: T;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* This interface was referenced by `Config`'s JSON-Schema
|
||||||
|
* via the `definition` "voice-scripts_select".
|
||||||
|
*/
|
||||||
|
export interface VoiceScriptsSelect<T extends boolean = true> {
|
||||||
|
title?: T;
|
||||||
|
script?: T;
|
||||||
|
xpAmount?: T;
|
||||||
|
status?: T;
|
||||||
|
updatedAt?: T;
|
||||||
|
createdAt?: T;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* This interface was referenced by `Config`'s JSON-Schema
|
||||||
|
* via the `definition` "voice-submissions_select".
|
||||||
|
*/
|
||||||
|
export interface VoiceSubmissionsSelect<T extends boolean = true> {
|
||||||
|
script?: T;
|
||||||
|
user?: T;
|
||||||
|
status?: T;
|
||||||
|
reviewNote?: T;
|
||||||
|
updatedAt?: T;
|
||||||
|
createdAt?: T;
|
||||||
|
url?: T;
|
||||||
|
thumbnailURL?: T;
|
||||||
|
filename?: T;
|
||||||
|
mimeType?: T;
|
||||||
|
filesize?: T;
|
||||||
|
width?: T;
|
||||||
|
height?: T;
|
||||||
|
focalX?: T;
|
||||||
|
focalY?: T;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* This interface was referenced by `Config`'s JSON-Schema
|
* This interface was referenced by `Config`'s JSON-Schema
|
||||||
* via the `definition` "tickets_select".
|
* via the `definition` "tickets_select".
|
||||||
|
|
@ -5396,6 +5635,39 @@ export interface GameRule {
|
||||||
* Message shown to logistics officers when hiring is disabled, e.g. explaining the in-universe reason.
|
* Message shown to logistics officers when hiring is disabled, e.g. explaining the in-universe reason.
|
||||||
*/
|
*/
|
||||||
staffHiringDisabledMessage?: string | null;
|
staffHiringDisabledMessage?: string | null;
|
||||||
|
/**
|
||||||
|
* Global knobs for the supply-and-demand market simulation run by the economy tick (docs/economy/supply-demand-design.md).
|
||||||
|
*/
|
||||||
|
economy?: {
|
||||||
|
/**
|
||||||
|
* Master gate for the market economy simulation. When off, the economy tick leaves all prices at their resting values.
|
||||||
|
*/
|
||||||
|
enabled?: boolean | null;
|
||||||
|
/**
|
||||||
|
* Default price band as a fraction of base price (e.g. 0.5 = price can move ±50%). Used when an item does not set its own band.
|
||||||
|
*/
|
||||||
|
defaultPriceBand?: number | null;
|
||||||
|
/**
|
||||||
|
* How many economy ticks of completed-purchase history feed the real-demand signal.
|
||||||
|
*/
|
||||||
|
realDemandWindowTicks?: number | null;
|
||||||
|
/**
|
||||||
|
* Fraction of accumulated real demand that survives each tick (0.5 halves it every tick).
|
||||||
|
*/
|
||||||
|
realDemandDecay?: number | null;
|
||||||
|
/**
|
||||||
|
* How far the NPC (artificial) demand random walk may move per tick, as a fraction of the GM baseline.
|
||||||
|
*/
|
||||||
|
artificialDemandDrift?: number | null;
|
||||||
|
/**
|
||||||
|
* Completed purchases needed before an item's price starts moving. Until then items stay at their resting price (modifier 1).
|
||||||
|
*/
|
||||||
|
coldStartObservations?: number | null;
|
||||||
|
/**
|
||||||
|
* Suggested economy tick cadence in minutes, for cron documentation only — the tick itself is triggered externally.
|
||||||
|
*/
|
||||||
|
tickIntervalHintMinutes?: number | null;
|
||||||
|
};
|
||||||
updatedAt?: string | null;
|
updatedAt?: string | null;
|
||||||
createdAt?: string | null;
|
createdAt?: string | null;
|
||||||
}
|
}
|
||||||
|
|
@ -5477,6 +5749,17 @@ export interface GameRulesSelect<T extends boolean = true> {
|
||||||
lockerGridHeight?: T;
|
lockerGridHeight?: T;
|
||||||
staffHiringEnabled?: T;
|
staffHiringEnabled?: T;
|
||||||
staffHiringDisabledMessage?: T;
|
staffHiringDisabledMessage?: T;
|
||||||
|
economy?:
|
||||||
|
| T
|
||||||
|
| {
|
||||||
|
enabled?: T;
|
||||||
|
defaultPriceBand?: T;
|
||||||
|
realDemandWindowTicks?: T;
|
||||||
|
realDemandDecay?: T;
|
||||||
|
artificialDemandDrift?: T;
|
||||||
|
coldStartObservations?: T;
|
||||||
|
tickIntervalHintMinutes?: T;
|
||||||
|
};
|
||||||
updatedAt?: T;
|
updatedAt?: T;
|
||||||
createdAt?: T;
|
createdAt?: T;
|
||||||
globalType?: T;
|
globalType?: T;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue