lazy defers the initialization of the variable, and guarantees that it will only be used when self is instantiated.
All properties in Swift must be initialized before self is initialized. The first snippet is a property and you’re trying to reference self before it’s initialized.