In my opinion the naming of parameters is confusing. Why?
When you want to omit the parameter name the declaration looks as follows: subscript(parameter: String) -> String. Calling the subscript is done as follows: instance["some String value"]. Thinking of functions the declaration should be subscript(_ parameter: String) for this case. Declaring subscript(parameter: String) -> String however also results in the omittance of the parameter name.
If naming was done the same as it is in functions the call would be instance[parameter: "some String value"]. This is not the case however. The only way to get the latter call is declaring subscript(parameter parameter: String) -> String.
This leads to confusion. So we ought to harmonize the naming in line with functions.