Unfortunately in almost every case this is due to the straitjacket of the focus code. It over-writes everything without regard to the situation on the ground. This might not be able to be changed without a re-write of the engine or diplomatic code. Probably going to have to go focus by focus.
Focuses should just give you wargoals and not already declare war for you. In this way a generic code based sanity check can do its job. Alternatively the AI should understand the war decision implied by a focus, apply its sanity check and then bypass the focus, if the result is negative. Not exactly a rewrite of the engine, I would think.
Last edited: