{
  "tested": "2026-10-05",
  "note": "Synthetic files; actual tool functions. No physical print or video playback test.",
  "colors": [
    {
      "text": "#8DAA91",
      "background": "#FFFFFF",
      "ratio": 2.532775020711012,
      "normalAA": false
    },
    {
      "text": "#647C66",
      "background": "#FFFFFF",
      "ratio": 4.548617382432646,
      "normalAA": true
    },
    {
      "text": "#647C66",
      "background": "#F3E7CE",
      "ratio": 3.710924323035102,
      "normalAA": false
    },
    {
      "text": "#4B7051",
      "background": "#F3E7CE",
      "ratio": 4.586222933089235,
      "normalAA": true
    }
  ],
  "subtitles": {
    "offset": 1.5,
    "laterSrt": {
      "count": 3,
      "text": "1\n00:00:05,500 --> 00:00:07,500\nPick a colour.\n\n2\n00:00:10,500 --> 00:00:12,500\nKeep the original.\nTry a new version.\n\n3\n00:00:16,500 --> 00:00:18,500\nReady to share, Zoë.\n"
    },
    "laterVtt": {
      "count": 3,
      "text": "WEBVTT\n\n00:00:05.500 --> 00:00:07.500\nPick a colour.\n\n00:00:10.500 --> 00:00:12.500\nKeep the original.\nTry a new version.\n\n00:00:16.500 --> 00:00:18.500\nReady to share, Zoë.\n"
    },
    "earlierSrt": {
      "count": 3,
      "text": "1\n00:00:02,500 --> 00:00:04,500\nPick a colour.\n\n2\n00:00:07,500 --> 00:00:09,500\nKeep the original.\nTry a new version.\n\n3\n00:00:13,500 --> 00:00:15,500\nReady to share, Zoë.\n"
    },
    "clippedSrt": {
      "count": 2,
      "text": "1\n00:00:00,000 --> 00:00:00,500\nSecond cue.\n\n2\n00:00:01,000 --> 00:00:02,500\nThird cue.\n"
    },
    "roundTrip": true
  },
  "regex": {
    "pattern": "[ \\t]{2,}",
    "flags": "g",
    "replacement": " ",
    "original": "Creator:    Zoë\nTopic:\t\tColour palettes\n\nNext step:   export PDF.\n",
    "result": {
      "matches": [
        {
          "text": "    ",
          "from": 8,
          "to": 12,
          "groups": []
        },
        {
          "text": "\t\t",
          "from": 22,
          "to": 24,
          "groups": []
        },
        {
          "text": "   ",
          "from": 51,
          "to": 54,
          "groups": []
        }
      ],
      "replacement": "Creator: Zoë\nTopic: Colour palettes\n\nNext step: export PDF.\n",
      "limited": false,
      "matchCount": 3,
      "exportText": "    \n\t\t\n   "
    },
    "broad": {
      "matches": [
        {
          "text": "    ",
          "from": 8,
          "to": 12,
          "groups": []
        },
        {
          "text": "\n",
          "from": 15,
          "to": 16,
          "groups": []
        },
        {
          "text": "\t\t",
          "from": 22,
          "to": 24,
          "groups": []
        },
        {
          "text": " ",
          "from": 30,
          "to": 31,
          "groups": []
        },
        {
          "text": "\n\n",
          "from": 39,
          "to": 41,
          "groups": []
        },
        {
          "text": " ",
          "from": 45,
          "to": 46,
          "groups": []
        },
        {
          "text": "   ",
          "from": 51,
          "to": 54,
          "groups": []
        },
        {
          "text": " ",
          "from": 60,
          "to": 61,
          "groups": []
        },
        {
          "text": "\n",
          "from": 65,
          "to": 66,
          "groups": []
        }
      ],
      "replacement": "Creator: Zoë Topic: Colour palettes Next step: export PDF. ",
      "limited": false,
      "matchCount": 9,
      "exportText": "    \n\n\n\t\t\n \n\n\n\n \n   \n \n\n"
    },
    "firstOnly": {
      "matches": [
        {
          "text": "    ",
          "from": 8,
          "to": 12,
          "groups": []
        }
      ],
      "replacement": "Creator: Zoë\nTopic:\t\tColour palettes\n\nNext step:   export PDF.\n",
      "limited": false,
      "matchCount": 1,
      "exportText": "    "
    }
  },
  "files": [
    {
      "name": "contrast-pairs.json",
      "bytes": 461,
      "sha256": "cd3ddb5f2261936182457764f66776263d714a297f34d1330b58f3d17e65baad"
    },
    {
      "name": "contrast-pairs.css",
      "bytes": 204,
      "sha256": "a9092165fed8096e619884e131116887f39007e4b2d2e2e1ec695bb27be49329"
    },
    {
      "name": "contrast-comparison.svg",
      "bytes": 2193,
      "sha256": "bb323b394ddcf6812c525a834d2638a6f64030cf5f496f3a79af0634033ee6de"
    },
    {
      "name": "contrast-comparison.png",
      "bytes": 32723,
      "sha256": "467c38291b6474b7505495bb1597b3131c2447f1a1cdaa50ee0437707e39117b"
    },
    {
      "name": "original.srt",
      "bytes": 173,
      "sha256": "be0fcca6bc5416af1b7235fd35143aa84cf0abda8a5235b0b3008e7ce37e2944"
    },
    {
      "name": "later-1.5s.srt",
      "bytes": 173,
      "sha256": "bb087ef6b0118ec229eaa0eee58cf083a2675cd311829a309c9391b06c1c25e7"
    },
    {
      "name": "later-1.5s.vtt",
      "bytes": 175,
      "sha256": "46879739ed712e1f6ac46c46351758ad9ee194cb4294334ec504fd1c9bd893b8"
    },
    {
      "name": "near-zero.srt",
      "bytes": 132,
      "sha256": "b45926e108cf7d16773b73f17e4bc3fb4be916c3eb1248bd15ff3b04eccb9af5"
    },
    {
      "name": "near-zero-earlier-1.5s.srt",
      "bytes": 88,
      "sha256": "af64134f043168fe6e6c3b448fadc49e81d890c12db12c3dfd37d216ba8f97c3"
    },
    {
      "name": "repeated-spaces.txt",
      "bytes": 67,
      "sha256": "029b9e8f6a9179f205ebe8e9a6b2018f2cf2a5be87af9141f1943da202cc6025"
    },
    {
      "name": "spaces-cleaned.txt",
      "bytes": 61,
      "sha256": "a769d8ba6cd4fbf59cf795104a9f24130a994cac01bcf61beea79624ba34e304"
    },
    {
      "name": "spaces-flattened.txt",
      "bytes": 60,
      "sha256": "3d9a63bea4ecdc01e2f3451c8cf9efa4985fdad5af80ac01dc71574854884604"
    }
  ]
}
