{
  "schemaVersion": 1,
  "generatedAt": "2026-08-23T18:00:00Z",
  "notice": "Fictional prototype data. Usernames, posts, comments, metrics, and quotations are invented for the CancelBlock interaction demo.",
  "roots": [
    {
      "id": "root_lane-war",
      "kind": "thread",
      "communityId": "community_cancelblock",
      "createdAt": "2026-08-23T13:59:00Z"
    }
  ],
  "viewer": {
    "userId": "u_nora",
    "preferences": {
      "minimumAccountAgeDays": 0,
      "minimumKarma": -100,
      "hideBots": false,
      "authorScope": "all",
      "sort": "thread",
      "voteScope": "global",
      "dislikedAction": "downrank",
      "preserveReplies": true
    },
    "directBlockedUserIds": ["u_bot"],
    "followingUserIds": ["u_datawonk", "u_busmom"],
    "reactions": {
      "c_numbers": 1,
      "c_bus": 1,
      "c_troll_top": -1
    },
    "subscriptions": [
      {
        "blocklistId": "bl_evidence",
        "mode": "suggest"
      }
    ],
    "ownBlocklistPublished": false
  },
  "users": [
    {
      "id": "u_nora",
      "username": "nopeope",
      "displayName": "Nora Nopes",
      "createdAt": "2019-04-12T16:10:00Z",
      "avatar": { "kind": "monogram", "label": "NN", "background": "#e1251b", "foreground": "#ffffff" },
      "karma": { "post": 6840, "comment": 11580, "total": 18420 },
      "bio": "Curating the timeline I deserve.",
      "isBot": false
    },
    {
      "id": "u_orangechief",
      "username": "many_such_cases",
      "displayName": "VERY Stable Poster",
      "createdAt": "2015-06-16T12:00:00Z",
      "avatar": {
        "kind": "artCrop",
        "src": "assets/cancelblock-stamp-hero-960.webp",
        "backgroundSize": "340% auto",
        "backgroundPosition": "24% 35%",
        "alt": "Cartoon political caricature of Donald Trump"
      },
      "karma": { "post": 84500, "comment": 15000, "total": 99500 },
      "bio": "Parody account in a fictional dataset. Not a real person or quotation source.",
      "isBot": false,
      "badges": ["parody"]
    },
    {
      "id": "u_datawonk",
      "username": "SpreadsheetPatriot",
      "displayName": "Dana Metrics",
      "createdAt": "2016-02-03T09:30:00Z",
      "avatar": { "kind": "monogram", "label": "DM", "background": "#174f98", "foreground": "#ffffff" },
      "karma": { "post": 13210, "comment": 34792, "total": 48002 },
      "bio": "If the denominator is missing, so am I.",
      "isBot": false,
      "badges": ["source-checker"]
    },
    {
      "id": "u_busmom",
      "username": "TransitMom84",
      "displayName": "Rae on the 22",
      "createdAt": "2018-09-21T18:25:00Z",
      "avatar": { "kind": "monogram", "label": "R22", "background": "#f6c344", "foreground": "#10100f" },
      "karma": { "post": 2990, "comment": 9790, "total": 12780 },
      "bio": "Two kids, one bus pass, zero patience for fantasy schedules.",
      "isBot": false
    },
    {
      "id": "u_liberty",
      "username": "NoStepOnCar",
      "displayName": "Miles Freeway",
      "createdAt": "2021-01-09T06:45:00Z",
      "avatar": { "kind": "monogram", "label": "MF", "background": "#f08b24", "foreground": "#10100f" },
      "karma": { "post": 1200, "comment": 6000, "total": 7200 },
      "bio": "My sedan is not a policy failure.",
      "isBot": false
    },
    {
      "id": "u_urbanist",
      "username": "BollardBae",
      "displayName": "Liv Streets",
      "createdAt": "2020-05-27T14:14:00Z",
      "avatar": { "kind": "monogram", "label": "LS", "background": "#45a56e", "foreground": "#10100f" },
      "karma": { "post": 8100, "comment": 22900, "total": 31000 },
      "bio": "Protected intersection enjoyer.",
      "isBot": false
    },
    {
      "id": "u_suburban",
      "username": "CulDeSacDad",
      "displayName": "Gary Garage",
      "createdAt": "2017-11-02T20:05:00Z",
      "avatar": { "kind": "monogram", "label": "GG", "background": "#7d6d5d", "foreground": "#ffffff" },
      "karma": { "post": 2100, "comment": 6700, "total": 8800 },
      "bio": "I have receipts, a minivan, and questions.",
      "isBot": false
    },
    {
      "id": "u_troll",
      "username": "ActuallyYourMom",
      "displayName": "Definitely Civil",
      "createdAt": "2026-08-20T03:20:00Z",
      "avatar": { "kind": "monogram", "label": "!?", "background": "#10100f", "foreground": "#eaff45" },
      "karma": { "post": -12, "comment": -30, "total": -42 },
      "bio": "Here to improve the discourse by making it worse.",
      "isBot": false,
      "badges": ["new-account"]
    },
    {
      "id": "u_bot",
      "username": "CivicTruthBot",
      "displayName": "Civic Truth Bot",
      "createdAt": "2026-08-21T08:00:00Z",
      "avatar": { "kind": "monogram", "label": "01", "background": "#a9a9a9", "foreground": "#10100f" },
      "karma": { "post": 4, "comment": 8, "total": 12 },
      "bio": "Automated account used to demonstrate bot filtering.",
      "isBot": true,
      "badges": ["bot", "new-account"]
    },
    {
      "id": "u_moderate",
      "username": "RadicalCentrist",
      "displayName": "Pat Bothways",
      "createdAt": "2014-03-18T10:10:00Z",
      "avatar": { "kind": "monogram", "label": "PB", "background": "#8a63b8", "foreground": "#ffffff" },
      "karma": { "post": 5300, "comment": 17700, "total": 23000 },
      "bio": "What if everyone is wrong by exactly 50 percent?",
      "isBot": false
    },
    {
      "id": "u_academic",
      "username": "CitationNeeded",
      "displayName": "Dr. Foot Note",
      "createdAt": "2012-07-30T15:40:00Z",
      "avatar": { "kind": "monogram", "label": "FN", "background": "#24465f", "foreground": "#ffffff" },
      "karma": { "post": 9500, "comment": 31500, "total": 41000 },
      "bio": "Peer review is not a personal attack.",
      "isBot": false,
      "badges": ["longtime-user"]
    },
    {
      "id": "u_newcomer",
      "username": "FirstWeekHere",
      "displayName": "Jo New",
      "createdAt": "2026-08-18T19:22:00Z",
      "avatar": { "kind": "monogram", "label": "JN", "background": "#9ad9d0", "foreground": "#10100f" },
      "karma": { "post": 11, "comment": 62, "total": 73 },
      "bio": "Actually asking.",
      "isBot": false,
      "badges": ["new-account"]
    },
    {
      "id": "u_tenant",
      "username": "TenantUnionEnjoyer",
      "displayName": "Tess Renter",
      "createdAt": "2019-10-01T11:45:00Z",
      "avatar": { "kind": "monogram", "label": "TR", "background": "#cc4d78", "foreground": "#ffffff" },
      "karma": { "post": 4200, "comment": 11200, "total": 15400 },
      "bio": "Housing is part of transportation policy. Sorry in advance.",
      "isBot": false
    },
    {
      "id": "u_taxpayer",
      "username": "TaxedEnoughAlready",
      "displayName": "Buck Ledger",
      "createdAt": "2016-12-11T07:05:00Z",
      "avatar": { "kind": "monogram", "label": "$", "background": "#23643e", "foreground": "#ffffff" },
      "karma": { "post": 7100, "comment": 13000, "total": 20100 },
      "bio": "Show me the invoice.",
      "isBot": false
    },
    {
      "id": "u_comedian",
      "username": "ReplyGuyEmeritus",
      "displayName": "Chip In",
      "createdAt": "2022-04-01T12:01:00Z",
      "avatar": { "kind": "monogram", "label": "CI", "background": "#df71d6", "foreground": "#10100f" },
      "karma": { "post": 606, "comment": 6060, "total": 6666 },
      "bio": "I brought one joke and it is staying until closing time.",
      "isBot": false
    }
  ],
  "publishedBlocklists": [
    {
      "id": "bl_nora_nope",
      "ownerUserId": "u_nora",
      "name": "Nora's artisanal nope list",
      "description": "Direct blocks collected while testing this prototype.",
      "published": false,
      "memberUserIds": ["u_bot"],
      "subscriberCount": 0,
      "updatedAt": "2026-08-23T17:30:00Z",
      "tags": ["personal", "editable"]
    },
    {
      "id": "bl_evidence",
      "ownerUserId": "u_datawonk",
      "name": "Evidence Allergy Watchlist",
      "description": "High-confidence posters with low-confidence links.",
      "published": true,
      "memberUserIds": ["u_orangechief", "u_troll", "u_bot"],
      "subscriberCount": 2460,
      "updatedAt": "2026-08-22T12:40:00Z",
      "tags": ["misinformation", "ragebait"]
    },
    {
      "id": "bl_replyguys",
      "ownerUserId": "u_busmom",
      "name": "Reply Guys Who Need a Snack",
      "description": "For when every ordinary sentence becomes a constitutional crisis.",
      "published": true,
      "memberUserIds": ["u_troll", "u_comedian", "u_orangechief"],
      "subscriberCount": 11420,
      "updatedAt": "2026-08-23T08:15:00Z",
      "tags": ["trolling", "quality-of-life"]
    },
    {
      "id": "bl_carfree",
      "ownerUserId": "u_liberty",
      "name": "People Coming For Your Driveway",
      "description": "A lovingly curated collection of bollard enthusiasts.",
      "published": true,
      "memberUserIds": ["u_urbanist", "u_busmom", "u_tenant"],
      "subscriberCount": 885,
      "updatedAt": "2026-08-20T23:12:00Z",
      "tags": ["cars", "politics"]
    },
    {
      "id": "bl_everybody",
      "ownerUserId": "u_moderate",
      "name": "Both Sides of My Last Nerve",
      "description": "Equal-opportunity muting for people who type in absolutes.",
      "published": true,
      "memberUserIds": ["u_orangechief", "u_troll", "u_tenant", "u_taxpayer"],
      "subscriberCount": 613,
      "updatedAt": "2026-08-19T16:50:00Z",
      "tags": ["cross-partisan", "peace-and-quiet"]
    }
  ],
  "content": [
    {
      "id": "p_lane-war",
      "kind": "post",
      "ownerUserId": "u_orangechief",
      "rootId": "root_lane-war",
      "parentId": "root_lane-war",
      "title": "The mayor's secret plan will ELIMINATE every parking spot by Tuesday!!!",
      "preview": "A screenshot of a screenshot says downtown parking is about to become history.",
      "bodyMarkdown": "I have obtained a **very official screenshot of a screenshot**. The downtown mobility pilot will apparently:\n\n- Remove 6,000 parking spaces\n- Replace delivery trucks with cargo unicycles\n- Ignore my completely normal 4:00 a.m. email\n\n> Nobody has ever seen a bus lane this radical.\n\nThis root post and every quotation in this thread are fictional parody data.",
      "createdAt": "2026-08-23T14:00:00Z",
      "tags": ["local-politics", "transportation", "parody"],
      "metrics": { "likes": 1240, "dislikes": 1198, "reports": 34, "awards": 9 },
      "sampleReactions": { "u_nora": 0, "u_datawonk": -1, "u_busmom": -1, "u_liberty": 1, "u_urbanist": -1, "u_suburban": 1, "u_troll": 1, "u_moderate": -1, "u_academic": -1, "u_taxpayer": 1, "u_comedian": 1 },
      "signals": { "toxicity": 0.63, "spamRisk": 0.18 }
    },
    {
      "id": "c_numbers",
      "kind": "comment",
      "ownerUserId": "u_datawonk",
      "rootId": "root_lane-war",
      "parentId": "p_lane-war",
      "preview": "The actual proposal removes 146 curb spaces, not 6,000.",
      "bodyMarkdown": "The actual staff report says **146 curb spaces**, phased over eighteen months, with 91 replacement spaces in nearby garages.\n\n`146 / 12,400 = 1.18%` of the city's marked public parking inventory. Debate that proposal, not the screenshot's fan fiction.",
      "createdAt": "2026-08-23T14:08:00Z",
      "metrics": { "likes": 892, "dislikes": 201, "reports": 2, "awards": 14 },
      "sampleReactions": { "u_nora": 1, "u_busmom": 1, "u_liberty": -1, "u_urbanist": 1, "u_suburban": -1, "u_troll": -1, "u_moderate": 1, "u_academic": 1, "u_taxpayer": 1 },
      "signals": { "toxicity": 0.08, "spamRisk": 0.02 }
    },
    {
      "id": "c_numbers_rounding",
      "kind": "comment",
      "ownerUserId": "u_orangechief",
      "rootId": "root_lane-war",
      "parentId": "c_numbers",
      "preview": "146 is basically 6,000 if you count the spaces people feel in their hearts.",
      "bodyMarkdown": "146 is basically 6,000 if you count all the spaces people **feel** in their hearts. Also garages are vertical parking taxes.",
      "createdAt": "2026-08-23T14:12:00Z",
      "metrics": { "likes": 390, "dislikes": 744, "reports": 11, "awards": 3 },
      "sampleReactions": { "u_datawonk": -1, "u_busmom": -1, "u_liberty": 1, "u_urbanist": -1, "u_troll": 1, "u_comedian": 1 },
      "signals": { "toxicity": 0.41, "spamRisk": 0.12 }
    },
    {
      "id": "c_math_bias",
      "kind": "comment",
      "ownerUserId": "u_troll",
      "rootId": "root_lane-war",
      "parentId": "c_numbers_rounding",
      "preview": "Math has a downtown-liberal bias.",
      "bodyMarkdown": "Math has a downtown-liberal bias. Do your own geometry, sheeple.",
      "createdAt": "2026-08-23T14:14:00Z",
      "metrics": { "likes": 72, "dislikes": 403, "reports": 19, "awards": 1 },
      "sampleReactions": { "u_datawonk": -1, "u_liberty": 1, "u_urbanist": -1, "u_suburban": -1, "u_comedian": 1 },
      "signals": { "toxicity": 0.72, "spamRisk": 0.42 }
    },
    {
      "id": "c_arithmetic",
      "kind": "comment",
      "ownerUserId": "u_academic",
      "rootId": "root_lane-war",
      "parentId": "c_math_bias",
      "preview": "Arithmetic is not zoned by political affiliation.",
      "bodyMarkdown": "Arithmetic is not zoned by political affiliation. It is, however, routinely displaced by confident punctuation.",
      "createdAt": "2026-08-23T14:16:00Z",
      "metrics": { "likes": 310, "dislikes": 24, "reports": 0, "awards": 8 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": 1, "u_liberty": -1, "u_urbanist": 1, "u_moderate": 1, "u_comedian": 1 },
      "signals": { "toxicity": 0.15, "spamRisk": 0.01 }
    },
    {
      "id": "c_methodology",
      "kind": "comment",
      "ownerUserId": "u_academic",
      "rootId": "root_lane-war",
      "parentId": "c_numbers",
      "preview": "The denominator depends on whether private garages are included.",
      "bodyMarkdown": "Small methodology note: the 12,400 denominator includes municipal lots but not private garages. Using curb spaces alone produces **4.7%**, not 1.18%. The original 6,000 claim is still unsupported.",
      "createdAt": "2026-08-23T14:18:00Z",
      "metrics": { "likes": 420, "dislikes": 93, "reports": 0, "awards": 6 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": 1, "u_liberty": -1, "u_urbanist": 1, "u_suburban": 1, "u_moderate": 1 },
      "signals": { "toxicity": 0.04, "spamRisk": 0.01 }
    },
    {
      "id": "c_process",
      "kind": "comment",
      "ownerUserId": "u_liberty",
      "rootId": "root_lane-war",
      "parentId": "c_methodology",
      "preview": "Fine, but why was the meeting at 2 p.m. on a Wednesday?",
      "bodyMarkdown": "Fine, but why was the hearing at 2 p.m. on a Wednesday? A smaller number can still come from a bad process.",
      "createdAt": "2026-08-23T14:23:00Z",
      "metrics": { "likes": 277, "dislikes": 120, "reports": 1, "awards": 2 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": 1, "u_urbanist": 1, "u_suburban": 1, "u_moderate": 1, "u_academic": 1, "u_tenant": 1 },
      "signals": { "toxicity": 0.11, "spamRisk": 0.01 }
    },
    {
      "id": "c_both",
      "kind": "comment",
      "ownerUserId": "u_moderate",
      "rootId": "root_lane-war",
      "parentId": "c_process",
      "preview": "This is the first comment in the branch that could survive contact with a meeting agenda.",
      "bodyMarkdown": "This is the first comment in the branch that could survive contact with a meeting agenda. Put evening hearings in the pilot too.",
      "createdAt": "2026-08-23T14:27:00Z",
      "metrics": { "likes": 188, "dislikes": 61, "reports": 0, "awards": 1 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": 1, "u_liberty": 1, "u_suburban": 1, "u_tenant": 1, "u_taxpayer": 1 },
      "signals": { "toxicity": 0.06, "spamRisk": 0.01 }
    },
    {
      "id": "c_bus",
      "kind": "comment",
      "ownerUserId": "u_busmom",
      "rootId": "root_lane-war",
      "parentId": "p_lane-war",
      "preview": "My bus currently spends twelve minutes trapped behind cars circling for parking.",
      "bodyMarkdown": "My bus currently spends twelve minutes trapped behind cars circling for parking. If the pilot makes the 22 reliable enough that I stop building a thirty-minute buffer into daycare pickup, I am willing to try it.",
      "createdAt": "2026-08-23T14:10:00Z",
      "metrics": { "likes": 710, "dislikes": 344, "reports": 3, "awards": 11 },
      "sampleReactions": { "u_nora": 1, "u_datawonk": 1, "u_liberty": -1, "u_urbanist": 1, "u_suburban": -1, "u_moderate": 1, "u_academic": 1, "u_tenant": 1, "u_taxpayer": -1 },
      "signals": { "toxicity": 0.07, "spamRisk": 0.01 }
    },
    {
      "id": "c_kids",
      "kind": "comment",
      "ownerUserId": "u_suburban",
      "rootId": "root_lane-war",
      "parentId": "c_bus",
      "preview": "Some of us need to move three kids and a cello.",
      "bodyMarkdown": "Some of us need to move three kids and a cello. The bus does not come to my neighborhood before first period.",
      "createdAt": "2026-08-23T14:17:00Z",
      "metrics": { "likes": 386, "dislikes": 162, "reports": 0, "awards": 2 },
      "sampleReactions": { "u_busmom": 1, "u_liberty": 1, "u_urbanist": 1, "u_moderate": 1, "u_tenant": 1, "u_taxpayer": 1 },
      "signals": { "toxicity": 0.05, "spamRisk": 0.01 }
    },
    {
      "id": "c_school_reply",
      "kind": "comment",
      "ownerUserId": "u_busmom",
      "rootId": "root_lane-war",
      "parentId": "c_kids",
      "preview": "Then the plan needs feeder service, not a morality play about your minivan.",
      "bodyMarkdown": "Then the plan needs feeder service. That is a real gap, and it is more useful than turning your minivan into a morality play.",
      "createdAt": "2026-08-23T14:20:00Z",
      "metrics": { "likes": 455, "dislikes": 101, "reports": 1, "awards": 4 },
      "sampleReactions": { "u_datawonk": 1, "u_liberty": -1, "u_urbanist": 1, "u_suburban": 1, "u_moderate": 1, "u_academic": 1, "u_tenant": 1 },
      "signals": { "toxicity": 0.19, "spamRisk": 0.01 }
    },
    {
      "id": "c_move",
      "kind": "comment",
      "ownerUserId": "u_troll",
      "rootId": "root_lane-war",
      "parentId": "c_kids",
      "preview": "Have you considered simply moving the cello closer to school?",
      "bodyMarkdown": "Have you considered simply moving the cello closer to school? Subscribe for more urban-planning breakthroughs.",
      "createdAt": "2026-08-23T14:21:00Z",
      "metrics": { "likes": 81, "dislikes": 294, "reports": 9, "awards": 0 },
      "sampleReactions": { "u_busmom": -1, "u_liberty": 1, "u_urbanist": -1, "u_suburban": -1, "u_comedian": 1 },
      "signals": { "toxicity": 0.68, "spamRisk": 0.24 }
    },
    {
      "id": "c_equity",
      "kind": "comment",
      "ownerUserId": "u_tenant",
      "rootId": "root_lane-war",
      "parentId": "c_bus",
      "preview": "Do not call this equitable while rents along the route are climbing.",
      "bodyMarkdown": "Do not call this equitable while rents along the route are climbing. Pair the pilot with bus-lane enforcement **and** tenant protections, or the fastest bus will just deliver displacement faster.",
      "createdAt": "2026-08-23T14:28:00Z",
      "metrics": { "likes": 504, "dislikes": 360, "reports": 6, "awards": 7 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": 1, "u_liberty": -1, "u_urbanist": 1, "u_suburban": -1, "u_moderate": 1, "u_academic": 1, "u_taxpayer": -1 },
      "signals": { "toxicity": 0.16, "spamRisk": 0.02 }
    },
    {
      "id": "c_taxpayer_reply",
      "kind": "comment",
      "ownerUserId": "u_taxpayer",
      "rootId": "root_lane-war",
      "parentId": "c_equity",
      "preview": "Every thread eventually becomes a request for three more programs.",
      "bodyMarkdown": "Every thread eventually becomes a request for three more programs. Which line item pays for this package?",
      "createdAt": "2026-08-23T14:34:00Z",
      "metrics": { "likes": 322, "dislikes": 287, "reports": 2, "awards": 1 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": -1, "u_liberty": 1, "u_urbanist": -1, "u_suburban": 1, "u_moderate": 1, "u_tenant": -1 },
      "signals": { "toxicity": 0.22, "spamRisk": 0.02 }
    },
    {
      "id": "c_tenant_rebuttal",
      "kind": "comment",
      "ownerUserId": "u_tenant",
      "rootId": "root_lane-war",
      "parentId": "c_taxpayer_reply",
      "preview": "Start with the parking subsidy already hiding off-budget.",
      "bodyMarkdown": "Start with the parking subsidy already hiding off-budget. Free curb storage is still a program; it just has excellent branding.",
      "createdAt": "2026-08-23T14:39:00Z",
      "metrics": { "likes": 398, "dislikes": 310, "reports": 4, "awards": 5 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": 1, "u_liberty": -1, "u_urbanist": 1, "u_suburban": -1, "u_moderate": 1, "u_taxpayer": -1 },
      "signals": { "toxicity": 0.24, "spamRisk": 0.01 }
    },
    {
      "id": "c_publicspace",
      "kind": "comment",
      "ownerUserId": "u_liberty",
      "rootId": "root_lane-war",
      "parentId": "p_lane-war",
      "preview": "A curb is public space, so the public should vote before it is repurposed.",
      "bodyMarkdown": "A curb is public space. Repurposing it may be legal and even useful, but the public should get a direct vote before a pilot quietly becomes permanent.",
      "createdAt": "2026-08-23T14:11:00Z",
      "metrics": { "likes": 610, "dislikes": 498, "reports": 3, "awards": 4 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": -1, "u_urbanist": -1, "u_suburban": 1, "u_moderate": 1, "u_academic": -1, "u_tenant": -1, "u_taxpayer": 1 },
      "signals": { "toxicity": 0.13, "spamRisk": 0.01 }
    },
    {
      "id": "c_bollards",
      "kind": "comment",
      "ownerUserId": "u_urbanist",
      "rootId": "root_lane-war",
      "parentId": "c_publicspace",
      "preview": "We do not hold citywide elections for every loading-zone change.",
      "bodyMarkdown": "We do not hold citywide elections for every loading-zone change. A reversible six-month pilot with published before-and-after data is the cautious option.",
      "createdAt": "2026-08-23T14:19:00Z",
      "metrics": { "likes": 590, "dislikes": 430, "reports": 2, "awards": 6 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": 1, "u_liberty": -1, "u_suburban": -1, "u_moderate": 1, "u_academic": 1, "u_tenant": 1, "u_taxpayer": -1 },
      "signals": { "toxicity": 0.10, "spamRisk": 0.01 }
    },
    {
      "id": "c_driveway",
      "kind": "comment",
      "ownerUserId": "u_liberty",
      "rootId": "root_lane-war",
      "parentId": "c_bollards",
      "preview": "Today's loading zone is tomorrow's driveway tribunal.",
      "bodyMarkdown": "Today's loading zone is tomorrow's driveway tribunal. I have seen this movie and the villain is a flexible plastic bollard.",
      "createdAt": "2026-08-23T14:24:00Z",
      "metrics": { "likes": 255, "dislikes": 466, "reports": 5, "awards": 1 },
      "sampleReactions": { "u_busmom": -1, "u_urbanist": -1, "u_suburban": 1, "u_troll": 1, "u_moderate": -1, "u_comedian": 1 },
      "signals": { "toxicity": 0.37, "spamRisk": 0.05 }
    },
    {
      "id": "c_replyguy",
      "kind": "comment",
      "ownerUserId": "u_comedian",
      "rootId": "root_lane-war",
      "parentId": "c_driveway",
      "preview": "The bollard has retained counsel and will not answer further questions.",
      "bodyMarkdown": "The bollard has retained counsel and will not answer further questions.",
      "createdAt": "2026-08-23T14:26:00Z",
      "metrics": { "likes": 346, "dislikes": 55, "reports": 0, "awards": 9 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": 1, "u_liberty": -1, "u_urbanist": 1, "u_suburban": 1, "u_moderate": 1 },
      "signals": { "toxicity": 0.03, "spamRisk": 0.01 }
    },
    {
      "id": "c_budget",
      "kind": "comment",
      "ownerUserId": "u_taxpayer",
      "rootId": "root_lane-war",
      "parentId": "c_publicspace",
      "preview": "The pilot's paint and barriers cost $2.4 million.",
      "bodyMarkdown": "The pilot's paint, barriers, signal work, enforcement, and evaluation total **$2.4 million**. Put that number next to the claimed time savings so voters can judge the tradeoff.",
      "createdAt": "2026-08-23T14:31:00Z",
      "metrics": { "likes": 521, "dislikes": 178, "reports": 0, "awards": 3 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": 1, "u_liberty": 1, "u_urbanist": 1, "u_suburban": 1, "u_moderate": 1, "u_academic": 1, "u_tenant": 1 },
      "signals": { "toxicity": 0.04, "spamRisk": 0.01 }
    },
    {
      "id": "c_pilot",
      "kind": "comment",
      "ownerUserId": "u_moderate",
      "rootId": "root_lane-war",
      "parentId": "p_lane-war",
      "preview": "Run the pilot, publish the targets, and automatically end it if they miss.",
      "bodyMarkdown": "Run the six-month pilot. Publish targets for bus time, retail foot traffic, deliveries, collisions, and displacement. Add an automatic sunset if the targets miss. Everyone gets data and nobody gets a forever-policy by inertia.",
      "createdAt": "2026-08-23T14:13:00Z",
      "metrics": { "likes": 801, "dislikes": 244, "reports": 1, "awards": 12 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": 1, "u_liberty": 1, "u_urbanist": 1, "u_suburban": 1, "u_academic": 1, "u_tenant": 1, "u_taxpayer": 1 },
      "signals": { "toxicity": 0.03, "spamRisk": 0.01 }
    },
    {
      "id": "c_dashboard",
      "kind": "comment",
      "ownerUserId": "u_datawonk",
      "rootId": "root_lane-war",
      "parentId": "c_pilot",
      "preview": "Publish the raw observations, not just a dashboard screenshot.",
      "bodyMarkdown": "Yes, with one addition: publish the raw observations and methodology, not just a dashboard screenshot. Otherwise we will be litigating chart colors instead of outcomes.",
      "createdAt": "2026-08-23T14:22:00Z",
      "metrics": { "likes": 480, "dislikes": 41, "reports": 0, "awards": 4 },
      "sampleReactions": { "u_busmom": 1, "u_liberty": 1, "u_urbanist": 1, "u_suburban": 1, "u_moderate": 1, "u_academic": 1, "u_tenant": 1, "u_taxpayer": 1 },
      "signals": { "toxicity": 0.02, "spamRisk": 0.01 }
    },
    {
      "id": "c_proof",
      "kind": "comment",
      "ownerUserId": "u_orangechief",
      "rootId": "root_lane-war",
      "parentId": "c_pilot",
      "preview": "A sunset clause is how the sun gets into your clause.",
      "bodyMarkdown": "A sunset clause is how the sun gets into your clause. Very dangerous drafting. Many lawyers agree with me privately.",
      "createdAt": "2026-08-23T14:29:00Z",
      "metrics": { "likes": 190, "dislikes": 512, "reports": 12, "awards": 2 },
      "sampleReactions": { "u_datawonk": -1, "u_busmom": -1, "u_liberty": 1, "u_urbanist": -1, "u_troll": 1, "u_moderate": -1, "u_academic": -1, "u_comedian": 1 },
      "signals": { "toxicity": 0.39, "spamRisk": 0.10 }
    },
    {
      "id": "c_bot",
      "kind": "comment",
      "ownerUserId": "u_bot",
      "rootId": "root_lane-war",
      "parentId": "p_lane-war",
      "preview": "ALERT: independent citizens agree at a statistically impossible rate.",
      "bodyMarkdown": "ALERT: 97.3% of INDEPENDENT LOCAL CITIZENS agree this pilot is both communism and surge pricing. Reply `CURB` for seventeen identical links.",
      "createdAt": "2026-08-23T14:15:00Z",
      "metrics": { "likes": 63, "dislikes": 602, "reports": 71, "awards": 0 },
      "sampleReactions": { "u_datawonk": -1, "u_busmom": -1, "u_liberty": -1, "u_urbanist": -1, "u_suburban": -1, "u_moderate": -1, "u_academic": -1, "u_tenant": -1, "u_taxpayer": -1 },
      "signals": { "toxicity": 0.52, "spamRisk": 0.98 }
    },
    {
      "id": "c_bot_mock",
      "kind": "comment",
      "ownerUserId": "u_comedian",
      "rootId": "root_lane-war",
      "parentId": "c_bot",
      "preview": "CURB. I look forward to the seventeen rigorous papers.",
      "bodyMarkdown": "`CURB`\n\nI look forward to the seventeen rigorous papers and one coupon for replacement windshield wipers.",
      "createdAt": "2026-08-23T14:17:30Z",
      "metrics": { "likes": 212, "dislikes": 36, "reports": 0, "awards": 3 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": 1, "u_liberty": 1, "u_urbanist": 1, "u_suburban": 1, "u_moderate": 1 },
      "signals": { "toxicity": 0.04, "spamRisk": 0.01 }
    },
    {
      "id": "c_new_question",
      "kind": "comment",
      "ownerUserId": "u_newcomer",
      "rootId": "root_lane-war",
      "parentId": "p_lane-war",
      "preview": "New here: is there a neutral summary of what is actually in the pilot?",
      "bodyMarkdown": "New here and honestly asking: is there a neutral summary of what is actually in the pilot? I found three PDFs and two of them appear to disagree about delivery hours.",
      "createdAt": "2026-08-23T14:32:00Z",
      "metrics": { "likes": 244, "dislikes": 18, "reports": 0, "awards": 2 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": 1, "u_liberty": 1, "u_urbanist": 1, "u_suburban": 1, "u_moderate": 1, "u_academic": 1 },
      "signals": { "toxicity": 0.01, "spamRisk": 0.03 }
    },
    {
      "id": "c_citation_welcome",
      "kind": "comment",
      "ownerUserId": "u_academic",
      "rootId": "root_lane-war",
      "parentId": "c_new_question",
      "preview": "Start with Appendix B; the conflict is a draft-versus-final issue.",
      "bodyMarkdown": "Start with Appendix B of the final staff report. The delivery-hour conflict is draft versus final, not two active rules. Your account age does not make the question bad.",
      "createdAt": "2026-08-23T14:36:00Z",
      "metrics": { "likes": 350, "dislikes": 12, "reports": 0, "awards": 5 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": 1, "u_liberty": 1, "u_urbanist": 1, "u_suburban": 1, "u_moderate": 1, "u_newcomer": 1 },
      "signals": { "toxicity": 0.01, "spamRisk": 0.01 }
    },
    {
      "id": "c_troll_top",
      "kind": "comment",
      "ownerUserId": "u_troll",
      "rootId": "root_lane-war",
      "parentId": "p_lane-war",
      "preview": "I support whichever side gets angrier when I pretend to support it.",
      "bodyMarkdown": "I support whichever side gets angrier when I pretend to support it. Right now the anti-bus people are winning by punctuation.",
      "createdAt": "2026-08-23T14:35:00Z",
      "metrics": { "likes": 109, "dislikes": 388, "reports": 22, "awards": 0 },
      "sampleReactions": { "u_nora": -1, "u_datawonk": -1, "u_busmom": -1, "u_liberty": -1, "u_urbanist": -1, "u_suburban": -1, "u_moderate": -1, "u_comedian": 1 },
      "signals": { "toxicity": 0.76, "spamRisk": 0.31 }
    },
    {
      "id": "c_troll_reply",
      "kind": "comment",
      "ownerUserId": "u_newcomer",
      "rootId": "root_lane-war",
      "parentId": "c_troll_top",
      "preview": "Is this what people mean by engagement farming?",
      "bodyMarkdown": "Is this what people mean by engagement farming, or is there a more specific term for it?",
      "createdAt": "2026-08-23T14:38:00Z",
      "metrics": { "likes": 171, "dislikes": 9, "reports": 0, "awards": 1 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": 1, "u_urbanist": 1, "u_moderate": 1, "u_academic": 1, "u_comedian": 1 },
      "signals": { "toxicity": 0.02, "spamRisk": 0.01 }
    },
    {
      "id": "c_budget_top",
      "kind": "comment",
      "ownerUserId": "u_taxpayer",
      "rootId": "root_lane-war",
      "parentId": "p_lane-war",
      "preview": "The grant covers construction, not the recurring enforcement cost.",
      "bodyMarkdown": "The regional grant covers construction. It does **not** cover the estimated $610,000 annual enforcement and maintenance cost. That recurring number belongs in every summary.",
      "createdAt": "2026-08-23T14:40:00Z",
      "metrics": { "likes": 664, "dislikes": 118, "reports": 0, "awards": 6 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": 1, "u_liberty": 1, "u_urbanist": 1, "u_suburban": 1, "u_moderate": 1, "u_academic": 1, "u_tenant": 1 },
      "signals": { "toxicity": 0.03, "spamRisk": 0.01 }
    },
    {
      "id": "c_rent",
      "kind": "comment",
      "ownerUserId": "u_tenant",
      "rootId": "root_lane-war",
      "parentId": "c_budget_top",
      "preview": "Also publish who receives the enforcement contracts.",
      "bodyMarkdown": "Agreed. Also publish who receives the enforcement contracts and whether fines recycle into discounted transit passes or disappear into the general fund.",
      "createdAt": "2026-08-23T14:43:00Z",
      "metrics": { "likes": 401, "dislikes": 77, "reports": 0, "awards": 2 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": 1, "u_liberty": 1, "u_urbanist": 1, "u_suburban": 1, "u_moderate": 1, "u_academic": 1, "u_taxpayer": 1 },
      "signals": { "toxicity": 0.02, "spamRisk": 0.01 }
    },
    {
      "id": "c_grant",
      "kind": "comment",
      "ownerUserId": "u_datawonk",
      "rootId": "root_lane-war",
      "parentId": "c_budget_top",
      "preview": "Correct; the current operating estimate has a wide confidence interval.",
      "bodyMarkdown": "Correct. The staff estimate is $610,000, with a range of $430,000–$880,000 depending on camera enforcement. That uncertainty should be visible, not hidden behind one tidy number.",
      "createdAt": "2026-08-23T14:45:00Z",
      "metrics": { "likes": 470, "dislikes": 38, "reports": 0, "awards": 3 },
      "sampleReactions": { "u_busmom": 1, "u_liberty": 1, "u_urbanist": 1, "u_suburban": 1, "u_moderate": 1, "u_academic": 1, "u_tenant": 1, "u_taxpayer": 1 },
      "signals": { "toxicity": 0.01, "spamRisk": 0.01 }
    },
    {
      "id": "c_joke",
      "kind": "comment",
      "ownerUserId": "u_comedian",
      "rootId": "root_lane-war",
      "parentId": "p_lane-war",
      "preview": "I am starting a competing pilot where the bus is one very long parking spot.",
      "bodyMarkdown": "I am starting a competing pilot where the bus is one very long parking spot. Investors may contact me behind the closed food court.",
      "createdAt": "2026-08-23T14:47:00Z",
      "metrics": { "likes": 532, "dislikes": 104, "reports": 1, "awards": 13 },
      "sampleReactions": { "u_datawonk": 1, "u_busmom": 1, "u_liberty": 1, "u_urbanist": 1, "u_suburban": 1, "u_moderate": 1, "u_academic": 1, "u_tenant": 1, "u_taxpayer": 1 },
      "signals": { "toxicity": 0.02, "spamRisk": 0.01 }
    }
  ]
}
