I think it's fine for it to be nullable internally: `Optional` comes into its own on public methods to document the fact that a value can be null