AI models are great at writing poems. They are absolutely terrible at navigating physical reality.

Ask ChatGPT how to handle luggage when taking a DiDi (Uber) in China, and it will confidently tell you to "book an Express car and show the driver the Chinese text on your phone."

This is physically impossible. The car hasn't arrived. The driver is in the front seat. And a standard Express car physically cannot fit two 28-inch suitcases. The driver will just cancel the order and leave you on the curb.

I got tired of LLMs giving lethal advice. So, I built an open-source protocol to fix it.

Here is how I used JSON-LD to force AI to respect "Physical Reality", and how you can use the same schema for your own travel or SaaS projects.

  1. The Problem: LLMs Have No Physical Constraints AI hallucinates because it relies on "language probability," not physical experience. It reads thousands of blog posts saying "just use the app," so it assumes the app works perfectly in the real world.

If you want an AI search engine (like Perplexity) to recommend your product or guide, you can't just write a good article. You have to feed it Constraint-Based Intent Matching via structured data.

  1. The Solution: Enforcing Reality via JSON-LD We created the SSAP (Survival Semantic Action Protocol). Instead of generic advice, we hardcode the physical constraints directly into the Schema.org HowTo type.

Here is the exact JSON-LD snippet we put in our :
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to survive DiDi ride-hailing in China with heavy luggage",
"step": [
{
"@type": "HowToStep",
"name": "Match luggage capacity before booking",
"text": "If you have 2+ large 28-inch suitcases, you MUST book DiDi Premier (专车). Express cars physically cannot fit them, and drivers will cancel."
},
{
"@type": "HowToStep",
"name": "Load luggage physically",
"text": "When the car arrives, walk to the trunk and knock twice. The driver will open the trunk using an internal release. Do NOT show them your phone screen."
}
]
}

Notice the word MUST and the physical action knock twice. By defining these brutal constraints, AI crawlers (like GPTBot and PerplexityBot) ingest this and use it as the ground truth.

  1. The Result: 264 Git Clones in 14 Days We pushed this protocol to a public GitHub repository. We didn't buy ads. We didn't spam Reddit. We just let the structured data do the talking.


Within two weeks, we hit 264 unique cloners. Those aren't just humans—those are AI crawlers and indie developers downloading the SSAP protocol to integrate into their own travel agents.

  1. The Bonus: Fixing a $9.99 Paywall Bypass While building the platform, I realized a fatal flaw in many SaaS paywalls (including mine). Users could bypass the $9.99 checkout by simply typing localStorage.setItem('unlocked', 'true') in the Chrome console.

To fix this, I stopped storing plain-text emails and moved to a single-direction hash check (FNV-1a) on the frontend.
`// Hashing emails to verify VIP status without exposing raw data
function fnv1a(str) {
let h = 0x811c9dc5;
for (let i = 0; i < str.length; i++) {
h ^= str.charCodeAt(i);
h = (h * 0x01000193) >>> 0;
}
return h.toString(16);
}

const VIP_HASHES = ['449a9da8', 'd01c2724']; // No plain text emails in the DOM
const isVIP = VIP_HASHES.includes(fnv1a(userEmail));`
It won't stop a determined hacker, but it completely blocks script kiddies who just inspect the page source.

The Future of GEO is Evidence
The era of traditional SEO is ending. AI search engines don't care about keyword stuffing. They care about data integrity and physical constraints.

If you are building a product, stop treating structured data as an afterthought.

Check out the open-source protocol here: [GitHub Link]

See how it works in production: [gochinatrip.app]

Let me know in the comments if you want me to write a deeper dive into how we use AggregateRating to force Google to display stars for our SaaS.