Source: callbacks.jsdoc

/**
 * A callback that takes no parameters, and returns nothing.
 * See the user for the description of what it should do.
 * @callback emptyCallback
 */
/**
 * A callback to perform a single step in a simulation.
 * @callback simulationCallback
 * @param {number} elapsedMillis The number of milliseconds to advance the simulation by
 */
/**
 * A callback to perform drawing operations on a canvas
 * @callback drawCallback
 * @param {external:CanvasRenderingContext2D} context The context to use for drawing
 */
/**
 * A function that compares two elements and returns a number that determines how they should be sorted.
 * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort Array.prototype.sort() at Mozilla Developer Network}
 * @callback compareFunction
 * @param {object} a
 * @param {object} b
 * @returns {number}
 * If compareFunction(a, b) returns less than 0, then a comes first.
 * If compareFunction(a, b) returns 0, then don't change the order of a relative to b.
 * If compareFunction(a, b) returns greater than 0, then b comes first.
 */
/**
 * A function that tests if a given coordinate can be travelled across.
 * @callback isWalkable
 * @param {number} x The position along the x-axis on a grid
 * @param {number} y The position along the y-axis on a grid
 * @returns {boolean}
 */