{"model":"sabbatical","specVersion":"1.0.0","specUrl":"/api/v1/models/sabbatical/spec","inputs":{"currentSavings":{"kind":"float","min":0,"max":1000000},"monthlyExpenses":{"kind":"float","min":500,"max":15000},"sabbaticalMonths":{"kind":"int","min":1,"max":36},"currentAge":{"kind":"int","min":22,"max":60},"retirementAge":{"kind":"int","min":45,"max":75},"annualSalary":{"kind":"float","min":30000,"max":500000},"savingsRate":{"kind":"float","min":0.01,"max":0.6},"annualReturn":{"kind":"float","min":0.02,"max":0.12},"marginalTaxRate":{"kind":"float","min":0.1,"max":0.5}},"arrayInputs":{},"constraints":["retirementAge must exceed currentAge"],"sentinels":[{"field":"recoveryMonths","value":600,"meaning":"savings not rebuilt to the pre-sabbatical level within the 600-month cap"}],"facts":[],"disclaimer":"Illustrative planning model, not financial advice. Outputs follow the published model spec exactly; read the spec for assumptions and exclusions before relying on any number."}