What problem does it solve? It removes ambiguity when turning a domain-model specification into Go code by enforcing a strict one-to-one mapping: each documented element becomes a type, each operation a method, and each rejection reason a sentinel error, with nothing invented beyond the document. ## Core Features & Use Cases - Document-to-code mapping: Converts domain-model documents (element lists, state/type splits, domain events) into Go value objects with private fields and NewX constructors, sealed sum-type aggregates with per-state structs, and domain event types. - Typestate aggregate design: Implements operations as value-receiver methods returning Transition[Next, Event] results, with As*/Restore* functions and a persistence port interface per aggregate. - Use Case: Given a meeting-room reservation domain-model document, generate the complete reservation package with Tentative/Confirmed/Cancelled/Expired state types, sentinel errors matching each documented rejection reason, and an event-sourced Repository interface. ## Quick Start Implement the reservation aggregate from this domain-model document in Go, mapping every element, operation, and rejection reason to types, methods, and sentinels.