A sealed class that can either be Present or Absent
It provides a convenient way to distinguish the case when a value is provided explicitly and should be serialized (even if it's null) and the case where it's absent and shouldn't be serialized.
Returns the value if this Optional is Present or fallback else.
Returns the value if this Optional is Present or null else.
Returns the value if this Optional is Present or throws MissingValueException else.