per the docs
/**
* Override to provide setting definitions. Return an array of definitions
* and inline groups. Called on every display() and once when the tab is
* added to the setting modal for search indexing.
* @public
* @since 1.13.0
*/
getSettingsDefinition should be called every time display would have been called and once more for the indexing, but currently it’s only called for the indexing and not when display would have been called
easy to test with either console.log(1) or set the name to Math.random().toString() and switch from general to your settings and back with either display defined or getSettingsDefinition defined.
but hide is called everytime its hidden/switched so unsure how to do cleanup/ if any cleanup should be done.