src/main/java/org/intellimate/izou/sdk/events/Event.java
public static Optional<Event> createEvent(String type, Identification source) {
        try {
            return Optional.of(new Event(type, source, new ArrayList<>()));
        } catch (IllegalArgumentException e) {
            return Optional.empty();
        }
    }
public static Optional<Event> createEvent(String type, Identification source) {
        try {
            return Optional.of(new Event(type, source, new ArrayList<>()));
        } catch (IllegalArgumentException e) {
            return Optional.empty();
        }
    }
Creates a new Event Object
@param type the Type of the Event, try to use the predefined Event types
@param source the source of the Event, most likely a this reference.
@return an Optional, that may be empty if type is null or empty or source is null