The `@property` annotation does not exist actually. It should be something like 

    @typedef {{k: number=,  normalized: boolean=, ...}}

and the documentation of the properties would have to go before that. Unfortunately it seems like it is not really possible to mark properties as optional, so the closure compiler might throw some warnings.
But since I also planned to use "parameter objects" for all the algorithms methods, I will see how this can be solved.