This is a bit strange. You're starting with optional parameters and the required ones are at the end. (`?`)

Also, all params with a `?` can be null, which would probably lead to issues. I think default values should be assigned instead.

Also, it might make sense to make Start and End `Null<Int>` and optional (`?`), which would be equivalent to "format the whole text this way".