{
  "cards": {
    "01-lifecycle-1080x1350": {
      "file": "cards/01-lifecycle-1080x1350.png",
      "width": 1080,
      "height": 1350,
      "format": "PNG",
      "colorSpace": "sRGB",
      "textStrings": [
        "The Dare Lifecycle",
        "Post: the reward is locked until the deadline. The deadline is set at posting and never moves.",
        "Submit: proof plus a bond. If another submission is under review, it waits in line.",
        "Review: 24 h dispute window from activation. No dispute \u2192 Accepted.",
        "NFT vote: 24 h. Lead of 20 \u2192 decided at once. At the end: lead of 10 \u2192 Decided, else No decision.",
        "Appeal / call the swarm: 24 h window. Swarm answers within 6 h + 1 h delivery. At most 3 swarm questions per submission.",
        "Outcomes: Completed (accepted) \u00b7 Expired (deadline passed, no active submission \u2192 money back) \u00b7 Unwound (cancelled by the dev wallet \u2192 everything back to whoever paid it in). A rejected submission \u2192 the dare is Open again.",
        "moneycanbuy.fun",
        "1/12"
      ],
      "textMetrics": [
        {
          "text": "The Dare Lifecycle",
          "font": "Quick",
          "sizePx": 56,
          "minimumSizePx": 56,
          "numericRuns": []
        },
        {
          "text": "Post: the reward is locked until the deadline. The deadline is set at posting and never moves.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "Submit: proof plus a bond. If another submission is under review, it waits in line.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "Review: 24 h dispute window from activation. No dispute \u2192 Accepted.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "24",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "NFT vote: 24 h. Lead of 20 \u2192 decided at once. At the end: lead of 10 \u2192 Decided, else No decision.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "24",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "20",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "10",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Appeal / call the swarm: 24 h window. Swarm answers within 6 h + 1 h delivery. At most 3 swarm questions per submission.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "24",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "6",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "1",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "3",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Outcomes: Completed (accepted) \u00b7 Expired (deadline passed, no active submission \u2192 money back) \u00b7 Unwound (cancelled by the dev wallet \u2192 everything back to whoever paid it in). A rejected submission \u2192 the dare is Open again.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "moneycanbuy.fun",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": []
        },
        {
          "text": "1/12",
          "font": "Mono",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "1",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "12",
              "font": "Mono",
              "size": 24
            }
          ]
        }
      ],
      "numbers": [
        {
          "text": "24",
          "context": "Review: 24 h dispute window from activation. No dispute \u2192 Accepted.",
          "numbersJsonIds": [
            "dispute_window",
            "vote_window",
            "appeal_window"
          ]
        },
        {
          "text": "24",
          "context": "NFT vote: 24 h. Lead of 20 \u2192 decided at once. At the end: lead of 10 \u2192 Decided, else No decision.",
          "numbersJsonIds": [
            "dispute_window",
            "vote_window",
            "appeal_window"
          ]
        },
        {
          "text": "20",
          "context": "NFT vote: 24 h. Lead of 20 \u2192 decided at once. At the end: lead of 10 \u2192 Decided, else No decision.",
          "numbersJsonIds": [
            "vote_instant_margin"
          ]
        },
        {
          "text": "10",
          "context": "NFT vote: 24 h. Lead of 20 \u2192 decided at once. At the end: lead of 10 \u2192 Decided, else No decision.",
          "numbersJsonIds": [
            "vote_end_margin"
          ]
        },
        {
          "text": "24",
          "context": "Appeal / call the swarm: 24 h window. Swarm answers within 6 h + 1 h delivery. At most 3 swarm questions per submission.",
          "numbersJsonIds": [
            "dispute_window",
            "vote_window",
            "appeal_window"
          ]
        },
        {
          "text": "6",
          "context": "Appeal / call the swarm: 24 h window. Swarm answers within 6 h + 1 h delivery. At most 3 swarm questions per submission.",
          "numbersJsonIds": [
            "swarm_answer"
          ]
        },
        {
          "text": "1",
          "context": "Appeal / call the swarm: 24 h window. Swarm answers within 6 h + 1 h delivery. At most 3 swarm questions per submission.",
          "numbersJsonIds": [
            "swarm_answer"
          ]
        },
        {
          "text": "3",
          "context": "Appeal / call the swarm: 24 h window. Swarm answers within 6 h + 1 h delivery. At most 3 swarm questions per submission.",
          "numbersJsonIds": [
            "max_swarm_calls"
          ]
        }
      ],
      "allNumbersMapped": true,
      "exactCardText": true,
      "forbiddenWordHits": [],
      "forbiddenWordHitCount": 0,
      "fontsUsed": [
        "Quicksand 700",
        "IBM Plex Mono 600"
      ],
      "smallestTextSizePx": 24,
      "lowestContrastRatio": 7.576,
      "bboxStatus": "PASS",
      "pngSha256": "c420b2e3acc9cd215d0827724463da7533aae5b7694c8daab442f9d27c5a0c33",
      "svgSha256": "d48675a10c3a519e41f32192640814a6b304b527d9d395c8d3b54ba24cae6976"
    },
    "02-money-in-1080x1350": {
      "file": "cards/02-money-in-1080x1350.png",
      "width": 1080,
      "height": 1350,
      "format": "PNG",
      "colorSpace": "sRGB",
      "textStrings": [
        "Who Puts Money In",
        "Author: the reward, at least 5 USDC / 0.002 ETH / 1 IMD / 1,000 YOLO. No creation fee. Locked until the deadline.",
        "Anyone: top-up of the reward (same currency, before the deadline) and a YOLO add-on. Back only if not done by the deadline or cancelled.",
        "Doer: bond 0.5 IMD + 3% of the author's reward, in the reward's currency. Back when accepted.",
        "Disputer: bond 0.5 IMD + 1% of the author's reward. Back when the dispute is won.",
        "Swarm caller: a dispute bond + 0.5 IMD per swarm call. A side of the dispute pays it from its bond; a repeat call from the wallet.",
        "NFT voters pay only gas. Predictors pay YOLO, from 1 YOLO.",
        "On $100 USDC: doer 0.5 IMD + 3 USDC \u00b7 disputer 0.5 IMD + 1 USDC.",
        "moneycanbuy.fun",
        "2/12"
      ],
      "textMetrics": [
        {
          "text": "Who Puts Money In",
          "font": "Quick",
          "sizePx": 56,
          "minimumSizePx": 56,
          "numericRuns": []
        },
        {
          "text": "Author: the reward, at least 5 USDC / 0.002 ETH / 1 IMD / 1,000 YOLO. No creation fee. Locked until the deadline.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "5",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "0.002",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "1",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "1,000",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Anyone: top-up of the reward (same currency, before the deadline) and a YOLO add-on. Back only if not done by the deadline or cancelled.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "Doer: bond 0.5 IMD + 3% of the author's reward, in the reward's currency. Back when accepted.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "0.5",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "3%",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Disputer: bond 0.5 IMD + 1% of the author's reward. Back when the dispute is won.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "0.5",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "1%",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Swarm caller: a dispute bond + 0.5 IMD per swarm call. A side of the dispute pays it from its bond; a repeat call from the wallet.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "0.5",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "NFT voters pay only gas. Predictors pay YOLO, from 1 YOLO.",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "1",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "On $100 USDC: doer 0.5 IMD + 3 USDC \u00b7 disputer 0.5 IMD + 1 USDC.",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "$100",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "0.5",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "3",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "0.5",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "1",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "moneycanbuy.fun",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": []
        },
        {
          "text": "2/12",
          "font": "Mono",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "2",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "12",
              "font": "Mono",
              "size": 24
            }
          ]
        }
      ],
      "numbers": [
        {
          "text": "5",
          "context": "Author: the reward, at least 5 USDC / 0.002 ETH / 1 IMD / 1,000 YOLO. No creation fee. Locked until the deadline.",
          "numbersJsonIds": [
            "min_reward"
          ]
        },
        {
          "text": "0.002",
          "context": "Author: the reward, at least 5 USDC / 0.002 ETH / 1 IMD / 1,000 YOLO. No creation fee. Locked until the deadline.",
          "numbersJsonIds": [
            "min_reward"
          ]
        },
        {
          "text": "1",
          "context": "Author: the reward, at least 5 USDC / 0.002 ETH / 1 IMD / 1,000 YOLO. No creation fee. Locked until the deadline.",
          "numbersJsonIds": [
            "min_reward",
            "dispute_bond",
            "bond_example",
            "min_prediction"
          ]
        },
        {
          "text": "1,000",
          "context": "Author: the reward, at least 5 USDC / 0.002 ETH / 1 IMD / 1,000 YOLO. No creation fee. Locked until the deadline.",
          "numbersJsonIds": [
            "min_reward"
          ]
        },
        {
          "text": "0.5",
          "context": "Doer: bond 0.5 IMD + 3% of the author's reward, in the reward's currency. Back when accepted.",
          "numbersJsonIds": [
            "doer_bond",
            "dispute_bond",
            "bond_example",
            "swarm_fee"
          ]
        },
        {
          "text": "3%",
          "context": "Doer: bond 0.5 IMD + 3% of the author's reward, in the reward's currency. Back when accepted.",
          "numbersJsonIds": [
            "doer_bond",
            "bond_example"
          ]
        },
        {
          "text": "0.5",
          "context": "Disputer: bond 0.5 IMD + 1% of the author's reward. Back when the dispute is won.",
          "numbersJsonIds": [
            "doer_bond",
            "dispute_bond",
            "bond_example",
            "swarm_fee"
          ]
        },
        {
          "text": "1%",
          "context": "Disputer: bond 0.5 IMD + 1% of the author's reward. Back when the dispute is won.",
          "numbersJsonIds": [
            "min_reward",
            "dispute_bond",
            "bond_example",
            "min_prediction"
          ]
        },
        {
          "text": "0.5",
          "context": "Swarm caller: a dispute bond + 0.5 IMD per swarm call. A side of the dispute pays it from its bond; a repeat call from the wallet.",
          "numbersJsonIds": [
            "doer_bond",
            "dispute_bond",
            "bond_example",
            "swarm_fee"
          ]
        },
        {
          "text": "1",
          "context": "NFT voters pay only gas. Predictors pay YOLO, from 1 YOLO.",
          "numbersJsonIds": [
            "min_reward",
            "dispute_bond",
            "bond_example",
            "min_prediction"
          ]
        },
        {
          "text": "$100",
          "context": "On $100 USDC: doer 0.5 IMD + 3 USDC \u00b7 disputer 0.5 IMD + 1 USDC.",
          "numbersJsonIds": [
            "reward_example"
          ]
        },
        {
          "text": "0.5",
          "context": "On $100 USDC: doer 0.5 IMD + 3 USDC \u00b7 disputer 0.5 IMD + 1 USDC.",
          "numbersJsonIds": [
            "doer_bond",
            "dispute_bond",
            "bond_example",
            "swarm_fee"
          ]
        },
        {
          "text": "3",
          "context": "On $100 USDC: doer 0.5 IMD + 3 USDC \u00b7 disputer 0.5 IMD + 1 USDC.",
          "numbersJsonIds": [
            "doer_bond",
            "bond_example"
          ]
        },
        {
          "text": "0.5",
          "context": "On $100 USDC: doer 0.5 IMD + 3 USDC \u00b7 disputer 0.5 IMD + 1 USDC.",
          "numbersJsonIds": [
            "doer_bond",
            "dispute_bond",
            "bond_example",
            "swarm_fee"
          ]
        },
        {
          "text": "1",
          "context": "On $100 USDC: doer 0.5 IMD + 3 USDC \u00b7 disputer 0.5 IMD + 1 USDC.",
          "numbersJsonIds": [
            "min_reward",
            "dispute_bond",
            "bond_example",
            "min_prediction"
          ]
        }
      ],
      "allNumbersMapped": true,
      "exactCardText": true,
      "forbiddenWordHits": [
        {
          "phrase": "creation fee",
          "text": "Author: the reward, at least 5 USDC / 0.002 ETH / 1 IMD / 1,000 YOLO. No creation fee. Locked until the deadline."
        }
      ],
      "forbiddenWordHitCount": 1,
      "fontsUsed": [
        "Quicksand 700",
        "IBM Plex Mono 600"
      ],
      "smallestTextSizePx": 24,
      "lowestContrastRatio": 7.576,
      "bboxStatus": "PASS",
      "pngSha256": "a500ef396601ce869c12c8326ce509ac2bea736e097ea48f4e1b4d6b3854f9d4",
      "svgSha256": "853a112a3facb774c39c1caea2ad6be592d9b5826a9fbfcb58df99fa815aea70"
    },
    "03-dispute-1080x1350": {
      "file": "cards/03-dispute-1080x1350.png",
      "width": 1080,
      "height": 1350,
      "format": "PNG",
      "colorSpace": "sRGB",
      "textStrings": [
        "Dispute \u2192 NFT Vote \u2192 Swarm",
        "Dispute: anyone except the doer, within 24 h. One dispute per submission. A reason is required, a link is optional.",
        "NFT vote: 1 NFT = 1 vote. Each holder votes for themselves. An NFT votes once per dispute, no side change.",
        "Three results: Decided at once (lead of 20) \u00b7",
        "Decided at the end (lead of 10) \u00b7",
        "No decision.",
        "Swarm: appeal of the NFT decision, or a call after No decision. Anyone can call. Panel of 7 agents, quorum 5, yes/no answer is final.",
        "Swarm silent \u2192 a new 24 h window. After the 3rd silence the result stands as without the swarm.",
        "No decision and no swarm call \u2192 the submission is accepted.",
        "Small dares: if NFT holders do not vote, the swarm decides.",
        "moneycanbuy.fun",
        "3/12"
      ],
      "textMetrics": [
        {
          "text": "Dispute \u2192 NFT Vote \u2192 Swarm",
          "font": "Quick",
          "sizePx": 56,
          "minimumSizePx": 56,
          "numericRuns": []
        },
        {
          "text": "Dispute: anyone except the doer, within 24 h. One dispute per submission. A reason is required, a link is optional.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "24",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "NFT vote: 1 NFT = 1 vote. Each holder votes for themselves. An NFT votes once per dispute, no side change.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "1",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "1",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Three results: Decided at once (lead of 20) \u00b7",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "20",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Decided at the end (lead of 10) \u00b7",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "10",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "No decision.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "Swarm: appeal of the NFT decision, or a call after No decision. Anyone can call. Panel of 7 agents, quorum 5, yes/no answer is final.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "7",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "5,",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Swarm silent \u2192 a new 24 h window. After the 3rd silence the result stands as without the swarm.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "24",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "3rd",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "No decision and no swarm call \u2192 the submission is accepted.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "Small dares: if NFT holders do not vote, the swarm decides.",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": []
        },
        {
          "text": "moneycanbuy.fun",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": []
        },
        {
          "text": "3/12",
          "font": "Mono",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "3",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "12",
              "font": "Mono",
              "size": 24
            }
          ]
        }
      ],
      "numbers": [
        {
          "text": "24",
          "context": "Dispute: anyone except the doer, within 24 h. One dispute per submission. A reason is required, a link is optional.",
          "numbersJsonIds": [
            "dispute_window",
            "vote_window",
            "appeal_window"
          ]
        },
        {
          "text": "1",
          "context": "NFT vote: 1 NFT = 1 vote. Each holder votes for themselves. An NFT votes once per dispute, no side change.",
          "numbersJsonIds": [
            "swarm_answer",
            "nft_vote"
          ]
        },
        {
          "text": "1",
          "context": "NFT vote: 1 NFT = 1 vote. Each holder votes for themselves. An NFT votes once per dispute, no side change.",
          "numbersJsonIds": [
            "swarm_answer",
            "nft_vote"
          ]
        },
        {
          "text": "20",
          "context": "Three results: Decided at once (lead of 20) \u00b7",
          "numbersJsonIds": [
            "vote_instant_margin"
          ]
        },
        {
          "text": "10",
          "context": "Decided at the end (lead of 10) \u00b7",
          "numbersJsonIds": [
            "vote_end_margin"
          ]
        },
        {
          "text": "7",
          "context": "Swarm: appeal of the NFT decision, or a call after No decision. Anyone can call. Panel of 7 agents, quorum 5, yes/no answer is final.",
          "numbersJsonIds": [
            "swarm_panel"
          ]
        },
        {
          "text": "5",
          "context": "Swarm: appeal of the NFT decision, or a call after No decision. Anyone can call. Panel of 7 agents, quorum 5, yes/no answer is final.",
          "numbersJsonIds": [
            "swarm_panel"
          ]
        },
        {
          "text": "24",
          "context": "Swarm silent \u2192 a new 24 h window. After the 3rd silence the result stands as without the swarm.",
          "numbersJsonIds": [
            "dispute_window",
            "vote_window",
            "appeal_window"
          ]
        },
        {
          "text": "3",
          "context": "Swarm silent \u2192 a new 24 h window. After the 3rd silence the result stands as without the swarm.",
          "numbersJsonIds": [
            "max_swarm_calls"
          ]
        }
      ],
      "allNumbersMapped": true,
      "exactCardText": true,
      "forbiddenWordHits": [],
      "forbiddenWordHitCount": 0,
      "fontsUsed": [
        "Quicksand 700",
        "IBM Plex Mono 600"
      ],
      "smallestTextSizePx": 24,
      "lowestContrastRatio": 7.576,
      "bboxStatus": "PASS",
      "pngSha256": "1d85f89e3217f1ddc7601084890ac981a11ae1f61ba97c30345af05bc78e2d06",
      "svgSha256": "feb2371138b4cbeb16919798888d6436fff0a6bf6d19653c7eb300e61a0025f5"
    },
    "04-loser-bond-1080x1350": {
      "file": "cards/04-loser-bond-1080x1350.png",
      "width": 1080,
      "height": 1350,
      "format": "PNG",
      "colorSpace": "sRGB",
      "textStrings": [
        "Who Gets the Loser's Bond",
        "The loser is the doer (fake proof) or the disputer (honest proof).",
        "NFT decided and the result holds: 50% to the winning side, 50% to the NFT voters who voted right.",
        "NFT wrong (the swarm overturned) or no decision: 100% to the winning side.",
        "The winner always gets its own bond back. An outside appellant who wins first gets 0.5 IMD from the loser's IMD bond.",
        "Split separately in IMD and in the reward's currency. Swarm fees are not refunded.",
        "The 0.5 IMD goes back to an outside appellant only if the loser's bond still holds IMD; otherwise it is not refunded.",
        "Fake proof on $100 USDC: doer bond 0.5 IMD + 3 USDC \u2192 0.25 IMD + 1.5 USDC to the disputer, 0.25 IMD + 1.5 USDC to the NFT voters who voted right. The reward stays in the dare.",
        "moneycanbuy.fun",
        "4/12"
      ],
      "textMetrics": [
        {
          "text": "Who Gets the Loser's Bond",
          "font": "Quick",
          "sizePx": 56,
          "minimumSizePx": 56,
          "numericRuns": []
        },
        {
          "text": "The loser is the doer (fake proof) or the disputer (honest proof).",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "NFT decided and the result holds: 50% to the winning side, 50% to the NFT voters who voted right.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "50%",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "50%",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "NFT wrong (the swarm overturned) or no decision: 100% to the winning side.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "100%",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "The winner always gets its own bond back. An outside appellant who wins first gets 0.5 IMD from the loser's IMD bond.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "0.5",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Split separately in IMD and in the reward's currency. Swarm fees are not refunded.",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": []
        },
        {
          "text": "The 0.5 IMD goes back to an outside appellant only if the loser's bond still holds IMD; otherwise it is not refunded.",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "0.5",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "Fake proof on $100 USDC: doer bond 0.5 IMD + 3 USDC \u2192 0.25 IMD + 1.5 USDC to the disputer, 0.25 IMD + 1.5 USDC to the NFT voters who voted right. The reward stays in the dare.",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "$100",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "0.5",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "3",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "0.25",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "1.5",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "0.25",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "1.5",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "moneycanbuy.fun",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": []
        },
        {
          "text": "4/12",
          "font": "Mono",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "4",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "12",
              "font": "Mono",
              "size": 24
            }
          ]
        }
      ],
      "numbers": [
        {
          "text": "50%",
          "context": "NFT decided and the result holds: 50% to the winning side, 50% to the NFT voters who voted right.",
          "numbersJsonIds": [
            "loser_bond_split"
          ]
        },
        {
          "text": "50%",
          "context": "NFT decided and the result holds: 50% to the winning side, 50% to the NFT voters who voted right.",
          "numbersJsonIds": [
            "loser_bond_split"
          ]
        },
        {
          "text": "100%",
          "context": "NFT wrong (the swarm overturned) or no decision: 100% to the winning side.",
          "numbersJsonIds": [
            "reward_example",
            "loser_bond_split"
          ]
        },
        {
          "text": "0.5",
          "context": "The winner always gets its own bond back. An outside appellant who wins first gets 0.5 IMD from the loser's IMD bond.",
          "numbersJsonIds": [
            "doer_bond",
            "dispute_bond",
            "outside_appellant"
          ]
        },
        {
          "text": "0.5",
          "context": "The 0.5 IMD goes back to an outside appellant only if the loser's bond still holds IMD; otherwise it is not refunded.",
          "numbersJsonIds": [
            "doer_bond",
            "dispute_bond",
            "outside_appellant"
          ]
        },
        {
          "text": "$100",
          "context": "Fake proof on $100 USDC: doer bond 0.5 IMD + 3 USDC \u2192 0.25 IMD + 1.5 USDC to the disputer, 0.25 IMD + 1.5 USDC to the NFT voters who voted right. The reward stays in the dare.",
          "numbersJsonIds": [
            "reward_example",
            "loser_bond_split"
          ]
        },
        {
          "text": "0.5",
          "context": "Fake proof on $100 USDC: doer bond 0.5 IMD + 3 USDC \u2192 0.25 IMD + 1.5 USDC to the disputer, 0.25 IMD + 1.5 USDC to the NFT voters who voted right. The reward stays in the dare.",
          "numbersJsonIds": [
            "doer_bond",
            "dispute_bond",
            "outside_appellant"
          ]
        },
        {
          "text": "3",
          "context": "Fake proof on $100 USDC: doer bond 0.5 IMD + 3 USDC \u2192 0.25 IMD + 1.5 USDC to the disputer, 0.25 IMD + 1.5 USDC to the NFT voters who voted right. The reward stays in the dare.",
          "numbersJsonIds": [
            "doer_bond"
          ]
        },
        {
          "text": "0.25",
          "context": "Fake proof on $100 USDC: doer bond 0.5 IMD + 3 USDC \u2192 0.25 IMD + 1.5 USDC to the disputer, 0.25 IMD + 1.5 USDC to the NFT voters who voted right. The reward stays in the dare.",
          "numbersJsonIds": [
            "loser_bond_example"
          ]
        },
        {
          "text": "1.5",
          "context": "Fake proof on $100 USDC: doer bond 0.5 IMD + 3 USDC \u2192 0.25 IMD + 1.5 USDC to the disputer, 0.25 IMD + 1.5 USDC to the NFT voters who voted right. The reward stays in the dare.",
          "numbersJsonIds": [
            "loser_bond_example"
          ]
        },
        {
          "text": "0.25",
          "context": "Fake proof on $100 USDC: doer bond 0.5 IMD + 3 USDC \u2192 0.25 IMD + 1.5 USDC to the disputer, 0.25 IMD + 1.5 USDC to the NFT voters who voted right. The reward stays in the dare.",
          "numbersJsonIds": [
            "loser_bond_example"
          ]
        },
        {
          "text": "1.5",
          "context": "Fake proof on $100 USDC: doer bond 0.5 IMD + 3 USDC \u2192 0.25 IMD + 1.5 USDC to the disputer, 0.25 IMD + 1.5 USDC to the NFT voters who voted right. The reward stays in the dare.",
          "numbersJsonIds": [
            "loser_bond_example"
          ]
        }
      ],
      "allNumbersMapped": true,
      "exactCardText": true,
      "forbiddenWordHits": [],
      "forbiddenWordHitCount": 0,
      "fontsUsed": [
        "Quicksand 700",
        "IBM Plex Mono 600"
      ],
      "smallestTextSizePx": 24,
      "lowestContrastRatio": 7.576,
      "bboxStatus": "PASS",
      "pngSha256": "e81a989e504dd0d5db5baf7b5790d971b69205643256159744802ab8277cea6b",
      "svgSha256": "f61c4debe8bf5163b4774a940ce7bed99a2b69d00862c37361eba0c2d182296e"
    },
    "05-where-100-goes-1080x1350": {
      "file": "cards/05-where-100-goes-1080x1350.png",
      "width": 1080,
      "height": 1350,
      "format": "PNG",
      "colorSpace": "sRGB",
      "textStrings": [
        "Where $100 Goes",
        "No dispute, no stake: doer $90 \u00b7 treasury $10",
        "No dispute, full stake: doer $94 \u00b7 buyback wallet $5.50 \u00b7 treasury $0.50",
        "No dispute, power half the reward: doer $92 \u00b7 buyback wallet $6.50 \u00b7 treasury $1.50",
        "No dispute, power 5% of the reward: doer $90.20 \u00b7 buyback wallet $7.40 \u00b7 treasury $2.40",
        "Dispute, NFT right, no stake: doer $90 \u00b7 NFT voters $5 \u00b7 treasury $5",
        "Dispute, NFT right, full stake: doer $94 \u00b7 NFT voters $5 \u00b7 buyback wallet $0.50 \u00b7 treasury $0.50",
        "Fee = 10% of the reward = $10. NFT wrong or no decision: their $5 goes to the treasury (no stake) or to the buyback wallet (stake). Reward in YOLO: the treasury part burns. ETH, USDC and IMD go to the buyback wallet; only YOLO burns.",
        "moneycanbuy.fun",
        "5/12"
      ],
      "textMetrics": [
        {
          "text": "Where $100 Goes",
          "font": "Quick",
          "sizePx": 56,
          "minimumSizePx": 56,
          "numericRuns": [
            {
              "text": "$100",
              "font": "Mono",
              "size": 56
            }
          ]
        },
        {
          "text": "No dispute, no stake: doer $90 \u00b7 treasury $10",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "$90",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$10",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "No dispute, full stake: doer $94 \u00b7 buyback wallet $5.50 \u00b7 treasury $0.50",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "$94",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$5.50",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$0.50",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "No dispute, power half the reward: doer $92 \u00b7 buyback wallet $6.50 \u00b7 treasury $1.50",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "$92",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$6.50",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$1.50",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "No dispute, power 5% of the reward: doer $90.20 \u00b7 buyback wallet $7.40 \u00b7 treasury $2.40",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "5%",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$90.20",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$7.40",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$2.40",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "Dispute, NFT right, no stake: doer $90 \u00b7 NFT voters $5 \u00b7 treasury $5",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "$90",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$5",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$5",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "Dispute, NFT right, full stake: doer $94 \u00b7 NFT voters $5 \u00b7 buyback wallet $0.50 \u00b7 treasury $0.50",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "$94",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$5",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$0.50",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$0.50",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "Fee = 10% of the reward = $10. NFT wrong or no decision: their $5 goes to the treasury (no stake) or to the buyback wallet (stake). Reward in YOLO: the treasury part burns. ETH, USDC and IMD go to the buyback wallet; only YOLO burns.",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "10%",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$10.",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$5",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "moneycanbuy.fun",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": []
        },
        {
          "text": "5/12",
          "font": "Mono",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "5",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "12",
              "font": "Mono",
              "size": 24
            }
          ]
        }
      ],
      "numbers": [
        {
          "text": "$100",
          "context": "Where $100 Goes",
          "numbersJsonIds": [
            "reward_example"
          ]
        },
        {
          "text": "$90",
          "context": "No dispute, no stake: doer $90 \u00b7 treasury $10",
          "numbersJsonIds": [
            "doer_base",
            "split_row1",
            "split_row5"
          ]
        },
        {
          "text": "$10",
          "context": "No dispute, no stake: doer $90 \u00b7 treasury $10",
          "numbersJsonIds": [
            "fee",
            "split_row1"
          ]
        },
        {
          "text": "$94",
          "context": "No dispute, full stake: doer $94 \u00b7 buyback wallet $5.50 \u00b7 treasury $0.50",
          "numbersJsonIds": [
            "doer_base",
            "split_row2",
            "split_row6"
          ]
        },
        {
          "text": "$5.50",
          "context": "No dispute, full stake: doer $94 \u00b7 buyback wallet $5.50 \u00b7 treasury $0.50",
          "numbersJsonIds": [
            "split_row2"
          ]
        },
        {
          "text": "$0.50",
          "context": "No dispute, full stake: doer $94 \u00b7 buyback wallet $5.50 \u00b7 treasury $0.50",
          "numbersJsonIds": [
            "split_row2",
            "split_row6"
          ]
        },
        {
          "text": "$92",
          "context": "No dispute, power half the reward: doer $92 \u00b7 buyback wallet $6.50 \u00b7 treasury $1.50",
          "numbersJsonIds": [
            "split_row3"
          ]
        },
        {
          "text": "$6.50",
          "context": "No dispute, power half the reward: doer $92 \u00b7 buyback wallet $6.50 \u00b7 treasury $1.50",
          "numbersJsonIds": [
            "split_row3"
          ]
        },
        {
          "text": "$1.50",
          "context": "No dispute, power half the reward: doer $92 \u00b7 buyback wallet $6.50 \u00b7 treasury $1.50",
          "numbersJsonIds": [
            "split_row3"
          ]
        },
        {
          "text": "5%",
          "context": "No dispute, power 5% of the reward: doer $90.20 \u00b7 buyback wallet $7.40 \u00b7 treasury $2.40",
          "numbersJsonIds": [
            "nft_share",
            "split_row4",
            "split_row5",
            "split_row6"
          ]
        },
        {
          "text": "$90.20",
          "context": "No dispute, power 5% of the reward: doer $90.20 \u00b7 buyback wallet $7.40 \u00b7 treasury $2.40",
          "numbersJsonIds": [
            "split_row4"
          ]
        },
        {
          "text": "$7.40",
          "context": "No dispute, power 5% of the reward: doer $90.20 \u00b7 buyback wallet $7.40 \u00b7 treasury $2.40",
          "numbersJsonIds": [
            "split_row4"
          ]
        },
        {
          "text": "$2.40",
          "context": "No dispute, power 5% of the reward: doer $90.20 \u00b7 buyback wallet $7.40 \u00b7 treasury $2.40",
          "numbersJsonIds": [
            "split_row4"
          ]
        },
        {
          "text": "$90",
          "context": "Dispute, NFT right, no stake: doer $90 \u00b7 NFT voters $5 \u00b7 treasury $5",
          "numbersJsonIds": [
            "doer_base",
            "split_row1",
            "split_row5"
          ]
        },
        {
          "text": "$5",
          "context": "Dispute, NFT right, no stake: doer $90 \u00b7 NFT voters $5 \u00b7 treasury $5",
          "numbersJsonIds": [
            "nft_share",
            "split_row4",
            "split_row5",
            "split_row6"
          ]
        },
        {
          "text": "$5",
          "context": "Dispute, NFT right, no stake: doer $90 \u00b7 NFT voters $5 \u00b7 treasury $5",
          "numbersJsonIds": [
            "nft_share",
            "split_row4",
            "split_row5",
            "split_row6"
          ]
        },
        {
          "text": "$94",
          "context": "Dispute, NFT right, full stake: doer $94 \u00b7 NFT voters $5 \u00b7 buyback wallet $0.50 \u00b7 treasury $0.50",
          "numbersJsonIds": [
            "doer_base",
            "split_row2",
            "split_row6"
          ]
        },
        {
          "text": "$5",
          "context": "Dispute, NFT right, full stake: doer $94 \u00b7 NFT voters $5 \u00b7 buyback wallet $0.50 \u00b7 treasury $0.50",
          "numbersJsonIds": [
            "nft_share",
            "split_row4",
            "split_row5",
            "split_row6"
          ]
        },
        {
          "text": "$0.50",
          "context": "Dispute, NFT right, full stake: doer $94 \u00b7 NFT voters $5 \u00b7 buyback wallet $0.50 \u00b7 treasury $0.50",
          "numbersJsonIds": [
            "split_row2",
            "split_row6"
          ]
        },
        {
          "text": "$0.50",
          "context": "Dispute, NFT right, full stake: doer $94 \u00b7 NFT voters $5 \u00b7 buyback wallet $0.50 \u00b7 treasury $0.50",
          "numbersJsonIds": [
            "split_row2",
            "split_row6"
          ]
        },
        {
          "text": "10%",
          "context": "Fee = 10% of the reward = $10. NFT wrong or no decision: their $5 goes to the treasury (no stake) or to the buyback wallet (stake). Reward in YOLO: the treasury part burns. ETH, USDC and IMD go to the buyback wallet; only YOLO burns.",
          "numbersJsonIds": [
            "fee",
            "split_row1"
          ]
        },
        {
          "text": "$10",
          "context": "Fee = 10% of the reward = $10. NFT wrong or no decision: their $5 goes to the treasury (no stake) or to the buyback wallet (stake). Reward in YOLO: the treasury part burns. ETH, USDC and IMD go to the buyback wallet; only YOLO burns.",
          "numbersJsonIds": [
            "fee",
            "split_row1"
          ]
        },
        {
          "text": "$5",
          "context": "Fee = 10% of the reward = $10. NFT wrong or no decision: their $5 goes to the treasury (no stake) or to the buyback wallet (stake). Reward in YOLO: the treasury part burns. ETH, USDC and IMD go to the buyback wallet; only YOLO burns.",
          "numbersJsonIds": [
            "nft_share",
            "split_row4",
            "split_row5",
            "split_row6"
          ]
        }
      ],
      "allNumbersMapped": true,
      "exactCardText": true,
      "forbiddenWordHits": [],
      "forbiddenWordHitCount": 0,
      "fontsUsed": [
        "Quicksand 700",
        "IBM Plex Mono 600"
      ],
      "smallestTextSizePx": 24,
      "lowestContrastRatio": 7.576,
      "bboxStatus": "PASS",
      "pngSha256": "734c16887de959bdef45234402aeabcc90347733d1a6acf0e220e28cfdb86676",
      "svgSha256": "7d4afe576ad1ae4843efd772001a99d291e1a1c06b4e10299c2db228e1718423"
    },
    "06-doer-stake-1080x1350": {
      "file": "cards/06-doer-stake-1080x1350.png",
      "width": 1080,
      "height": 1350,
      "format": "PNG",
      "colorSpace": "sRGB",
      "textStrings": [
        "The Doer Stake",
        "Lock: any amount of YOLO for 1-52 weeks. Add and extend, never reduce, no early exit.",
        "Power = amount x weeks / 52. Fixed at lock, never drops until the end.",
        "Bonus = 4% of the reward x min(1, power / author's reward).",
        "Scale: power = reward \u2192 +4% = $4 \u00b7",
        "half \u2192 +2% = $2 \u00b7",
        "5% \u2192 +0.2% = $0.20 \u00b7",
        "0 \u2192 0.",
        "Counted at submission. At payout the same lock must still run.",
        "One lock serves every submission. A fake proof does not touch the lock; the bond is the penalty.",
        "Lock, not burn: the YOLO returns to its owner after the term.",
        "moneycanbuy.fun",
        "6/12"
      ],
      "textMetrics": [
        {
          "text": "The Doer Stake",
          "font": "Quick",
          "sizePx": 56,
          "minimumSizePx": 56,
          "numericRuns": []
        },
        {
          "text": "Lock: any amount of YOLO for 1-52 weeks. Add and extend, never reduce, no early exit.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "1",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "52",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Power = amount x weeks / 52. Fixed at lock, never drops until the end.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "52.",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Bonus = 4% of the reward x min(1, power / author's reward).",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "4%",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "1,",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Scale: power = reward \u2192 +4% = $4 \u00b7",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "4%",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "$4",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "half \u2192 +2% = $2 \u00b7",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "2%",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "$2",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "5% \u2192 +0.2% = $0.20 \u00b7",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "5%",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "0.2%",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "$0.20",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "0 \u2192 0.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "0",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "0.",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Counted at submission. At payout the same lock must still run.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "One lock serves every submission. A fake proof does not touch the lock; the bond is the penalty.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "Lock, not burn: the YOLO returns to its owner after the term.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "moneycanbuy.fun",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": []
        },
        {
          "text": "6/12",
          "font": "Mono",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "6",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "12",
              "font": "Mono",
              "size": 24
            }
          ]
        }
      ],
      "numbers": [
        {
          "text": "1",
          "context": "Lock: any amount of YOLO for 1-52 weeks. Add and extend, never reduce, no early exit.",
          "numbersJsonIds": [
            "stake_bonus",
            "lock_term"
          ]
        },
        {
          "text": "52",
          "context": "Lock: any amount of YOLO for 1-52 weeks. Add and extend, never reduce, no early exit.",
          "numbersJsonIds": [
            "lock_term",
            "power"
          ]
        },
        {
          "text": "52",
          "context": "Power = amount x weeks / 52. Fixed at lock, never drops until the end.",
          "numbersJsonIds": [
            "lock_term",
            "power"
          ]
        },
        {
          "text": "4%",
          "context": "Bonus = 4% of the reward x min(1, power / author's reward).",
          "numbersJsonIds": [
            "stake_bonus",
            "bonus_scale"
          ]
        },
        {
          "text": "1",
          "context": "Bonus = 4% of the reward x min(1, power / author's reward).",
          "numbersJsonIds": [
            "stake_bonus",
            "lock_term"
          ]
        },
        {
          "text": "4%",
          "context": "Scale: power = reward \u2192 +4% = $4 \u00b7",
          "numbersJsonIds": [
            "stake_bonus",
            "bonus_scale"
          ]
        },
        {
          "text": "$4",
          "context": "Scale: power = reward \u2192 +4% = $4 \u00b7",
          "numbersJsonIds": [
            "stake_bonus",
            "bonus_scale"
          ]
        },
        {
          "text": "2%",
          "context": "half \u2192 +2% = $2 \u00b7",
          "numbersJsonIds": [
            "bonus_scale"
          ]
        },
        {
          "text": "$2",
          "context": "half \u2192 +2% = $2 \u00b7",
          "numbersJsonIds": [
            "bonus_scale"
          ]
        },
        {
          "text": "5%",
          "context": "5% \u2192 +0.2% = $0.20 \u00b7",
          "numbersJsonIds": [
            "bonus_scale"
          ]
        },
        {
          "text": "0.2%",
          "context": "5% \u2192 +0.2% = $0.20 \u00b7",
          "numbersJsonIds": [
            "bonus_scale"
          ]
        },
        {
          "text": "$0.20",
          "context": "5% \u2192 +0.2% = $0.20 \u00b7",
          "numbersJsonIds": [
            "bonus_scale"
          ]
        },
        {
          "text": "0",
          "context": "0 \u2192 0.",
          "numbersJsonIds": [
            "bonus_scale"
          ]
        },
        {
          "text": "0",
          "context": "0 \u2192 0.",
          "numbersJsonIds": [
            "bonus_scale"
          ]
        }
      ],
      "allNumbersMapped": true,
      "exactCardText": true,
      "forbiddenWordHits": [],
      "forbiddenWordHitCount": 0,
      "fontsUsed": [
        "Quicksand 700",
        "IBM Plex Mono 600"
      ],
      "smallestTextSizePx": 24,
      "lowestContrastRatio": 7.576,
      "bboxStatus": "PASS",
      "pngSha256": "a0d8704c12235b32f5569b9e1ce43f293005e046314e4bbaf2d6f712fc8de0d7",
      "svgSha256": "22abafa6c3da4c92ed2fc40b64870d5d252c9b6cbcb2c930b6b0a400c9f54656"
    },
    "07-will-do-1080x1350": {
      "file": "cards/07-will-do-1080x1350.png",
      "width": 1080,
      "height": 1350,
      "format": "PNG",
      "colorSpace": "sRGB",
      "textStrings": [
        "WILL DO / WON'T DO",
        "Entry of 100 YOLO: 90 to the side's pool \u00b7",
        "5 burn at the outcome \u00b7",
        "5 wait for the outcome.",
        "Weight = (time left / whole term)\u00b2, term counted from dare creation. Early entries weigh more.",
        "Entries until the deadline, paused while a submission is under review, no withdrawal, open to anyone.",
        "Done \u2192 WILL DO takes its 90 + the losers' pool by weight. The waiting 5% \u2192 2.5% to the author, 2.5% to the doer.",
        "Not done \u2192 WON'T DO wins. The waiting 5% burns.",
        "Nobody on the winning side: done \u2192 the losers' pool half to the author, half to the doer; not done \u2192 all to the author. Losers get nothing.",
        "Cancelled (Unwound) \u2192 every entry back in full.",
        "100 on WILL DO, 5 on WON'T DO, done \u2192 90 + 4.5 = 94.5.",
        "moneycanbuy.fun",
        "7/12"
      ],
      "textMetrics": [
        {
          "text": "WILL DO / WON'T DO",
          "font": "Quick",
          "sizePx": 56,
          "minimumSizePx": 56,
          "numericRuns": []
        },
        {
          "text": "Entry of 100 YOLO: 90 to the side's pool \u00b7",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "100",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "90",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "5 burn at the outcome \u00b7",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "5",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "5 wait for the outcome.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "5",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Weight = (time left / whole term)\u00b2, term counted from dare creation. Early entries weigh more.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "\u00b2",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Entries until the deadline, paused while a submission is under review, no withdrawal, open to anyone.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "Done \u2192 WILL DO takes its 90 + the losers' pool by weight. The waiting 5% \u2192 2.5% to the author, 2.5% to the doer.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "90",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "5%",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "2.5%",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "2.5%",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Not done \u2192 WON'T DO wins. The waiting 5% burns.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "5%",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Nobody on the winning side: done \u2192 the losers' pool half to the author, half to the doer; not done \u2192 all to the author. Losers get nothing.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "Cancelled (Unwound) \u2192 every entry back in full.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "100 on WILL DO, 5 on WON'T DO, done \u2192 90 + 4.5 = 94.5.",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "100",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "5",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "90",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "4.5",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "94.5.",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "moneycanbuy.fun",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": []
        },
        {
          "text": "7/12",
          "font": "Mono",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "7",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "12",
              "font": "Mono",
              "size": 24
            }
          ]
        }
      ],
      "numbers": [
        {
          "text": "100",
          "context": "Entry of 100 YOLO: 90 to the side's pool \u00b7",
          "numbersJsonIds": [
            "reward_example",
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "90",
          "context": "Entry of 100 YOLO: 90 to the side's pool \u00b7",
          "numbersJsonIds": [
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "5",
          "context": "5 burn at the outcome \u00b7",
          "numbersJsonIds": [
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "5",
          "context": "5 wait for the outcome.",
          "numbersJsonIds": [
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "\u00b2",
          "context": "Weight = (time left / whole term)\u00b2, term counted from dare creation. Early entries weigh more.",
          "numbersJsonIds": [
            "predict_weight"
          ]
        },
        {
          "text": "90",
          "context": "Done \u2192 WILL DO takes its 90 + the losers' pool by weight. The waiting 5% \u2192 2.5% to the author, 2.5% to the doer.",
          "numbersJsonIds": [
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "5%",
          "context": "Done \u2192 WILL DO takes its 90 + the losers' pool by weight. The waiting 5% \u2192 2.5% to the author, 2.5% to the doer.",
          "numbersJsonIds": [
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "2.5%",
          "context": "Done \u2192 WILL DO takes its 90 + the losers' pool by weight. The waiting 5% \u2192 2.5% to the author, 2.5% to the doer.",
          "numbersJsonIds": [
            "predict_defer"
          ]
        },
        {
          "text": "2.5%",
          "context": "Done \u2192 WILL DO takes its 90 + the losers' pool by weight. The waiting 5% \u2192 2.5% to the author, 2.5% to the doer.",
          "numbersJsonIds": [
            "predict_defer"
          ]
        },
        {
          "text": "5%",
          "context": "Not done \u2192 WON'T DO wins. The waiting 5% burns.",
          "numbersJsonIds": [
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "100",
          "context": "100 on WILL DO, 5 on WON'T DO, done \u2192 90 + 4.5 = 94.5.",
          "numbersJsonIds": [
            "reward_example",
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "5",
          "context": "100 on WILL DO, 5 on WON'T DO, done \u2192 90 + 4.5 = 94.5.",
          "numbersJsonIds": [
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "90",
          "context": "100 on WILL DO, 5 on WON'T DO, done \u2192 90 + 4.5 = 94.5.",
          "numbersJsonIds": [
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "4.5",
          "context": "100 on WILL DO, 5 on WON'T DO, done \u2192 90 + 4.5 = 94.5.",
          "numbersJsonIds": [
            "predict_example"
          ]
        },
        {
          "text": "94.5",
          "context": "100 on WILL DO, 5 on WON'T DO, done \u2192 90 + 4.5 = 94.5.",
          "numbersJsonIds": [
            "predict_example"
          ]
        }
      ],
      "allNumbersMapped": true,
      "exactCardText": true,
      "forbiddenWordHits": [],
      "forbiddenWordHitCount": 0,
      "fontsUsed": [
        "Quicksand 700",
        "IBM Plex Mono 600"
      ],
      "smallestTextSizePx": 24,
      "lowestContrastRatio": 7.576,
      "bboxStatus": "PASS",
      "pngSha256": "539378e942fe43bad4e6296bbc73d5baa64a063c314972deb4767d3f58c793f3",
      "svgSha256": "9094ca6671549bf172fc827391dfa706f73b5399bd8bbafe3a78a5078b51c849"
    },
    "08-fees-1080x1350": {
      "file": "cards/08-fees-1080x1350.png",
      "width": 1080,
      "height": 1350,
      "format": "PNG",
      "colorSpace": "sRGB",
      "textStrings": [
        "Where Every Fee Goes",
        "Dare fee 10% of the reward \u2192 NFT voters / doer bonus / treasury / buyback wallet (ETH, USDC, IMD) / burn (YOLO).",
        "YOLO add-on fee 10% of the add-on \u2192 the same rule; the treasury part burns.",
        "Predict: 5% of every entry \u2192 0x\u2026dEaD at the outcome; the waiting 5% \u2192 author and doer, or 0x\u2026dEaD.",
        "Trophy: 7,777 YOLO \u2192 0x\u2026dEaD.",
        "Pool fee: 1% of YOLO/IMD pool volume \u2192 treasury; its YOLO side \u2192 burned.",
        "Loser bonds \u2192 winners and NFT voters. Swarm fees \u2192 the swarm.",
        "Burn button: YOLO to 0x\u2026dEaD. Send button: ETH, USDC, IMD to the buyback wallet. Anyone can press, no reward for pressing.",
        "0x\u2026dEaD",
        "by hand",
        "BUYBACK WALLET",
        "TREASURY",
        "back to people",
        "moneycanbuy.fun",
        "8/12"
      ],
      "textMetrics": [
        {
          "text": "Where Every Fee Goes",
          "font": "Quick",
          "sizePx": 56,
          "minimumSizePx": 56,
          "numericRuns": []
        },
        {
          "text": "Dare fee 10% of the reward \u2192 NFT voters / doer bonus / treasury / buyback wallet (ETH, USDC, IMD) / burn (YOLO).",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "10%",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "YOLO add-on fee 10% of the add-on \u2192 the same rule; the treasury part burns.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "10%",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Predict: 5% of every entry \u2192 0x\u2026dEaD at the outcome; the waiting 5% \u2192 author and doer, or 0x\u2026dEaD.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "5%",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "0",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "5%",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "0",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Trophy: 7,777 YOLO \u2192 0x\u2026dEaD.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "7,777",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "0",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Pool fee: 1% of YOLO/IMD pool volume \u2192 treasury; its YOLO side \u2192 burned.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "1%",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Loser bonds \u2192 winners and NFT voters. Swarm fees \u2192 the swarm.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "Burn button: YOLO to 0x\u2026dEaD. Send button: ETH, USDC, IMD to the buyback wallet. Anyone can press, no reward for pressing.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "0",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "0x\u2026dEaD",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "0",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "by hand",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": []
        },
        {
          "text": "BUYBACK WALLET",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": []
        },
        {
          "text": "TREASURY",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": []
        },
        {
          "text": "back to people",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": []
        },
        {
          "text": "moneycanbuy.fun",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": []
        },
        {
          "text": "8/12",
          "font": "Mono",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "8",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "12",
              "font": "Mono",
              "size": 24
            }
          ]
        }
      ],
      "numbers": [
        {
          "text": "10%",
          "context": "Dare fee 10% of the reward \u2192 NFT voters / doer bonus / treasury / buyback wallet (ETH, USDC, IMD) / burn (YOLO).",
          "numbersJsonIds": [
            "fee",
            "addon_fee"
          ]
        },
        {
          "text": "10%",
          "context": "YOLO add-on fee 10% of the add-on \u2192 the same rule; the treasury part burns.",
          "numbersJsonIds": [
            "fee",
            "addon_fee"
          ]
        },
        {
          "text": "5%",
          "context": "Predict: 5% of every entry \u2192 0x\u2026dEaD at the outcome; the waiting 5% \u2192 author and doer, or 0x\u2026dEaD.",
          "numbersJsonIds": [
            "predict_entry"
          ]
        },
        {
          "text": "0",
          "context": "Predict: 5% of every entry \u2192 0x\u2026dEaD at the outcome; the waiting 5% \u2192 author and doer, or 0x\u2026dEaD.",
          "numbersJsonIds": [
            "trophy"
          ]
        },
        {
          "text": "5%",
          "context": "Predict: 5% of every entry \u2192 0x\u2026dEaD at the outcome; the waiting 5% \u2192 author and doer, or 0x\u2026dEaD.",
          "numbersJsonIds": [
            "predict_entry"
          ]
        },
        {
          "text": "0",
          "context": "Predict: 5% of every entry \u2192 0x\u2026dEaD at the outcome; the waiting 5% \u2192 author and doer, or 0x\u2026dEaD.",
          "numbersJsonIds": [
            "trophy"
          ]
        },
        {
          "text": "7,777",
          "context": "Trophy: 7,777 YOLO \u2192 0x\u2026dEaD.",
          "numbersJsonIds": [
            "trophy"
          ]
        },
        {
          "text": "0",
          "context": "Trophy: 7,777 YOLO \u2192 0x\u2026dEaD.",
          "numbersJsonIds": [
            "trophy"
          ]
        },
        {
          "text": "1%",
          "context": "Pool fee: 1% of YOLO/IMD pool volume \u2192 treasury; its YOLO side \u2192 burned.",
          "numbersJsonIds": [
            "pool_fee"
          ]
        },
        {
          "text": "0",
          "context": "Burn button: YOLO to 0x\u2026dEaD. Send button: ETH, USDC, IMD to the buyback wallet. Anyone can press, no reward for pressing.",
          "numbersJsonIds": [
            "trophy"
          ]
        },
        {
          "text": "0",
          "context": "0x\u2026dEaD",
          "numbersJsonIds": [
            "trophy"
          ]
        }
      ],
      "allNumbersMapped": true,
      "exactCardText": true,
      "forbiddenWordHits": [],
      "forbiddenWordHitCount": 0,
      "fontsUsed": [
        "Quicksand 700",
        "IBM Plex Mono 600"
      ],
      "smallestTextSizePx": 24,
      "lowestContrastRatio": 7.576,
      "bboxStatus": "PASS",
      "pngSha256": "814308e8fbb10c5b92968e8283fba632f1468caa79389149eac923cac97b15e5",
      "svgSha256": "6a78c2fff27120dbce380f08e9a960bb667c0037979c45f30808fa7418075104"
    },
    "01-lifecycle-1080x1920": {
      "file": "cards/01-lifecycle-1080x1920.png",
      "width": 1080,
      "height": 1920,
      "format": "PNG",
      "colorSpace": "sRGB",
      "textStrings": [
        "The Dare Lifecycle",
        "Post: the reward is locked until the deadline. The deadline is set at posting and never moves.",
        "Submit: proof plus a bond. If another submission is under review, it waits in line.",
        "Review: 24 h dispute window from activation. No dispute \u2192 Accepted.",
        "NFT vote: 24 h. Lead of 20 \u2192 decided at once. At the end: lead of 10 \u2192 Decided, else No decision.",
        "Appeal / call the swarm: 24 h window. Swarm answers within 6 h + 1 h delivery. At most 3 swarm questions per submission.",
        "Outcomes: Completed (accepted) \u00b7 Expired (deadline passed, no active submission \u2192 money back) \u00b7 Unwound (cancelled by the dev wallet \u2192 everything back to whoever paid it in). A rejected submission \u2192 the dare is Open again.",
        "moneycanbuy.fun",
        "1/12"
      ],
      "textMetrics": [
        {
          "text": "The Dare Lifecycle",
          "font": "Quick",
          "sizePx": 56,
          "minimumSizePx": 56,
          "numericRuns": []
        },
        {
          "text": "Post: the reward is locked until the deadline. The deadline is set at posting and never moves.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "Submit: proof plus a bond. If another submission is under review, it waits in line.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "Review: 24 h dispute window from activation. No dispute \u2192 Accepted.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "24",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "NFT vote: 24 h. Lead of 20 \u2192 decided at once. At the end: lead of 10 \u2192 Decided, else No decision.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "24",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "20",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "10",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Appeal / call the swarm: 24 h window. Swarm answers within 6 h + 1 h delivery. At most 3 swarm questions per submission.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "24",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "6",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "1",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "3",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Outcomes: Completed (accepted) \u00b7 Expired (deadline passed, no active submission \u2192 money back) \u00b7 Unwound (cancelled by the dev wallet \u2192 everything back to whoever paid it in). A rejected submission \u2192 the dare is Open again.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "moneycanbuy.fun",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": []
        },
        {
          "text": "1/12",
          "font": "Mono",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "1",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "12",
              "font": "Mono",
              "size": 24
            }
          ]
        }
      ],
      "numbers": [
        {
          "text": "24",
          "context": "Review: 24 h dispute window from activation. No dispute \u2192 Accepted.",
          "numbersJsonIds": [
            "dispute_window",
            "vote_window",
            "appeal_window"
          ]
        },
        {
          "text": "24",
          "context": "NFT vote: 24 h. Lead of 20 \u2192 decided at once. At the end: lead of 10 \u2192 Decided, else No decision.",
          "numbersJsonIds": [
            "dispute_window",
            "vote_window",
            "appeal_window"
          ]
        },
        {
          "text": "20",
          "context": "NFT vote: 24 h. Lead of 20 \u2192 decided at once. At the end: lead of 10 \u2192 Decided, else No decision.",
          "numbersJsonIds": [
            "vote_instant_margin"
          ]
        },
        {
          "text": "10",
          "context": "NFT vote: 24 h. Lead of 20 \u2192 decided at once. At the end: lead of 10 \u2192 Decided, else No decision.",
          "numbersJsonIds": [
            "vote_end_margin"
          ]
        },
        {
          "text": "24",
          "context": "Appeal / call the swarm: 24 h window. Swarm answers within 6 h + 1 h delivery. At most 3 swarm questions per submission.",
          "numbersJsonIds": [
            "dispute_window",
            "vote_window",
            "appeal_window"
          ]
        },
        {
          "text": "6",
          "context": "Appeal / call the swarm: 24 h window. Swarm answers within 6 h + 1 h delivery. At most 3 swarm questions per submission.",
          "numbersJsonIds": [
            "swarm_answer"
          ]
        },
        {
          "text": "1",
          "context": "Appeal / call the swarm: 24 h window. Swarm answers within 6 h + 1 h delivery. At most 3 swarm questions per submission.",
          "numbersJsonIds": [
            "swarm_answer"
          ]
        },
        {
          "text": "3",
          "context": "Appeal / call the swarm: 24 h window. Swarm answers within 6 h + 1 h delivery. At most 3 swarm questions per submission.",
          "numbersJsonIds": [
            "max_swarm_calls"
          ]
        }
      ],
      "allNumbersMapped": true,
      "exactCardText": true,
      "forbiddenWordHits": [],
      "forbiddenWordHitCount": 0,
      "fontsUsed": [
        "Quicksand 700",
        "IBM Plex Mono 600"
      ],
      "smallestTextSizePx": 24,
      "lowestContrastRatio": 7.576,
      "bboxStatus": "PASS",
      "pngSha256": "0077bd39e63262611ca941164df141f7035cb59e8911bee632375411638816f6",
      "svgSha256": "6fa125f65d7e522c93148ab32ac973a054e5c5b7b763452f89dbef2c69445375"
    },
    "05-where-100-goes-1080x1920": {
      "file": "cards/05-where-100-goes-1080x1920.png",
      "width": 1080,
      "height": 1920,
      "format": "PNG",
      "colorSpace": "sRGB",
      "textStrings": [
        "Where $100 Goes",
        "No dispute, no stake: doer $90 \u00b7 treasury $10",
        "No dispute, full stake: doer $94 \u00b7 buyback wallet $5.50 \u00b7 treasury $0.50",
        "No dispute, power half the reward: doer $92 \u00b7 buyback wallet $6.50 \u00b7 treasury $1.50",
        "No dispute, power 5% of the reward: doer $90.20 \u00b7 buyback wallet $7.40 \u00b7 treasury $2.40",
        "Dispute, NFT right, no stake: doer $90 \u00b7 NFT voters $5 \u00b7 treasury $5",
        "Dispute, NFT right, full stake: doer $94 \u00b7 NFT voters $5 \u00b7 buyback wallet $0.50 \u00b7 treasury $0.50",
        "Fee = 10% of the reward = $10. NFT wrong or no decision: their $5 goes to the treasury (no stake) or to the buyback wallet (stake). Reward in YOLO: the treasury part burns. ETH, USDC and IMD go to the buyback wallet; only YOLO burns.",
        "moneycanbuy.fun",
        "5/12"
      ],
      "textMetrics": [
        {
          "text": "Where $100 Goes",
          "font": "Quick",
          "sizePx": 56,
          "minimumSizePx": 56,
          "numericRuns": [
            {
              "text": "$100",
              "font": "Mono",
              "size": 56
            }
          ]
        },
        {
          "text": "No dispute, no stake: doer $90 \u00b7 treasury $10",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "$90",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$10",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "No dispute, full stake: doer $94 \u00b7 buyback wallet $5.50 \u00b7 treasury $0.50",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "$94",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$5.50",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$0.50",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "No dispute, power half the reward: doer $92 \u00b7 buyback wallet $6.50 \u00b7 treasury $1.50",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "$92",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$6.50",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$1.50",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "No dispute, power 5% of the reward: doer $90.20 \u00b7 buyback wallet $7.40 \u00b7 treasury $2.40",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "5%",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$90.20",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$7.40",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$2.40",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "Dispute, NFT right, no stake: doer $90 \u00b7 NFT voters $5 \u00b7 treasury $5",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "$90",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$5",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$5",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "Dispute, NFT right, full stake: doer $94 \u00b7 NFT voters $5 \u00b7 buyback wallet $0.50 \u00b7 treasury $0.50",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "$94",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$5",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$0.50",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$0.50",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "Fee = 10% of the reward = $10. NFT wrong or no decision: their $5 goes to the treasury (no stake) or to the buyback wallet (stake). Reward in YOLO: the treasury part burns. ETH, USDC and IMD go to the buyback wallet; only YOLO burns.",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "10%",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$10.",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "$5",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "moneycanbuy.fun",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": []
        },
        {
          "text": "5/12",
          "font": "Mono",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "5",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "12",
              "font": "Mono",
              "size": 24
            }
          ]
        }
      ],
      "numbers": [
        {
          "text": "$100",
          "context": "Where $100 Goes",
          "numbersJsonIds": [
            "reward_example"
          ]
        },
        {
          "text": "$90",
          "context": "No dispute, no stake: doer $90 \u00b7 treasury $10",
          "numbersJsonIds": [
            "doer_base",
            "split_row1",
            "split_row5"
          ]
        },
        {
          "text": "$10",
          "context": "No dispute, no stake: doer $90 \u00b7 treasury $10",
          "numbersJsonIds": [
            "fee",
            "split_row1"
          ]
        },
        {
          "text": "$94",
          "context": "No dispute, full stake: doer $94 \u00b7 buyback wallet $5.50 \u00b7 treasury $0.50",
          "numbersJsonIds": [
            "doer_base",
            "split_row2",
            "split_row6"
          ]
        },
        {
          "text": "$5.50",
          "context": "No dispute, full stake: doer $94 \u00b7 buyback wallet $5.50 \u00b7 treasury $0.50",
          "numbersJsonIds": [
            "split_row2"
          ]
        },
        {
          "text": "$0.50",
          "context": "No dispute, full stake: doer $94 \u00b7 buyback wallet $5.50 \u00b7 treasury $0.50",
          "numbersJsonIds": [
            "split_row2",
            "split_row6"
          ]
        },
        {
          "text": "$92",
          "context": "No dispute, power half the reward: doer $92 \u00b7 buyback wallet $6.50 \u00b7 treasury $1.50",
          "numbersJsonIds": [
            "split_row3"
          ]
        },
        {
          "text": "$6.50",
          "context": "No dispute, power half the reward: doer $92 \u00b7 buyback wallet $6.50 \u00b7 treasury $1.50",
          "numbersJsonIds": [
            "split_row3"
          ]
        },
        {
          "text": "$1.50",
          "context": "No dispute, power half the reward: doer $92 \u00b7 buyback wallet $6.50 \u00b7 treasury $1.50",
          "numbersJsonIds": [
            "split_row3"
          ]
        },
        {
          "text": "5%",
          "context": "No dispute, power 5% of the reward: doer $90.20 \u00b7 buyback wallet $7.40 \u00b7 treasury $2.40",
          "numbersJsonIds": [
            "nft_share",
            "split_row4",
            "split_row5",
            "split_row6"
          ]
        },
        {
          "text": "$90.20",
          "context": "No dispute, power 5% of the reward: doer $90.20 \u00b7 buyback wallet $7.40 \u00b7 treasury $2.40",
          "numbersJsonIds": [
            "split_row4"
          ]
        },
        {
          "text": "$7.40",
          "context": "No dispute, power 5% of the reward: doer $90.20 \u00b7 buyback wallet $7.40 \u00b7 treasury $2.40",
          "numbersJsonIds": [
            "split_row4"
          ]
        },
        {
          "text": "$2.40",
          "context": "No dispute, power 5% of the reward: doer $90.20 \u00b7 buyback wallet $7.40 \u00b7 treasury $2.40",
          "numbersJsonIds": [
            "split_row4"
          ]
        },
        {
          "text": "$90",
          "context": "Dispute, NFT right, no stake: doer $90 \u00b7 NFT voters $5 \u00b7 treasury $5",
          "numbersJsonIds": [
            "doer_base",
            "split_row1",
            "split_row5"
          ]
        },
        {
          "text": "$5",
          "context": "Dispute, NFT right, no stake: doer $90 \u00b7 NFT voters $5 \u00b7 treasury $5",
          "numbersJsonIds": [
            "nft_share",
            "split_row4",
            "split_row5",
            "split_row6"
          ]
        },
        {
          "text": "$5",
          "context": "Dispute, NFT right, no stake: doer $90 \u00b7 NFT voters $5 \u00b7 treasury $5",
          "numbersJsonIds": [
            "nft_share",
            "split_row4",
            "split_row5",
            "split_row6"
          ]
        },
        {
          "text": "$94",
          "context": "Dispute, NFT right, full stake: doer $94 \u00b7 NFT voters $5 \u00b7 buyback wallet $0.50 \u00b7 treasury $0.50",
          "numbersJsonIds": [
            "doer_base",
            "split_row2",
            "split_row6"
          ]
        },
        {
          "text": "$5",
          "context": "Dispute, NFT right, full stake: doer $94 \u00b7 NFT voters $5 \u00b7 buyback wallet $0.50 \u00b7 treasury $0.50",
          "numbersJsonIds": [
            "nft_share",
            "split_row4",
            "split_row5",
            "split_row6"
          ]
        },
        {
          "text": "$0.50",
          "context": "Dispute, NFT right, full stake: doer $94 \u00b7 NFT voters $5 \u00b7 buyback wallet $0.50 \u00b7 treasury $0.50",
          "numbersJsonIds": [
            "split_row2",
            "split_row6"
          ]
        },
        {
          "text": "$0.50",
          "context": "Dispute, NFT right, full stake: doer $94 \u00b7 NFT voters $5 \u00b7 buyback wallet $0.50 \u00b7 treasury $0.50",
          "numbersJsonIds": [
            "split_row2",
            "split_row6"
          ]
        },
        {
          "text": "10%",
          "context": "Fee = 10% of the reward = $10. NFT wrong or no decision: their $5 goes to the treasury (no stake) or to the buyback wallet (stake). Reward in YOLO: the treasury part burns. ETH, USDC and IMD go to the buyback wallet; only YOLO burns.",
          "numbersJsonIds": [
            "fee",
            "split_row1"
          ]
        },
        {
          "text": "$10",
          "context": "Fee = 10% of the reward = $10. NFT wrong or no decision: their $5 goes to the treasury (no stake) or to the buyback wallet (stake). Reward in YOLO: the treasury part burns. ETH, USDC and IMD go to the buyback wallet; only YOLO burns.",
          "numbersJsonIds": [
            "fee",
            "split_row1"
          ]
        },
        {
          "text": "$5",
          "context": "Fee = 10% of the reward = $10. NFT wrong or no decision: their $5 goes to the treasury (no stake) or to the buyback wallet (stake). Reward in YOLO: the treasury part burns. ETH, USDC and IMD go to the buyback wallet; only YOLO burns.",
          "numbersJsonIds": [
            "nft_share",
            "split_row4",
            "split_row5",
            "split_row6"
          ]
        }
      ],
      "allNumbersMapped": true,
      "exactCardText": true,
      "forbiddenWordHits": [],
      "forbiddenWordHitCount": 0,
      "fontsUsed": [
        "Quicksand 700",
        "IBM Plex Mono 600"
      ],
      "smallestTextSizePx": 24,
      "lowestContrastRatio": 7.576,
      "bboxStatus": "PASS",
      "pngSha256": "0dacbede7f792ff8587564252e37888d24f6821eda59b80dc455640c6991f996",
      "svgSha256": "a1bea1b97d28d7fcab0b57de126babde4c589cc5bc30a1edac11aa682230b764"
    },
    "07-will-do-1080x1920": {
      "file": "cards/07-will-do-1080x1920.png",
      "width": 1080,
      "height": 1920,
      "format": "PNG",
      "colorSpace": "sRGB",
      "textStrings": [
        "WILL DO / WON'T DO",
        "Entry of 100 YOLO: 90 to the side's pool \u00b7",
        "5 burn at the outcome \u00b7",
        "5 wait for the outcome.",
        "Weight = (time left / whole term)\u00b2, term counted from dare creation. Early entries weigh more.",
        "Entries until the deadline, paused while a submission is under review, no withdrawal, open to anyone.",
        "Done \u2192 WILL DO takes its 90 + the losers' pool by weight. The waiting 5% \u2192 2.5% to the author, 2.5% to the doer.",
        "Not done \u2192 WON'T DO wins. The waiting 5% burns.",
        "Nobody on the winning side: done \u2192 the losers' pool half to the author, half to the doer; not done \u2192 all to the author. Losers get nothing.",
        "Cancelled (Unwound) \u2192 every entry back in full.",
        "100 on WILL DO, 5 on WON'T DO, done \u2192 90 + 4.5 = 94.5.",
        "moneycanbuy.fun",
        "7/12"
      ],
      "textMetrics": [
        {
          "text": "WILL DO / WON'T DO",
          "font": "Quick",
          "sizePx": 56,
          "minimumSizePx": 56,
          "numericRuns": []
        },
        {
          "text": "Entry of 100 YOLO: 90 to the side's pool \u00b7",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "100",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "90",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "5 burn at the outcome \u00b7",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "5",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "5 wait for the outcome.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "5",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Weight = (time left / whole term)\u00b2, term counted from dare creation. Early entries weigh more.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "\u00b2",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Entries until the deadline, paused while a submission is under review, no withdrawal, open to anyone.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "Done \u2192 WILL DO takes its 90 + the losers' pool by weight. The waiting 5% \u2192 2.5% to the author, 2.5% to the doer.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "90",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "5%",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "2.5%",
              "font": "Mono",
              "size": 32
            },
            {
              "text": "2.5%",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Not done \u2192 WON'T DO wins. The waiting 5% burns.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": [
            {
              "text": "5%",
              "font": "Mono",
              "size": 32
            }
          ]
        },
        {
          "text": "Nobody on the winning side: done \u2192 the losers' pool half to the author, half to the doer; not done \u2192 all to the author. Losers get nothing.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "Cancelled (Unwound) \u2192 every entry back in full.",
          "font": "Quick",
          "sizePx": 32,
          "minimumSizePx": 32,
          "numericRuns": []
        },
        {
          "text": "100 on WILL DO, 5 on WON'T DO, done \u2192 90 + 4.5 = 94.5.",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "100",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "5",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "90",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "4.5",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "94.5.",
              "font": "Mono",
              "size": 24
            }
          ]
        },
        {
          "text": "moneycanbuy.fun",
          "font": "Quick",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": []
        },
        {
          "text": "7/12",
          "font": "Mono",
          "sizePx": 24,
          "minimumSizePx": 24,
          "numericRuns": [
            {
              "text": "7",
              "font": "Mono",
              "size": 24
            },
            {
              "text": "12",
              "font": "Mono",
              "size": 24
            }
          ]
        }
      ],
      "numbers": [
        {
          "text": "100",
          "context": "Entry of 100 YOLO: 90 to the side's pool \u00b7",
          "numbersJsonIds": [
            "reward_example",
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "90",
          "context": "Entry of 100 YOLO: 90 to the side's pool \u00b7",
          "numbersJsonIds": [
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "5",
          "context": "5 burn at the outcome \u00b7",
          "numbersJsonIds": [
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "5",
          "context": "5 wait for the outcome.",
          "numbersJsonIds": [
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "\u00b2",
          "context": "Weight = (time left / whole term)\u00b2, term counted from dare creation. Early entries weigh more.",
          "numbersJsonIds": [
            "predict_weight"
          ]
        },
        {
          "text": "90",
          "context": "Done \u2192 WILL DO takes its 90 + the losers' pool by weight. The waiting 5% \u2192 2.5% to the author, 2.5% to the doer.",
          "numbersJsonIds": [
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "5%",
          "context": "Done \u2192 WILL DO takes its 90 + the losers' pool by weight. The waiting 5% \u2192 2.5% to the author, 2.5% to the doer.",
          "numbersJsonIds": [
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "2.5%",
          "context": "Done \u2192 WILL DO takes its 90 + the losers' pool by weight. The waiting 5% \u2192 2.5% to the author, 2.5% to the doer.",
          "numbersJsonIds": [
            "predict_defer"
          ]
        },
        {
          "text": "2.5%",
          "context": "Done \u2192 WILL DO takes its 90 + the losers' pool by weight. The waiting 5% \u2192 2.5% to the author, 2.5% to the doer.",
          "numbersJsonIds": [
            "predict_defer"
          ]
        },
        {
          "text": "5%",
          "context": "Not done \u2192 WON'T DO wins. The waiting 5% burns.",
          "numbersJsonIds": [
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "100",
          "context": "100 on WILL DO, 5 on WON'T DO, done \u2192 90 + 4.5 = 94.5.",
          "numbersJsonIds": [
            "reward_example",
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "5",
          "context": "100 on WILL DO, 5 on WON'T DO, done \u2192 90 + 4.5 = 94.5.",
          "numbersJsonIds": [
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "90",
          "context": "100 on WILL DO, 5 on WON'T DO, done \u2192 90 + 4.5 = 94.5.",
          "numbersJsonIds": [
            "predict_entry",
            "predict_example"
          ]
        },
        {
          "text": "4.5",
          "context": "100 on WILL DO, 5 on WON'T DO, done \u2192 90 + 4.5 = 94.5.",
          "numbersJsonIds": [
            "predict_example"
          ]
        },
        {
          "text": "94.5",
          "context": "100 on WILL DO, 5 on WON'T DO, done \u2192 90 + 4.5 = 94.5.",
          "numbersJsonIds": [
            "predict_example"
          ]
        }
      ],
      "allNumbersMapped": true,
      "exactCardText": true,
      "forbiddenWordHits": [],
      "forbiddenWordHitCount": 0,
      "fontsUsed": [
        "Quicksand 700",
        "IBM Plex Mono 600"
      ],
      "smallestTextSizePx": 24,
      "lowestContrastRatio": 7.576,
      "bboxStatus": "PASS",
      "pngSha256": "5e2e8766772e4943a12923182e709d1fb66660d4fc618ef322c1806d80da275d",
      "svgSha256": "55497802d24c31287131d817c6f2cffa2afb33ea2e270f888d7fc1b7f5f2a91d"
    },
    "contact-sheet": {
      "file": "contact-sheet.png",
      "width": 1520,
      "height": 2208,
      "format": "PNG",
      "colorSpace": "sRGB",
      "textStrings": [
        "01-lifecycle-\n1080x1350.png",
        "02-money-in-\n1080x1350.png",
        "03-dispute-\n1080x1350.png",
        "04-loser-bond-\n1080x1350.png",
        "05-where-100-goes-\n1080x1350.png",
        "06-doer-stake-\n1080x1350.png",
        "07-will-do-\n1080x1350.png",
        "08-fees-\n1080x1350.png",
        "01-lifecycle-\n1080x1920.png",
        "05-where-100-goes-\n1080x1920.png",
        "07-will-do-\n1080x1920.png"
      ],
      "numbers": "Filenames identify delivered outputs; card text and numbers audited individually.",
      "forbiddenWordHitCount": 0,
      "fontsUsed": [
        "Quicksand 700"
      ],
      "smallestTextSizePx": 24,
      "lowestContrastRatio": 8.409,
      "bboxStatus": "PASS",
      "pngSha256": "b5ca3be157485b672e06ff9ebd274975367f486b6fa0f505c61eed5359b9f893"
    }
  },
  "specConflicts": [
    "Card 2 exact required copy includes forbidden phrase: No creation fee.",
    "Supplied headings are titles, not questions.",
    "Several required percentages omit their explicit base.",
    "Subpixel/narrow payout segments cannot contain 24px labels; exact amounts are printed above their scaled bars."
  ]
}
