{
  "$schema": "https://pointcast.xyz/unfurls.json",
  "title": "PointCast URL unfurl shrines",
  "version": "2.0",
  "description": "Canonical URL preview manifest for high-signal PointCast routes, plus the source data for the /unfurls shrine builder.",
  "updatedAt": "2026-05-05T10:06:28.064Z",
  "count": 22,
  "builder": {
    "url": "https://pointcast.xyz/unfurls#builder",
    "requiredFields": [
      "path",
      "miniPath",
      "title",
      "description",
      "image",
      "kind",
      "audience",
      "ritual"
    ],
    "optionalFields": [
      "proof",
      "shrineSet"
    ]
  },
  "rule": {
    "human": "When you send a PointCast link, its preview should read like a mini shrine: stable image, clear object, proof links, and a single next action.",
    "miniShrinePattern": "https://pointcast.xyz/u/{slug}"
  },
  "shrines": [
    {
      "slug": "home",
      "path": "/",
      "title": "PointCast",
      "description": "The living broadcast: latest blocks, rooms, games, agent surfaces, and local signal in one front door.",
      "image": "https://pointcast.xyz/images/og/og-home-v2.png",
      "kind": "home",
      "audience": "first-time visitors, launch posts, general social shares",
      "ritual": "Use when the ask is simply: come see what PointCast is.",
      "proof": [
        "https://pointcast.xyz/blocks.json",
        "https://pointcast.xyz/agents.json",
        "https://pointcast.xyz/for-agents"
      ],
      "miniPath": "/u/home",
      "shrineSet": "block",
      "url": "https://pointcast.xyz/",
      "miniUrl": "https://pointcast.xyz/u/home",
      "miniImage": "https://pointcast.xyz/u/home/og.png",
      "miniTitle": "PointCast · mini shrine",
      "miniDescription": "Mini shrine for PointCast: The living broadcast: latest blocks, rooms, games, agent surfaces, and local signal in one front door.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2F",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Fhome",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2F",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2F"
      }
    },
    {
      "slug": "breathe-0304",
      "path": "/b/0304/",
      "title": "CH.SPN · 0304 — breathe",
      "description": "A single block unfurl with article metadata, Farcaster buttons, canonical JSON, and a 1200x630 block card.",
      "image": "https://pointcast.xyz/images/og/b/0304.png",
      "kind": "block",
      "audience": "Farcaster, iMessage, X, Slack, and anyone inspecting per-block previews",
      "ritual": "Use as the reference specimen for whether block unfurls are healthy.",
      "proof": [
        "https://pointcast.xyz/b/0304.json",
        "https://pointcast.xyz/c/spinning.json",
        "https://pointcast.xyz/c/spinning.rss"
      ],
      "miniPath": "/u/breathe-0304",
      "shrineSet": "block",
      "url": "https://pointcast.xyz/b/0304/",
      "miniUrl": "https://pointcast.xyz/u/breathe-0304",
      "miniImage": "https://pointcast.xyz/u/breathe-0304/og.png",
      "miniTitle": "CH.SPN · 0304 — breathe · mini shrine",
      "miniDescription": "Mini shrine for CH.SPN · 0304 — breathe: A single block unfurl with article metadata, Farcaster buttons, canonical JSON, and a 1200x630 block card.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fb%2F0304%2F",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Fbreathe-0304",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Fb%2F0304%2F",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Fb%2F0304%2F"
      }
    },
    {
      "slug": "listening-room",
      "path": "/listening-room",
      "title": "PointCast Listening Room",
      "description": "The space-sparkle music room: playlist, sponsors, room controls, and a big visual share card.",
      "image": "https://pointcast.xyz/images/listening-room/pointcast-listening-room-space.png",
      "kind": "room",
      "audience": "music people, Nouns Cola people, Good Feels orbit, room-mode links",
      "ritual": "Use when the share should feel visual, warm, and immediately playable.",
      "proof": [
        "https://pointcast.xyz/listening-room.json",
        "https://pointcast.xyz/b/0339",
        "https://pointcast.xyz/nouns-cola"
      ],
      "miniPath": "/u/listening-room",
      "shrineSet": "room",
      "url": "https://pointcast.xyz/listening-room",
      "miniUrl": "https://pointcast.xyz/u/listening-room",
      "miniImage": "https://pointcast.xyz/u/listening-room/og.png",
      "miniTitle": "PointCast Listening Room · mini shrine",
      "miniDescription": "Mini shrine for PointCast Listening Room: The space-sparkle music room: playlist, sponsors, room controls, and a big visual share card.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Flistening-room",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Flistening-room",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Flistening-room",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Flistening-room"
      }
    },
    {
      "slug": "nouns-cola",
      "path": "/nouns-cola",
      "title": "Nouns Cola",
      "description": "A launch surface for the soda project: proposal, pack art, funding shape, and campaign context.",
      "image": "https://pointcast.xyz/images/og/nouns-cola.png",
      "kind": "campaign",
      "audience": "Nouns, consumer product, sponsorship, and campaign readers",
      "ritual": "Use when the share needs a crisp object, not the whole site.",
      "proof": [
        "https://pointcast.xyz/nouns-cola.json",
        "https://pointcast.xyz/nouns-cola-crush",
        "https://pointcast.xyz/dao"
      ],
      "miniPath": "/u/nouns-cola",
      "shrineSet": "campaign",
      "url": "https://pointcast.xyz/nouns-cola",
      "miniUrl": "https://pointcast.xyz/u/nouns-cola",
      "miniImage": "https://pointcast.xyz/u/nouns-cola/og.png",
      "miniTitle": "Nouns Cola · mini shrine",
      "miniDescription": "Mini shrine for Nouns Cola: A launch surface for the soda project: proposal, pack art, funding shape, and campaign context.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fnouns-cola",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Fnouns-cola",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Fnouns-cola",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Fnouns-cola"
      }
    },
    {
      "slug": "tag-signal",
      "path": "/tag-signal",
      "title": "Tag Signal",
      "description": "A lightweight signal surface for tags, channels, and machine-readable discovery.",
      "image": "https://pointcast.xyz/images/og/b/0389.png",
      "kind": "system",
      "audience": "agents, collaborators, and people tracing how the site labels itself",
      "ritual": "Use for infrastructure shares where the preview still needs to feel alive.",
      "proof": [
        "https://pointcast.xyz/tag-signal.json",
        "https://pointcast.xyz/agents.json",
        "https://pointcast.xyz/mesh"
      ],
      "miniPath": "/u/tag-signal",
      "shrineSet": "system",
      "url": "https://pointcast.xyz/tag-signal",
      "miniUrl": "https://pointcast.xyz/u/tag-signal",
      "miniImage": "https://pointcast.xyz/u/tag-signal/og.png",
      "miniTitle": "Tag Signal · mini shrine",
      "miniDescription": "Mini shrine for Tag Signal: A lightweight signal surface for tags, channels, and machine-readable discovery.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Ftag-signal",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Ftag-signal",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Ftag-signal",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Ftag-signal"
      }
    },
    {
      "slug": "tv",
      "path": "/tv",
      "title": "PointCast TV",
      "description": "Ambient broadcast mode for the site: station surfaces, live blocks, weather, polls, and room-ready display.",
      "image": "https://pointcast.xyz/images/og/og-home-v2.png",
      "kind": "room",
      "audience": "screens, shop displays, station experiments, ambient web people",
      "ritual": "Use when the link should promise a big-screen mode.",
      "proof": [
        "https://pointcast.xyz/tv/assets",
        "https://pointcast.xyz/local.json",
        "https://pointcast.xyz/now.json"
      ],
      "miniPath": "/u/tv",
      "shrineSet": "room",
      "url": "https://pointcast.xyz/tv",
      "miniUrl": "https://pointcast.xyz/u/tv",
      "miniImage": "https://pointcast.xyz/u/tv/og.png",
      "miniTitle": "PointCast TV · mini shrine",
      "miniDescription": "Mini shrine for PointCast TV: Ambient broadcast mode for the site: station surfaces, live blocks, weather, polls, and room-ready display.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Ftv",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Ftv",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Ftv",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Ftv"
      }
    },
    {
      "slug": "now",
      "path": "/now",
      "title": "Right now on PointCast",
      "description": "Card of the day, latest blocks, contract state, and current site pulse in one live snapshot.",
      "image": "https://pointcast.xyz/images/og/now.png",
      "kind": "page",
      "audience": "returning readers, launch check-ins, and anyone asking what is live today",
      "ritual": "Use as the “what is happening right now” share instead of explaining the whole archive.",
      "proof": [
        "https://pointcast.xyz/now.json",
        "https://pointcast.xyz/today.json",
        "https://pointcast.xyz/status"
      ],
      "miniPath": "/u/now",
      "shrineSet": "block",
      "url": "https://pointcast.xyz/now",
      "miniUrl": "https://pointcast.xyz/u/now",
      "miniImage": "https://pointcast.xyz/u/now/og.png",
      "miniTitle": "Right now on PointCast · mini shrine",
      "miniDescription": "Mini shrine for Right now on PointCast: Card of the day, latest blocks, contract state, and current site pulse in one live snapshot.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fnow",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Fnow",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Fnow",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Fnow"
      }
    },
    {
      "slug": "archive",
      "path": "/archive",
      "title": "PointCast Archive",
      "description": "Every block in chronological order, with filters, search, channels, and machine-readable mirrors.",
      "image": "https://pointcast.xyz/images/og/archive.png",
      "kind": "page",
      "audience": "readers who want depth, crawlers, researchers, and people checking the record",
      "ritual": "Use when one block is too narrow and the homepage is too alive.",
      "proof": [
        "https://pointcast.xyz/archive.json",
        "https://pointcast.xyz/blocks.json",
        "https://pointcast.xyz/sitemap-blocks.xml"
      ],
      "miniPath": "/u/archive",
      "shrineSet": "block",
      "url": "https://pointcast.xyz/archive",
      "miniUrl": "https://pointcast.xyz/u/archive",
      "miniImage": "https://pointcast.xyz/u/archive/og.png",
      "miniTitle": "PointCast Archive · mini shrine",
      "miniDescription": "Mini shrine for PointCast Archive: Every block in chronological order, with filters, search, channels, and machine-readable mirrors.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Farchive",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Farchive",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Farchive",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Farchive"
      }
    },
    {
      "slug": "mesh",
      "path": "/mesh",
      "title": "PointCast Mesh",
      "description": "The local, online, and agent networks that PointCast sits inside, mapped as one crawlable system.",
      "image": "https://pointcast.xyz/images/og/mesh.png",
      "kind": "system",
      "audience": "agent builders, systems readers, local collaborators, and anyone asking how it connects",
      "ritual": "Use when the share needs architecture and place instead of a single artifact.",
      "proof": [
        "https://pointcast.xyz/agents.json",
        "https://pointcast.xyz/local.json",
        "https://pointcast.xyz/for-nodes"
      ],
      "miniPath": "/u/mesh",
      "shrineSet": "system",
      "url": "https://pointcast.xyz/mesh",
      "miniUrl": "https://pointcast.xyz/u/mesh",
      "miniImage": "https://pointcast.xyz/u/mesh/og.png",
      "miniTitle": "PointCast Mesh · mini shrine",
      "miniDescription": "Mini shrine for PointCast Mesh: The local, online, and agent networks that PointCast sits inside, mapped as one crawlable system.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fmesh",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Fmesh",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Fmesh",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Fmesh"
      }
    },
    {
      "slug": "manifesto",
      "path": "/manifesto",
      "title": "PointCast Manifesto",
      "description": "The canonical Q&A for what a Block is, why the site exists, and how human-AI publishing works here.",
      "image": "https://pointcast.xyz/images/og/manifesto.png",
      "kind": "page",
      "audience": "new collaborators, AI-native publishing people, and anyone who needs the thesis",
      "ritual": "Use when the preview should answer “what is this?” with a durable page.",
      "proof": [
        "https://pointcast.xyz/glossary",
        "https://pointcast.xyz/for-agents",
        "https://pointcast.xyz/agents.json"
      ],
      "miniPath": "/u/manifesto",
      "shrineSet": "block",
      "url": "https://pointcast.xyz/manifesto",
      "miniUrl": "https://pointcast.xyz/u/manifesto",
      "miniImage": "https://pointcast.xyz/u/manifesto/og.png",
      "miniTitle": "PointCast Manifesto · mini shrine",
      "miniDescription": "Mini shrine for PointCast Manifesto: The canonical Q&A for what a Block is, why the site exists, and how human-AI publishing works here.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fmanifesto",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Fmanifesto",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Fmanifesto",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Fmanifesto"
      }
    },
    {
      "slug": "agents",
      "path": "/for-agents",
      "title": "For agents",
      "description": "A manifest for crawlers, AI systems, and machine readers on how to read PointCast.",
      "image": "https://pointcast.xyz/images/og/og-home-v2.png",
      "kind": "system",
      "audience": "LLM agents, search crawlers, workflow bots, and technical reviewers",
      "ritual": "Use when the URL is meant to be read twice: once by a human, once by software.",
      "proof": [
        "https://pointcast.xyz/agents.json",
        "https://pointcast.xyz/llms.txt",
        "https://pointcast.xyz/llms-full.txt"
      ],
      "miniPath": "/u/agents",
      "shrineSet": "system",
      "url": "https://pointcast.xyz/for-agents",
      "miniUrl": "https://pointcast.xyz/u/agents",
      "miniImage": "https://pointcast.xyz/u/agents/og.png",
      "miniTitle": "For agents · mini shrine",
      "miniDescription": "Mini shrine for For agents: A manifest for crawlers, AI systems, and machine readers on how to read PointCast.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Ffor-agents",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Fagents",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Ffor-agents",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Ffor-agents"
      }
    },
    {
      "slug": "battle",
      "path": "/battle",
      "title": "Nouns Battler",
      "description": "Deterministic Nouns duels: every seed is a fighter, every matchup is reproducible.",
      "image": "https://pointcast.xyz/images/og/battle.png",
      "kind": "game",
      "audience": "Nouns people, game testers, and anyone who wants a playable share",
      "ritual": "Use when the unfurl should invite a click, not just a read.",
      "proof": [
        "https://pointcast.xyz/battle.json",
        "https://pointcast.xyz/battle-log",
        "https://pointcast.xyz/c/battler"
      ],
      "miniPath": "/u/battle",
      "shrineSet": "room",
      "url": "https://pointcast.xyz/battle",
      "miniUrl": "https://pointcast.xyz/u/battle",
      "miniImage": "https://pointcast.xyz/u/battle/og.png",
      "miniTitle": "Nouns Battler · mini shrine",
      "miniDescription": "Mini shrine for Nouns Battler: Deterministic Nouns duels: every seed is a fighter, every matchup is reproducible.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fbattle",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Fbattle",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Fbattle",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Fbattle"
      }
    },
    {
      "slug": "drum",
      "path": "/drum",
      "title": "Drum Room",
      "description": "A communal tapping surface with Frame metadata, persistence, and a PointCast music pulse.",
      "image": "https://pointcast.xyz/images/og-drum.png",
      "kind": "game",
      "audience": "Farcaster, music friends, casual visitors, and anyone who should touch the site immediately",
      "ritual": "Use when the share should become an action within five seconds.",
      "proof": [
        "https://pointcast.xyz/c/spinning",
        "https://pointcast.xyz/b/0339",
        "https://pointcast.xyz/listening-room"
      ],
      "miniPath": "/u/drum",
      "shrineSet": "room",
      "url": "https://pointcast.xyz/drum",
      "miniUrl": "https://pointcast.xyz/u/drum",
      "miniImage": "https://pointcast.xyz/u/drum/og.png",
      "miniTitle": "Drum Room · mini shrine",
      "miniDescription": "Mini shrine for Drum Room: A communal tapping surface with Frame metadata, persistence, and a PointCast music pulse.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fdrum",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Fdrum",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Fdrum",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Fdrum"
      }
    },
    {
      "slug": "garden-yield",
      "path": "/garden-yield",
      "title": "Garden Yield",
      "description": "A native planting planner with site presets, value scores, ranked kits, and an establishment loop.",
      "image": "https://pointcast.xyz/images/og/garden-yield.png",
      "kind": "page",
      "audience": "local gardeners, practical planning readers, and California native plant people",
      "ritual": "Use when the share needs to show PointCast can become a tool.",
      "proof": [
        "https://pointcast.xyz/garden-yield.json",
        "https://pointcast.xyz/nature-yield.json",
        "https://pointcast.xyz/b/0331"
      ],
      "miniPath": "/u/garden-yield",
      "shrineSet": "block",
      "url": "https://pointcast.xyz/garden-yield",
      "miniUrl": "https://pointcast.xyz/u/garden-yield",
      "miniImage": "https://pointcast.xyz/u/garden-yield/og.png",
      "miniTitle": "Garden Yield · mini shrine",
      "miniDescription": "Mini shrine for Garden Yield: A native planting planner with site presets, value scores, ranked kits, and an establishment loop.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fgarden-yield",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Fgarden-yield",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Fgarden-yield",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Fgarden-yield"
      }
    },
    {
      "slug": "nature",
      "path": "/nature",
      "title": "Nature · El Segundo field guide",
      "description": "A local field guide for dunes, native plants, seasonal signals, and the El Segundo blue butterfly.",
      "image": "https://pointcast.xyz/images/og/nature.png",
      "kind": "page",
      "audience": "local nature people, native plant readers, field-guide browsers, and agent crawlers",
      "ritual": "Use when the share should feel grounded in place, plants, and living local context.",
      "proof": [
        "https://pointcast.xyz/nature.json",
        "https://pointcast.xyz/local.json",
        "https://pointcast.xyz/nature-yield.json"
      ],
      "miniPath": "/u/nature",
      "shrineSet": "element",
      "url": "https://pointcast.xyz/nature",
      "miniUrl": "https://pointcast.xyz/u/nature",
      "miniImage": "https://pointcast.xyz/u/nature/og.png",
      "miniTitle": "Nature · El Segundo field guide · mini shrine",
      "miniDescription": "Mini shrine for Nature · El Segundo field guide: A local field guide for dunes, native plants, seasonal signals, and the El Segundo blue butterfly.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fnature",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Fnature",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Fnature",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Fnature"
      }
    },
    {
      "slug": "houseplants",
      "path": "/houseplants",
      "title": "Houseplants · Learning lab",
      "description": "An indoor plant learning module for light, watering, roots, soil, humidity, feeding, repotting, and symptoms.",
      "image": "https://pointcast.xyz/images/og/houseplants.png",
      "kind": "page",
      "audience": "indoor gardeners, plant learners, cozy tool users, and practical care readers",
      "ritual": "Use when the link needs to feel like a lived-in care desk instead of a static article.",
      "proof": [
        "https://pointcast.xyz/houseplants.json",
        "https://pointcast.xyz/nature.json",
        "https://pointcast.xyz/garden-yield"
      ],
      "miniPath": "/u/houseplants",
      "shrineSet": "element",
      "url": "https://pointcast.xyz/houseplants",
      "miniUrl": "https://pointcast.xyz/u/houseplants",
      "miniImage": "https://pointcast.xyz/u/houseplants/og.png",
      "miniTitle": "Houseplants · Learning lab · mini shrine",
      "miniDescription": "Mini shrine for Houseplants · Learning lab: An indoor plant learning module for light, watering, roots, soil, humidity, feeding, repotting, and symptoms.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fhouseplants",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Fhouseplants",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Fhouseplants",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Fhouseplants"
      }
    },
    {
      "slug": "meditate",
      "path": "/meditate",
      "title": "Ocean Meditation",
      "description": "A quiet PointCast room for timed breathing, ocean focus, tide logging, and an optional ambient tone.",
      "image": "https://pointcast.xyz/images/og/meditate.png",
      "kind": "room",
      "audience": "overloaded readers, ocean people, quiet-mode visitors, and anyone needing a softer route",
      "ritual": "Use when the share should offer a reset rather than another feed surface.",
      "proof": [
        "https://pointcast.xyz/meditate.json",
        "https://pointcast.xyz/nature",
        "https://pointcast.xyz/b/0304"
      ],
      "miniPath": "/u/meditate",
      "shrineSet": "element",
      "url": "https://pointcast.xyz/meditate",
      "miniUrl": "https://pointcast.xyz/u/meditate",
      "miniImage": "https://pointcast.xyz/u/meditate/og.png",
      "miniTitle": "Ocean Meditation · mini shrine",
      "miniDescription": "Mini shrine for Ocean Meditation: A quiet PointCast room for timed breathing, ocean focus, tide logging, and an optional ambient tone.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fmeditate",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Fmeditate",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Fmeditate",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Fmeditate"
      }
    },
    {
      "slug": "local",
      "path": "/local",
      "title": "Local · 100 miles from El Segundo",
      "description": "PointCast’s 100-mile lens: name-drops, stations, in-range blocks, nature notes, and adjacent local surfaces.",
      "image": "https://pointcast.xyz/images/og/og-home-v2.png",
      "kind": "page",
      "audience": "local collaborators, station readers, place-based agents, and South Bay wanderers",
      "ritual": "Use when the route should situate PointCast in place before it asks for attention.",
      "proof": [
        "https://pointcast.xyz/local.json",
        "https://pointcast.xyz/nature",
        "https://pointcast.xyz/beacon"
      ],
      "miniPath": "/u/local",
      "shrineSet": "element",
      "url": "https://pointcast.xyz/local",
      "miniUrl": "https://pointcast.xyz/u/local",
      "miniImage": "https://pointcast.xyz/u/local/og.png",
      "miniTitle": "Local · 100 miles from El Segundo · mini shrine",
      "miniDescription": "Mini shrine for Local · 100 miles from El Segundo: PointCast’s 100-mile lens: name-drops, stations, in-range blocks, nature notes, and adjacent local surfaces.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Flocal",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Flocal",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Flocal",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Flocal"
      }
    },
    {
      "slug": "beacon",
      "path": "/beacon",
      "title": "PointCast Beacon",
      "description": "A neighborhood signal surface for nearby routes, local orientation, and place-aware discovery.",
      "image": "https://pointcast.xyz/images/og/beacon.png",
      "kind": "system",
      "audience": "nearby readers, place-aware agents, local systems people, and collaborators entering through geography",
      "ritual": "Use when the unfurl needs to behave like a small signal fire for the neighborhood.",
      "proof": [
        "https://pointcast.xyz/beacon.json",
        "https://pointcast.xyz/local.json",
        "https://pointcast.xyz/for-nodes"
      ],
      "miniPath": "/u/beacon",
      "shrineSet": "element",
      "url": "https://pointcast.xyz/beacon",
      "miniUrl": "https://pointcast.xyz/u/beacon",
      "miniImage": "https://pointcast.xyz/u/beacon/og.png",
      "miniTitle": "PointCast Beacon · mini shrine",
      "miniDescription": "Mini shrine for PointCast Beacon: A neighborhood signal surface for nearby routes, local orientation, and place-aware discovery.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fbeacon",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Fbeacon",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Fbeacon",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Fbeacon"
      }
    },
    {
      "slug": "share-kit",
      "path": "/share",
      "title": "Share kit",
      "description": "Audience routers, copy snippets, proof links, and campaign packets for organic PointCast distribution.",
      "image": "https://pointcast.xyz/images/og-home-v3.png",
      "kind": "campaign",
      "audience": "launch helpers, collaborators, and anyone sending PointCast around",
      "ritual": "Use before posting elsewhere: pick the right door, then copy the packet.",
      "proof": [
        "https://pointcast.xyz/share.json",
        "https://pointcast.xyz/archive",
        "https://pointcast.xyz/for-agents"
      ],
      "miniPath": "/u/share-kit",
      "shrineSet": "campaign",
      "url": "https://pointcast.xyz/share",
      "miniUrl": "https://pointcast.xyz/u/share-kit",
      "miniImage": "https://pointcast.xyz/u/share-kit/og.png",
      "miniTitle": "Share kit · mini shrine",
      "miniDescription": "Mini shrine for Share kit: Audience routers, copy snippets, proof links, and campaign packets for organic PointCast distribution.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fshare",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Fshare-kit",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Fshare",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Fshare"
      }
    },
    {
      "slug": "feed-json",
      "path": "/feed.json",
      "title": "PointCast JSON Feed",
      "description": "Standards-shaped JSON Feed for every block, including canonical URLs, summaries, tags, and images.",
      "image": "https://pointcast.xyz/images/og/og-home-v2.png",
      "kind": "feed",
      "audience": "reader apps, agents, indexers, and workflow automations",
      "ritual": "Use when the \"unfurl\" is consumed by software instead of a human chat app.",
      "proof": [
        "https://pointcast.xyz/blocks.json",
        "https://pointcast.xyz/sitemap-blocks.xml",
        "https://pointcast.xyz/feed.xml"
      ],
      "miniPath": "/u/feed-json",
      "shrineSet": "system",
      "url": "https://pointcast.xyz/feed.json",
      "miniUrl": "https://pointcast.xyz/u/feed-json",
      "miniImage": "https://pointcast.xyz/u/feed-json/og.png",
      "miniTitle": "PointCast JSON Feed · mini shrine",
      "miniDescription": "Mini shrine for PointCast JSON Feed: Standards-shaped JSON Feed for every block, including canonical URLs, summaries, tags, and images.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Ffeed.json",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Ffeed-json",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Ffeed.json",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Ffeed.json"
      }
    },
    {
      "slug": "blocks-json",
      "path": "/blocks.json",
      "title": "PointCast Blocks JSON",
      "description": "The native archive format: every block summarized with channel, type, links, metadata, and companions.",
      "image": "https://pointcast.xyz/images/og/archive.png",
      "kind": "feed",
      "audience": "agents, indexers, scripts, and anyone building on top of the archive",
      "ritual": "Use when the best preview is the contract of the archive itself.",
      "proof": [
        "https://pointcast.xyz/feed.json",
        "https://pointcast.xyz/archive.json",
        "https://pointcast.xyz/sitemap-blocks.xml"
      ],
      "miniPath": "/u/blocks-json",
      "shrineSet": "system",
      "url": "https://pointcast.xyz/blocks.json",
      "miniUrl": "https://pointcast.xyz/u/blocks-json",
      "miniImage": "https://pointcast.xyz/u/blocks-json/og.png",
      "miniTitle": "PointCast Blocks JSON · mini shrine",
      "miniDescription": "Mini shrine for PointCast Blocks JSON: The native archive format: every block summarized with channel, type, links, metadata, and companions.",
      "validators": {
        "opengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fblocks.json",
        "miniShrineOpengraph": "https://www.opengraph.xyz/url/https%3A%2F%2Fpointcast.xyz%2Fu%2Fblocks-json",
        "twitterCard": "https://cards-dev.twitter.com/validator?url=https%3A%2F%2Fpointcast.xyz%2Fblocks.json",
        "facebookSharing": "https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fpointcast.xyz%2Fblocks.json"
      }
    }
  ]
}