They’re discouraged because they create implicit dependencies you need to fake out (or provide) in tests and previews. It’s going to be a judgement call based on how frequently you’re passing it around and how often it’s being updated. imo if something is infrequently updated but used by many composables at varying levels of nesting, it’s usually a good candidate. We use them for things like theme, unit preferences (kg/lb), feature flags etc. In a codebase of 400+ composables, we use 5 composition locals