release method
Called by HopeBuilder on dispose. Decrements the reference count — disposes the controller only when no widgets are listening to this key anymore.
Implementation
void release(List<dynamic> queryKey) {
final key = _controllerKey(queryKey);
final count = (_refCounts[key] ?? 0) - 1;
if (count <= 0) {
_controllers[key]?.dispose();
_controllers.remove(key);
_refCounts.remove(key);
} else {
_refCounts[key] = count;
}
}