I’m reviving Munchausen, a C# NuGet package I started 9 years ago. This is part 6 of an 8-part series documenting both the development process and the engineering decisions behind bringing the project back to life.

This is the Dev Log: the practical work, cleanup, implementation steps, and day-to-day progress behind this part of the project.

For three milestones, Build() has been a method that throws

NotImplementedException. M5 is where it finally earns its name. This is the compiler: take everything the builder captured, plus everything inference decided, and assemble it into one frozen plan, or fail with a tidy list of every reason it couldn't.

Errors are first-class citizens