public boolean equals(Object o) {
        if (!(o instanceof NodeState ns)) { return false; }
        // Note that 'description' is not considered as it carries semantics.
        if (state != ns.state
            || Math.abs(capacity - ns.capacity)         > 0.0000000001
            || Math.abs(initProgress - ns.initProgress) > 0.0000000001
            || startTimestamp != ns.startTimestamp
            || minUsedBits != ns.minUsedBits)
        {
            return false;
        }
        return true;
    }
A state can not be forced to be in a state above its reported state.
For instance, a node being down cannot be forced to up, but a node being down can be forced to maintenance.
vdslib/src/main/java/com/yahoo/vdslib/state/NodeState.java