Using your own custom labels

Shows how Weave remembers any extra labels you add — both at the top of the file and on individual phase headings.

ready to use download the file

The pattern

---
weave-script-version: 1
title: Forward-compat attributes
owner: andrew
team: weave-core
---

# Opening <!-- duration: 2m, audio-cue: bell.mp3 -->

Top-level `owner` and `team` keys flow through to `meta.attributes`.
The `audio-cue` phase attribute flows through to `phase.attributes`.

# Reflection <!-- duration: 90s, mood: calm -->

Multiple unknown attributes on a single heading also work.

What Weave sees

When Weave reads this file, it pulls out the information below. You don't need to write any of this yourself.

{
  "schemaVersion": 1,
  "meta": {
    "sourceSpecVersion": 1,
    "title": "Forward-compat attributes",
    "attributes": {
      "owner": "andrew",
      "team": "weave-core"
    }
  },
  "phases": [
    {
      "id": "1-opening",
      "index": 0,
      "name": "Opening",
      "durationSeconds": 120,
      "perParticipant": false,
      "body": "Top-level `owner` and `team` keys flow through to `meta.attributes`.\nThe `audio-cue` phase attribute flows through to `phase.attributes`.",
      "attributes": {
        "audio-cue": "bell.mp3"
      }
    },
    {
      "id": "2-reflection",
      "index": 1,
      "name": "Reflection",
      "durationSeconds": 90,
      "perParticipant": false,
      "body": "Multiple unknown attributes on a single heading also work.",
      "attributes": {
        "mood": "calm"
      }
    }
  ]
}