{"model":"roth-vs-traditional","specVersion":"1.0.1","specUrl":"/api/v1/models/roth-vs-traditional/spec","inputs":{"annualContribution":{"kind":"float","min":1000,"max":30500},"currentAge":{"kind":"int","min":18,"max":65},"retirementAge":{"kind":"int","min":50,"max":75},"currentMarginalRate":{"kind":"float","min":0.1,"max":0.37},"retirementTaxRate":{"kind":"float","min":0.1,"max":0.37},"expectedReturn":{"kind":"float","min":0.02,"max":0.12}},"arrayInputs":{},"constraints":["retirementAge must exceed currentAge"],"sentinels":[],"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."}