export interface Crop { id: string; name: string; growthTicks: number; waterPerTick: number; yield: number; yieldType: string; } export interface CropDefinitions { [key: string]: Crop; } export interface PlotState { intended?: string; current?: { cropId: string; progress: number; mature: boolean; }; moisture: number; } export interface InventoryItem { id: string; count: number; } export interface GameState { cash: number; inventory: Record; fieldSize: number; maxFieldSize: number; fieldUpgradeCosts: number[]; plots: PlotState[][]; lastPlantTime: number; lastWaterTime: number; lastHarvestTime: number; gameSpeed: number; }