{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://dev.luling.xyz/runway-calculator/schemas/input.json",
  "title": "StartupRunwayInput",
  "description": "Inputs for startup-runway (formula_id: runway-1). All money fields are non-negative numbers in the caller's currency unit. Omitted fields default to 0 (savings_rate defaults to 500, target_months to 12).",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "rent": { "type": "number", "minimum": 0, "default": 0, "description": "Monthly rent / housing" },
    "food": { "type": "number", "minimum": 0, "default": 0, "description": "Monthly food" },
    "utilities": { "type": "number", "minimum": 0, "default": 0, "description": "Monthly utilities" },
    "insurance": { "type": "number", "minimum": 0, "default": 0, "description": "Monthly insurance" },
    "transportation": { "type": "number", "minimum": 0, "default": 0, "description": "Monthly transportation" },
    "other": { "type": "number", "minimum": 0, "default": 0, "description": "Other monthly living costs" },
    "domain": { "type": "number", "minimum": 0, "default": 0, "description": "Monthly domain / hosting amortized" },
    "software": { "type": "number", "minimum": 0, "default": 0, "description": "Monthly software / SaaS" },
    "ads": { "type": "number", "minimum": 0, "default": 0, "description": "Monthly ads spend" },
    "emergency_fund": { "type": "number", "minimum": 0, "default": 0, "description": "Liquid emergency cash" },
    "investments": { "type": "number", "minimum": 0, "default": 0, "description": "Liquid investments countable as runway" },
    "target_months": { "type": "integer", "minimum": 1, "default": 12, "description": "Desired runway months" },
    "savings_rate": { "type": "number", "minimum": 0, "default": 500, "description": "Monthly amount that can be saved toward the target" }
  }
}
