{
  "schema": "ab5d-series-essay/1",
  "identity": {
    "chainId": 1,
    "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
    "projectId": 319,
    "slug": "assorted-positivity-by-steganon",
    "title": "Assorted Positivity",
    "artistCredit": "steganon",
    "artistDossierUrls": [
      "https://ab5d.xyz/artists/steganon/"
    ]
  },
  "revision": 2,
  "researchCutoff": "2026-09-20",
  "status": "published-with-research-limitations",
  "rights": {
    "artwork": {
      "reportedLabel": "CC BY-NC 4.0",
      "category": "creative-commons",
      "termsUrl": "https://creativecommons.org/licenses/by-nc/4.0/",
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S02",
        "S07"
      ],
      "note": "Linked label.",
      "unresolvedConflicts": []
    },
    "code": {
      "reportedLabel": null,
      "category": "unknown",
      "termsUrl": null,
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S02"
      ],
      "note": "No licence statement for the artist's code.",
      "unresolvedConflicts": []
    },
    "thirdParty": [
      {
        "name": "Pixel sorting shader credited to ciphrd",
        "reportedLabel": "MIT (named in a code comment)",
        "category": "custom",
        "termsUrl": null,
        "observedAt": "2026-09-20",
        "sourceIds": [
          "S02"
        ],
        "note": "Attribution line only; full MIT notice absent.",
        "unresolvedConflicts": []
      }
    ]
  },
  "sections": [
    {
      "id": "work-context",
      "heading": "The work and its context",
      "bodyMarkdown": "Assorted Positivity is Art Blocks project 319 on the contract at `0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270`, credited to steganon. The index records 400 invocations against a maximum of 400, the runtime `p5@1.0.0`, an aspect ratio of 0.75, the Playground category, the licence `CC BY-NC 4.0` linked to the Creative Commons deed, and the artist's website [^S02]. The collection page calls it \"An Art Blocks 500 release, in the Playground category\". It shows a fixed edition of 400 and eight attributes with deliberately upbeat names: Prismatic Vibes, Form, Style, Surrounding Style, Symmetrical, Sectional, Epic and E.T. [^S01].\n\nThe mint description explains the technique. Pixel sorting \"isolates segments of pixels and sorts their positions based on any number of criteria\". It is usually a glitch effect applied to photographs, and this project is \"a generative approach to making pixel sorting art without any photographic base\" [^S02]. Each token opens as a noise-built design and then visibly sorts itself for about three-quarters of a minute. Colours slide into drips, ridges and terraced shading, in portrait format, inside one of several frame treatments [^S02][^S06].\n\nThe work also carries a message. \"Integrated into each piece is an uplifting adjective that is visible, yet blended into the art\", conveyed \"by an international visual method of telegraphing words\": Morse code [^S02]. The mint text calls it a \"steganographic message\", a word the artist's pseudonym echoes [^S02]."
    },
    {
      "id": "conception",
      "heading": "Conception and development",
      "bodyMarkdown": "The artist's project page says: \"I cultivated my artistic intentions and ideas for this series at the end of 2021, and I have been immersed in coding the project since Feb 2022\" [^S08]. The motivation is stated in both the page and the mint text: a \"desire to sort past the ubiquitous negativity online and focus on the positivity, generosity, and genuine thoughtfulness that I have witnessed around this genart space\" [^S08][^S02]. Each hidden word is \"one that I imagine being used to describe people in the community, their actions, artists, and/or their work\" [^S02]. The title is a pun on that idea: an assortment of positive words, and positivity that has been sorted.\n\nThe collection page's creative credits thank \"Piter Pasma, jzlabs, strangerintheq, Owen Moore, Melissa Wiederrecht, Brian Sharpe, ciphrd, Inigo Quilez\" for \"open source code, tutorials, and general assistance\" [^S01]. Two of those debts are visible in the program. A comment credits Brian Sharpe for the noise function, and the sorting shader carries the line \"@author ciphrd ... @license MIT\" [^S02].\n\nThe display notes warn that the project \"is graphic intensive\" and is best viewed \"in Chrome (at the highest resolution possible) on a desktop with a high end GPU\", and that \"Minor differences may be noticeable when displayed in different browsers or different resolutions\" [^S01]."
    },
    {
      "id": "construction",
      "heading": "How the work was constructed",
      "bodyMarkdown": "The program is a single script of 13,520 bytes, SHA-256 `8b57fe54f75f0827cb4c5b24d1b8c6834cea3c13854439018498e3522abdfa55` [^S02]. The renderer serves an inline script with the same digest and loads p5.js from a public CDN [^S06]. It was read in full; no code is reproduced here.\n\nRandomness comes from a four-word xorshift generator seeded from the first 32 hex characters of the hash [^S02]. In order, it picks two symmetry switches and two inversion switches, a centre, a composition type, one of 38 palette slots (an empty slot falls back to an earlier palette; the 27 palettes that occur carry 20 names), and a hue threshold for sorting of 0.05 or, one time in five, 0.02 [^S02]. It then chooses a form (a full-bleed field or one of three circular or blob shapes), the hidden word from a list of 80 adjectives, noise seeds, a frame treatment, a style and, for full-bleed forms, a separate style for the surround [^S02].\n\nDrawing uses two stages. A 2D stencil layer holds the frame and the Morse code. The word is written as dots and dashes along the bottom edge. Along the top and the two sides the program writes random strings of five and seven consonants in the same code, as decoys [^S02]. A WebGL fragment shader then paints the initial design from layered fractal noise and the palette, and marks the stencil's Morse cells by lightening them and, outside the black-and-white frame, halving their saturation [^S02].\n\nThe second shader does the sorting. On every frame, each pixel is compared with a neighbour in a direction set by the stencil colour at that point: vertical in cyan areas, diagonal in white and blue ones. Rows and frames alternate the direction of comparison, as in an odd-even transposition sort [^S02]. Two pixels swap only if their hues differ by less than the threshold, and then by grayscale order. Areas whose stencil has no blue channel, including the Morse marks, are never sorted, so the word stays legible while the colour around it moves [^S02]. The program stops after three times the canvas height in frames, about 44 seconds at 60 frames per second on the test display [^S02][^S06]. There is no input handling and no sound [^S02][^S06].\n\nA reimplementation of the parameter sequence reproduces seven of the eight published traits on all 400 tokens [^S03]. Form is the shape, Sectional the frame treatment, Style the design style, Epic a rare banded brightness overlay, E.T. an inverted \"alien\" colour mode, and Prismatic Vibes the palette. Surrounding Style is the surround's style. The eleven tokens with the alien surround are labelled \"cooperative\", like the most common surround, and the eighteen with a black surround are labelled \"n/a\" [^S03]. Symmetrical reproduces on 399 of 400 once two display effects are allowed for. One surround style depends only on height and is always mirror-symmetric, and its tokens are labelled as symmetric whatever the switch says. A black surround hides mirroring. Of the two black-surround tokens with the surround mirror switched on, one is labelled with it and one without, so that case cannot be resolved [^S03]. The hidden adjective is not a published trait. The program's word list includes \"wellrounded\" and Symmetrical uses \"well-rounded\", so trait values and hidden words overlap in places [^S02][^S03]."
    },
    {
      "id": "mint",
      "heading": "The mint",
      "bodyMarkdown": "The collection page's sales notes explain the early mints: \"Pre-minting (with STEG tokens) includes an allowlist and giveaway winners\", made up of \"47 pre-mints for Autology and 1/1 holders at a discounted price\" and \"15 pre-mints ... given away over the course of 5 days in daily drawings\" [^S01]. The token records match: exactly 62 tokens were minted before the public start. One was minted on 25 May 2022 at 06:26:00 UTC, before the index's activation on 26 May, then 36 on 1 June, 21 on 2 June and four on 3 June, the last at 13:50:48 UTC [^S03][^S02].\n\nThe public start was 3 June 2022 at 17:00:00 UTC, which the collection page shows as 4 June in a browser ten hours ahead [^S02][^S01]. The first public mint came at 17:11:35 UTC, and the edition sold out at 17:39:42 UTC, 39.7 minutes after the start, which is also the recorded completion [^S03][^S02]. The index's current price field reads 0, and the notes give neither the public nor the discounted price, so the prices are not documented in the sources inspected [^S02][^S01]. The mint text and the collection page both pledge \"A portion of the proceeds\" to charity, naming the Make-A-Wish Foundation [^S02][^S01]. At retrieval the 400 tokens were held by 204 addresses [^S03]."
    },
    {
      "id": "rights",
      "heading": "Copyright and licensing",
      "bodyMarkdown": "The index records `CC BY-NC 4.0` with a link to the Creative Commons deed [^S02]. The deed permits sharing and adaptation with attribution and prohibits commercial use [^S07]. The images may therefore be shared and remixed non-commercially with credit, and the licence grants no commercial right.\n\nThe code needs a separate note. The sorting shader is marked in the program as the work of ciphrd under the MIT licence, and the noise function carries a thank-you to Brian Sharpe [^S02]. The MIT licence requires its copyright and permission notice in copies of the software; the program has the author and licence name but not the full notice [^S02]. Whether that is enough is a question for rights review. The artist's own code carries no licence statement, so its terms are unknown [^S02]."
    },
    {
      "id": "examples",
      "heading": "Close reading of examples",
      "bodyMarkdown": "Four tokens were loaded side by side in the official renderer on the generator's own origin, with the browser pane displayed. Their progress was sampled every four seconds until the sort stopped, and they were then reloaded and run to the end again [^S04][^S06]. For each token the Morse stencil was read directly from the running page and decoded [^S06]. They cover the AB5D holding, the single \"E.T.\" token that comes from the rare style rather than the alien surround, an Epic token, and the token whose Symmetrical label cannot be explained.\n\n**Assorted Positivity #395** (token `319000395`, held by an address in the AB5D linked-wallet set [^S05]) is Form \"fundamental\", Sectional \"singular b/w\", Style \"harmonious\", palette \"sunset\" [^S04]. It was observed from load to stop, about 50 seconds, and again on reload. The picture is an all-over camouflage of violet, gold, periwinkle and navy patches, each with fine sorted ridges on one side, inside a grey stippled border that is the black-and-white frame [^S06]. Its canvas signature kept changing until the program stopped at frame 2,623, and the second run ended on the identical signature `2568334b` [^S06]. The bottom-edge Morse decodes to **genuine**, the word the reimplementation predicts, and the top edge to the decoy string \"rhwcn\" [^S06][^S03].\n\n**Assorted Positivity #280** (token `319000280`) is the one E.T. token produced by the rare style, not by the alien surround [^S04][^S03]. A disc of striated red, navy and cream sits inside a pale ice-blue surround that has been sorted downwards into long drips [^S06]. Its word decodes to **appreciative** [^S06].\n\n**Assorted Positivity #37** (token `319000037`) is an Epic token with Form \"inspirational\" and the sunset palette [^S04]. It is a full-bleed field of violet, pink, gold and blue plates. Sorting has turned their edges into stacked terraces that read as relief [^S06]. Its word decodes to **glowing** [^S06].\n\n**Assorted Positivity #196** (token `319000196`) has a black surround with both symmetry switches on. It is labelled \"positively\" symmetrical, where the neighbouring case was labelled otherwise [^S04][^S03]. On screen a mirrored disc of violet and yellow forms, like a Rorschach blot, floats in a black field inside a grey frame [^S06]. Its word decodes to **imaginative** [^S06].\n\nFor all four, the sampled mean colour stayed the same while the sort ran. Sorting moves pixels without changing them, as the method implies [^S06]. None made sound or took input [^S06]."
    },
    {
      "id": "significance",
      "heading": "Significance and limitations",
      "bodyMarkdown": "Assorted Positivity applies pixel sorting, usually a photographic glitch filter, to generated images, and makes the sorting itself the performance [^S02][^S06]. It also carries a message that is hidden and legible at once. The Morse word is protected from the sort by the stencil, and it is surrounded by decoy strings that look the same at a glance [^S02][^S06]. The research confirmed the hidden word on all four examples by decoding the live stencil [^S06].\n\nSeven of the eight traits reproduce exactly. Symmetrical reproduces on all but one token once two display effects are allowed for [^S03]. The 62 early mints are fully explained by the sales notes [^S01][^S03].\n\nUnresolved research questions:\n\n1. What were the public and discounted prices? The index field reads 0 and the notes do not give them.\n2. How much went to the Make-A-Wish Foundation and the other charities?\n3. How was the Symmetrical label assigned for token 319000196, and does it follow the displayed image or the switch?\n4. Does the attribution line for ciphrd's MIT-licensed shader satisfy that licence's notice requirement?"
    }
  ],
  "facts": [
    {
      "id": "edition-size",
      "topic": "work-context",
      "value": 400,
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S02",
        "S01"
      ],
      "status": "verified"
    },
    {
      "id": "script-bytes",
      "topic": "construction",
      "value": 13520,
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S02"
      ],
      "status": "verified"
    },
    {
      "id": "traits-reproduced",
      "topic": "construction",
      "value": "7 of 8 at 400 of 400; Symmetrical 399 of 400",
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S03"
      ],
      "status": "verified"
    },
    {
      "id": "hidden-word-decoded",
      "topic": "examples",
      "value": "4 of 4",
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S06"
      ],
      "status": "verified"
    },
    {
      "id": "pre-mints",
      "topic": "mint",
      "value": 62,
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S01",
        "S03"
      ],
      "status": "verified"
    },
    {
      "id": "start",
      "topic": "mint",
      "value": "2022-06-03T17:00:00+00:00",
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S02"
      ],
      "status": "verified"
    },
    {
      "id": "completion",
      "topic": "mint",
      "value": "2022-06-03T17:39:42+00:00",
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S02",
        "S03"
      ],
      "status": "verified"
    },
    {
      "id": "mint-price",
      "topic": "mint",
      "value": null,
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S02",
        "S01"
      ],
      "status": "unknown",
      "note": "Index price 0; prices not stated."
    },
    {
      "id": "held-token",
      "topic": "work-context",
      "value": "319000395",
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S03",
        "S04",
        "S05"
      ],
      "status": "verified"
    }
  ],
  "examples": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "319000395",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000395",
      "sourceIds": [
        "S04",
        "S05",
        "S06"
      ],
      "selectionNote": "AB5D holding.",
      "observationNote": "Camouflage patches in a black-and-white frame; hidden word 'genuine' decoded; deterministic end state."
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "319000280",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000280",
      "sourceIds": [
        "S03",
        "S04",
        "S06"
      ],
      "selectionNote": "The E.T. token from the rare style.",
      "observationNote": "Striated disc in a drip-sorted ice-blue surround; word 'appreciative'."
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "319000037",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000037",
      "sourceIds": [
        "S04",
        "S06"
      ],
      "selectionNote": "Epic, inspirational form.",
      "observationNote": "Terraced plates; word 'glowing'."
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "319000196",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000196",
      "sourceIds": [
        "S03",
        "S04",
        "S06"
      ],
      "selectionNote": "Black surround, both mirror switches; unexplained Symmetrical label.",
      "observationNote": "Mirrored disc in black; word 'imaginative'."
    }
  ],
  "mediaIds": [],
  "provenance": {
    "operator": "Phil (AB5D coordinator), via the Claude desktop application",
    "originalAuthor": {
      "provider": "Anthropic",
      "model": "claude-opus-5",
      "modelVersion": "claude-opus-5 as reported by the session environment; the routing label 'claude' in the assignment manifest is a routing label and has not been recorded as a model identifier",
      "agent": "Claude in Cowork mode on the Claude Agent SDK"
    },
    "revisions": [],
    "revisionNote": "No other model or human has revised this package. A later reviser must preserve the original author credit and record the reviser, changed scope and revision-specific usage separately here.",
    "tools": [
      "Art Blocks public GraphQL index over HTTP POST from the artblocks.io origin in the browser pane, with full query text, variables and timings retained in evidence.json",
      "built-in browser pane on the coordinator's computer for page reading, canonical token page status checks, live renderer observation, canvas sampling, WebGL diagnostics and screenshots",
      "an independent reimplementation of the trait derivation, run in the browser against every token hash in the edition",
      "SHA-256 over the retrieved script bytes computed with the Web Crypto API",
      "cloud shell and file tools for package assembly, and the supplied validator"
    ],
    "humanEditorialInvolvement": "Commissioned by Phil; website publication authorized by Phil on 2026-09-17. No claim of line-by-line human fact checking.",
    "originalProseLicense": "CC0-1.0",
    "model": "claude-opus-5 (contributor-reported)",
    "generation": {
      "schema": "ab5d-essay-generation/1",
      "model": "claude-opus-5 (contributor-reported)",
      "displayName": "Claude (reported as claude-opus-5)",
      "scope": "Supplied Claude remaining ten essay packages",
      "essayCount": 10,
      "usage": null,
      "perEssayUsage": null,
      "usageDetail": "The contributor reports claude-opus-5; the serving model and token telemetry were not independently exposed. Original per-package usage records are retained with the submissions.",
      "importReview": "Structural identity, citations and build compatibility checked. Supplied prose preserved; no independent research audit."
    }
  },
  "codeInspection": {
    "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
    "locator": "HTTP POST ProjectBySlug {\"slug\":\"assorted-positivity-by-steganon\"}, field script; composite id 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-319",
    "sha256": "8b57fe54f75f0827cb4c5b24d1b8c6834cea3c13854439018498e3522abdfa55",
    "bytes": 13520,
    "retrievedAt": "2026-09-20T00:25:55.063Z",
    "runtime": "p5@1.0.0 (with WebGL shaders)",
    "method": "Index retrieval, not a direct contract read; no block pinned. Whole program read; coverage in evidence.json.",
    "executed": true,
    "executionDisclosure": "Read in full without local execution; separately executed by the official renderer during observations. Parameter derivations reimplemented in the browser for trait checks.",
    "chainBlock": null
  },
  "editorialExceptions": [
    {
      "id": "mint-price-unknown",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "Index price 0; public and discounted prices not stated."
    },
    {
      "id": "mit-notice",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "Embedded shader attributed to ciphrd under MIT without the full notice; review."
    },
    {
      "id": "symmetrical-label",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "Token 319000196 Symmetrical label not reproducible; treat trait as reported."
    }
  ],
  "presentation": {
    "editionSize": 400,
    "maximumEdition": 400,
    "mintDate": "2022-06-03T17:00:00+00:00",
    "mintDateLabel": "Public release",
    "artwork": {
      "token_id": "319000395",
      "invocation": 395,
      "mode": "live",
      "preview_asset_url": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000395.png",
      "canonicalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000395",
      "live_view_url": "https://generator.artblocks.io/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000395",
      "copyrightStatus": "CC BY-NC 4.0",
      "copyrightUrl": "https://creativecommons.org/licenses/by-nc/4.0/",
      "interactionNote": "Sorts for about 44 s after load, then stops.",
      "displayBasis": "Portrait 0.75 canvas fitted to the window; sorting resolution-dependent per display notes."
    }
  },
  "observationImages": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "319000395",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000395",
      "sourceIds": [
        "S04",
        "S05",
        "S06"
      ],
      "selectionNote": "AB5D holding.",
      "observationNote": "Camouflage patches in a black-and-white frame; hidden word 'genuine' decoded; deterministic end state.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000395.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000395"
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "319000280",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000280",
      "sourceIds": [
        "S03",
        "S04",
        "S06"
      ],
      "selectionNote": "The E.T. token from the rare style.",
      "observationNote": "Striated disc in a drip-sorted ice-blue surround; word 'appreciative'.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000280.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000280"
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "319000037",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000037",
      "sourceIds": [
        "S04",
        "S06"
      ],
      "selectionNote": "Epic, inspirational form.",
      "observationNote": "Terraced plates; word 'glowing'.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000037.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000037"
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "319000196",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000196",
      "sourceIds": [
        "S03",
        "S04",
        "S06"
      ],
      "selectionNote": "Black surround, both mirror switches; unexplained Symmetrical label.",
      "observationNote": "Mirrored disc in black; word 'imaginative'.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000196.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/319000196"
    }
  ],
  "publication": {
    "date": "2026-09-20",
    "url": "https://ab5d.xyz/series/assorted-positivity-by-steganon/",
    "authorization": "Phil requested website publication on 2026-09-17.",
    "reviewSnapshot": "/docs/series-essays/production/assorted-positivity-by-steganon/record.json",
    "unresolvedResearchQuestionsRetained": true
  }
}
