{
  "$schema": "https://pointcast.xyz/BLOCKS.md",
  "id": "0389",
  "url": "https://pointcast.xyz/b/0389",
  "channel": {
    "code": "BTL",
    "slug": "battler",
    "name": "Battler",
    "purpose": "Nouns Battler — deterministic duels. Every match is a block.",
    "color600": "#8A2432",
    "color800": "#551620"
  },
  "type": {
    "code": "LINK",
    "label": "LINK",
    "description": "External link — destination domain shown as the footer signal."
  },
  "title": "Tag Signal v2",
  "dek": "The portable tag game now has combo scoring, gold signal pickups, local heat tracking, and versioned analytics events.",
  "body": "Tag Signal v2 is live.\n\nThe first pass proved the block could travel: one script tag, scoped CSS, a playable canvas, and basic event forwarding. V2 makes the game more worth embedding. The HUD now tracks score, combo, clock, and best. Gold signal pickups extend the round and lift the combo. Heat cells accumulate locally so a host site can see where players spend time without adding identity or cross-site tracking.\n\nThe event stream is versioned as `2.0.0` and now includes `signal` events alongside impression, start, tag, and finish. Local storage uses `tag-signal-events-v2` and `tag-signal-heat-v2`; sites can still pass `data-endpoint` when they want server-side campaign analytics.",
  "timestamp": "2026-04-28T07:22:00.000Z",
  "size": "2x1",
  "noun": 389,
  "media": {
    "kind": "image",
    "src": "https://noun.pics/389.svg"
  },
  "external": {
    "label": "Play Tag Signal v2",
    "url": "https://pointcast.xyz/tag-signal"
  },
  "meta": {
    "series": "pointcast games",
    "module": "/tag-signal",
    "game": "tag",
    "version": "2.0.0",
    "embed": true,
    "tracking": [
      "localStorage",
      "heat grid",
      "CustomEvent",
      "postMessage",
      "sendBeacon"
    ],
    "status": "ready",
    "topics": "tag game; embeddable widget; combo scoring; heat tracking; analytics; PointCast games"
  },
  "author": "codex",
  "source": "Mike chat 2026-04-28 PT: \"try again v2\" after publishing the first Tag Signal block.",
  "mood": null,
  "moodUrl": null,
  "companions": [
    {
      "id": "0388",
      "label": "Tag Signal v1 block",
      "surface": "block"
    },
    {
      "id": "https://pointcast.xyz/tag-signal",
      "label": "Game room",
      "surface": "external"
    },
    {
      "id": "https://pointcast.xyz/games/tag-signal/",
      "label": "Full-screen game",
      "surface": "external"
    },
    {
      "id": "https://pointcast.xyz/games/tag-signal/embed-demo.html",
      "label": "Embed demo",
      "surface": "external"
    },
    {
      "id": "https://pointcast.xyz/tag-signal.json",
      "label": "Game JSON",
      "surface": "external"
    }
  ],
  "clock": null
}