What can you change in a library component before it breaks instances?

Does anyone have a list of what you and can change in a library component update before that component breaks? By breaking I mean instance use across design teams, overrides being reset etc.
I have a large library I am designing and managing and there are times when new requirements are needed for existing components and I am finding it tricky to nail why somethings break, some dont. Example if you change the name on a boolean it seems to break any instance but why, it’s just a name change?

Example was a table cell component that had a boolen to turn on a checkbox. Later the requirement was to be able to switch the checkbox to a radio, so we created a part which could be switched between checkbox and radio and replaced the checkbox. That didn’t break the component’s instance until we changed the boolean name from “Checkbox” to “Row Selector”. Which then when we tested the component via a dummy library all instances with checkboxes turned on all turned off as it no longer associated that boolean with the previous one.