Implement a function that converts seconds into a human-readable time format showing months, weeks, days, hours, minutes, and seconds. This is similar to how Netflix might display content duration or time remaining.
The function must be implemented recursively and follow specific formatting rules.
1 minute = 60 seconds
1 hour = 60 minutes = 3,600 seconds
1 day = 24 hours = 86,400 seconds
1 week = 7 days = 604,800 seconds
1 month = 30 days = 2,592,000 seconds
Don't show zero units except for seconds
Good: "5 minutes, 0 seconds"
Good: "2 days, 3 minutes, 10 seconds"
Bad: "2 days, 0 hours, 3 minutes, 10 seconds"
Always show seconds even if zero (except when larger units exist that equal exactly 0 seconds)
Use singular form for unit names regardless of count
Use "1 minutes" not
Separate units with commas and spaces: "X units, Y units"
` timer(55)
timer(65)
timer(3805000)
timer(3600)
`
Must be implemented recursively (no loops)
Cannot use standard date/time libraries
Handle all edge cases correctly
Format output exactly as specified