Controlling Component Values From Another Component

When you make a RectTransform a child of a GridLayoutGroup, some of the values of the RectTransform can no longer be edited directly. The fields are grayed out, and there’s a message that says, “Some values driven by GridLayoutGroup.”

It occurs to me that it would be useful to have access to this behavior in other contexts. For example, I have a simple Timer component with a timerLength variable. But I want other components to be able to “drive” that variable when necessary. Just like a RectTransform driven by a GridLayoutGroup, the Timer’s timerLength would be grayed out, and I would only be able to change the value from within the component that’s managing it.

Is this possible? Is there a “correct” way to do it? I thought about just setting the timer duration from within the “driving” component’s OnValidate(), but this didn’t seem quite right, since I would still (I think) be able to mess with the timer’s values directly.

Is bumping allowed? Because this is a bump. There are lots of ways this functionality could be useful beyond just controlling a timer component.