Optional should be used as a return type only. It's a neat solution for handling data that might not be present. We should avoid using Optional Anti-Patterns i.e. using it as a field or parameter type due to these reasons:
1. Using Optional parameters causing conditional logic inside the methods is not productive.
2. Packing an argument in an Optional is suboptimal for the compiler and does an unnecessary wrapping.
3. Optional field is not serializable.