case class ULID(ulid: String) can be just class ULID(private val ulid:String) to avoid mapping to nested objects in JSON
case class ULID(ulid: String) can be just class ULID(private val ulid:String) to avoid mapping to nested objects in JSON