do you want to have two more apply methods? One `(path: String)` implying `schema = None` and the other with `(path: String, schema: Schema)` implying `Some(schema)`?