"An abstraction over variation that no longer exists isn't flexibility — it's a museum of a future that didn't happen. Delete it. Re-introduce it when the future actually arrives."
The Pivot That Made an Abstraction Obsolete
Early on, the workspace could route generation to several different backends, so it carried a routing enum — a type listing each possible backend by name. Sensible at the time. Then the engine consolidated: one engine became the single backend for all generation. Overnight, that routing enum carried exactly one value. The abstraction was built to absorb variation between backends, and the variation was gone.
The Concrete-First Decision
There were two options. Keep the single-value enum 'just in case' a second backend ever returns — or delete it, collapsing the routing logic to a direct call, and re-introduce the abstraction only if and when a real second backend actually lands. The choice was to delete. An enum with one value, a router that routes to one place, an abstraction over a fork that no longer forks — all of it is dead surface, complexity with nothing behind it.
Why 'Just in Case' Is the Trap
Keeping the single-value enum feels prudent — what if the second backend comes back? But 'just in case' abstractions impose a steady tax: every reader has to understand why there's a router routing to one place, every change has to thread through indirection that does nothing, and newcomers waste time looking for the other cases that don't exist. The cost is paid continuously, by everyone, forever, against a benefit that may never arrive. That's a bad trade.
Re-Introduction Is Cheap Because You Designed Cleanly
The reason deleting is safe: if a real second backend ever lands, re-introducing the routing abstraction is a bounded, well-understood task — precisely because the rest of the system was built with clean seams (the whole module-separation discipline). You're not betting that you'll never need it; you're betting that if you need it, adding it back will be a finite task, not a rewrite. Clean architecture is what makes 'delete now, re-add later' a safe bet instead of a gamble.