<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def register_interaction(key=None):
 """Decorator registering an interaction class in the registry. If no key is provided, the class name is used as a key. A key is provided for each core bqplot interaction type so that the frontend can use this key regardless of the kernal language. """

    def wrap(interaction):
        name = key if key is not None else interaction.__module__ + \
            interaction.__name__
        interaction.types[name] = interaction
        return interaction
    return wrap