That's your first mistake. You should be providing access to software, not networks. The idea of a "trusted" network that applications or users can communicate on is the fundamental idea that zero-trust architecture aims to get rid of.
You should be providing access to an identity, not software. If someone is running the same software but with the wrong identity, it should be denied access.
One non-malicious example that comes to mind is the right application from the wrong environment, e.g. dev frontend calling prod backend, or even worse prod backend calling test DB, etc.
You can also call it 'perimeter-less security'.
As for zero trust - that seems to be a bit of a misnomer to me - doesn't it tend to aggregate trust into one big bucket - certs?
Won't anybody who can do man-in-the-middle or has access to root certs have total free reign?
Security services wet dream.
* requires intermediate 'gateways' which can bridge both sides to enable bidirectional data flow, initiated from either side