First go at definiting a Java API and the corresponding POJOs