design-patterns-go codes are from https://golangbyexample.com/all-design-patterns-golang/ Creational Design Patterns Abstract Factory Builder Factory Object Pool Prototype Singleton Behavioral Design Patterns Chain of Responsibility Command Iterator Mediator Memento Null Object Observer State Strategy Template Method Visitor Structural Design Patterns Adapter Bridge Composite Decorator Facade Flyweight Proxy Additional functional options read https://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis https://golang.design/research/generic-option/