Implement

Two copy-paste examples. Replace the placeholder text with your own content. Add the <script> block to the <head> of each relevant page.

Organisation page

Foundation tier only. Every brand should start here. This block goes on your homepage or about page — any page where your Organisation schema.org entity is declared.

<script type="application/ld+json">
{
  "@context": {
    "@vocab": "https://schema.org/",
    "rosetta": "https://brandrosetta.org/vocab#"
  },
  "@type": "Organization",
  "name": "Your Brand Name",
  "url": "https://yourdomain.com",
  "description": "One-sentence factual description of your organisation.",

  "rosetta:positioning": "Two to four sentences. What category you are in, who you serve, what you do differently, and why that difference matters. Specific enough that it could not describe your nearest competitor.",

  "rosetta:brandVoice": "Three to five guidance sentences on tone and register. Descriptive sentences, not adjective lists. Specific enough that two writers following it would sound like the same brand.",

  "rosetta:era": "queryable",

  "rosetta:llmsTxtURL": "https://yourdomain.com/llms.txt",

  "rosetta:crawlerPolicy": "structured"
}
</script>

Product page

Foundation and Extended tier properties. This block goes on individual product or service pages. Extended properties (reasonToBelieve, elementOfValue, targetMoment, conversationalFlow, nextAction, suggestedFollowUps, delayedPrompt) are optional — include the subset that matches your current infrastructure.

<script type="application/ld+json">
{
  "@context": {
    "@vocab": "https://schema.org/",
    "rosetta": "https://brandrosetta.org/vocab#"
  },
  "@type": "Product",
  "name": "Your Product Name",
  "description": "Factual one-line product description.",
  "offers": {
    "@type": "Offer",
    "price": "99.00",
    "priceCurrency": "CAD",
    "availability": "https://schema.org/InStock"
  },

  "rosetta:useCase": [
    "First and primary use case as a complete scenario",
    "Second use case — a different context where the product is the right choice",
    "Third use case — an adjacent scenario the product genuinely serves well"
  ],

  "rosetta:notSuitedFor": [
    "Specific scenario where this product is the wrong recommendation",
    "Another scenario to exclude — written as a use case, not an audience label"
  ],

  "rosetta:pageIntent": ["purchase", "enquire"],

  "rosetta:reasonToBelieve": "Specific, verifiable evidence that substantiates the primary product claim. Not the claim restated — the proof.",

  "rosetta:elementOfValue": "One sentence naming the primary value the buyer gets.",

  "rosetta:targetMoment": "The specific occasion or decision moment that makes someone ready to buy. Describe the moment, not the person.",

  "rosetta:conversationalFlow": {
    "step1": "Establish context — what the customer needs and why",
    "step2": "Qualify — understand current situation and what is prompting the change",
    "step3": "Narrow — confirm specifics like size, variant, or configuration",
    "step4": "Route to action — check availability and move toward purchase or enquiry"
  },

  "rosetta:nextAction": "Instruction to the AI for the single most useful next question from this page context.",

  "rosetta:suggestedFollowUps": [
    {
      "question": "A likely follow-up question buyers ask",
      "guidance": "Authoritative handling guidance for this question."
    },
    {
      "question": "Another predictable follow-up",
      "guidance": "Specific handling guidance — not 'see our website'."
    }
  ],

  "rosetta:delayedPrompt": "Conversational prompt to surface after a natural dwell period. One sentence. Not sales language."
}
</script>

Notes