A decision card for a real space

Give the group
one scene to choose.

Copy a standards-shaped Google Chat Cards v2 message into a Chat app or Apps Script response. The card gives a Workspace group a useful two-scene decision before anyone shares a portrait.

Open the attributed duel

The reusable payload

A small card
that travels.

The JSON uses the current cardsV2 envelope with a header, one text section, and an openLink button. It contains no workspace identifier and no recipient state.

A neon city scene preview
TogetherLens Vibe DuelChoose a scene together
MAKE THE DECISION BEFORE THE PHOTO

Pick between two public scenes with your group. No account, roster, or portrait upload is needed.

Open Vibe Duel

The free loop

A space message
becomes a handoff.

  1. 01
    Copy the Cards v2 payload

    Use the template in a Chat app response, Apps Script prototype, or an internal Workspace card experiment.

  2. 02
    Let the group choose in context

    The button opens a bounded, browser-local duel. No people, spaces, or message history are read.

  3. 03
    Continue only when ready

    The browser handoff preserves the exact Google Chat cohort before offering the explicit iOS and Android paths.

Copy-safe source

Nothing hidden
in the payload.

The card is static and finite. The only variable is a bounded public duel round; the generated JSON never contains a user, space, channel, message, or contact identifier.

{
  "cardsV2": [
    {
      "cardId": "togetherlens-google-chat-vibe-room",
      "card": {
        "header": {
          "title": "TogetherLens Vibe Duel",
          "subtitle": "Choose a scene together",
          "imageUrl": "https://togetherlens.app/style-thumbs/cyberpunk-alley.jpg",
          "imageType": "SQUARE",
          "imageAltText": "A neon city scene preview for a group photo"
        },
        "sections": [
          {
            "header": "Make the decision before the photo",
            "widgets": [
              {
                "textParagraph": {
                  "text": "Pick between two public scenes with your group. No account, roster, or portrait upload is needed."
                }
              },
              {
                "buttonList": {
                  "buttons": [
                    {
                      "text": "Open Vibe Duel",
                      "onClick": {
                        "openLink": {
                          "url": "https://togetherlens.app/duel/?round=17&utm_source=google_chat&utm_medium=card&utm_campaign=chat_vibe_room&utm_content=space_card"
                        }
                      }
                    }
                  ]
                }
              }
            ]
          }
        ]
      }
    }
  ]
}

When the group agrees

Bring the chosen vibe
into one frame.

Use the free browser duel first, or continue in the app when everyone has permissioned source portraits ready.