Modeling money: value objects and invariants in Koine
Money is the canonical value object: equal by value, never negative, immutable. Here's how you say that in Koine, and the guard-clause C# you get back.
Money is the canonical value object: equal by value, never negative, immutable. Here's how you say that in Koine, and the guard-clause C# you get back.
The same Money model, two languages, one flag. Keeping C# out of the semantic model is what makes a second target a new emitter instead of a rewrite.
A base library makes your domain depend on the framework forever. A compiler hands you plain C# and then gets out of the way. We picked the compiler.
You already write the ubiquitous language down — in tickets, in diagrams, in a wiki nobody reads. Koine makes it the source code, and compiles the boilerplate for you.