https://danielmschmidt.de/posts/2024-07-22-discriminated-union-pattern-in-go/