file is optional, so it should be {string=}