Static copy
Copied from docs/en/decisions/adp-002.md in https://github.com/poppy-team/aipo-lang (MIT). Pinned to revision ce47c4e070404fc41722ccd8e2b7b808b99062a8, blob 93c034ddbb12d0c7c9345ff225df6d14b10cbe62. The source repository remains canonical; this copy is refreshed through a sync pull request, not live.
The language needed a unified, low-cognitive-overhead mechanism to validate struct states without requiring developers to write verbose boilerplate constructors or artificial getters and setters.
init() Hook:
fail.invariant() Invariants:
struct body.Transactional Rollback inside attempt:
attempt block, the VM maintains an in-memory rollback journal.