{key-value} is about packages and macros using the key=value syntax for named parameters instead of numbered parameters.
key-value is about packages and macros using the key=value syntax for named parameters instead of numbered parameters.
A common package used to define these parameterized inputs is keyval and/or xkeyval. However, other packages providing similar functionality also exists. See, for example, How to create a command with key values?.