{
  "schema": "ab5d-series-essay/1",
  "identity": {
    "chainId": 1,
    "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
    "projectId": 252,
    "slug": "roamings-by-luca-ionescu",
    "title": "Roamings",
    "artistCredit": "Luca Ionescu",
    "artistDossierUrls": [
      "https://ab5d.xyz/artists/luca-ionescu/"
    ]
  },
  "revision": 2,
  "researchCutoff": "2026-09-18",
  "status": "published-with-research-limitations",
  "sections": [
    {
      "id": "work-context",
      "heading": "The work and its context",
      "bodyMarkdown": "Roamings fills a narrow portrait field with ribbed traces of colour. Some appear as short folded strips, others as long translucent curtains. Their edges turn and taper, while fine horizontal marks keep the surfaces from becoming uniformly smooth. The inspected originals range from pale veils on cream to bright green fragments against an almost black blue. Colour changes the apparent weight of the same basic drawing vocabulary. [^S05][^S06][^S07][^S08][^S09]\n\nLuca Ionescu released Roamings through Art Blocks Factory on 1 February 2022. The series is project 252 and currently contains 128 works. Its short platform statement describes an exploration of colour interaction and movement, with each palette generated through a passage across colour space. The [Luca Ionescu dossier](https://ab5d.xyz/artists/luca-ionescu/) gives a broader account of the artist. This essay concentrates on what the deployed drawing procedure and five functioning originals make available for inspection. [^S01]\n\nThe work's movement requires a precise description. A fresh rendering gradually leaves more marks on the field. Those marks accumulate into the image rather than moving as a completed sheet across the screen. Eventually the drawing stops. A still preview preserves the resulting surface, but it omits the experience of seeing separate traces gather into wider bands. The original renderer therefore matters even though the final state is still. [^S02][^S09]"
    },
    {
      "id": "conception",
      "heading": "Conception and development",
      "bodyMarkdown": "The project-specific account available in the platform record is brief. It supports a concern with generated palettes and movement, but does not establish a detailed development chronology, a sequence of earlier sketches or a particular art-historical influence. Those gaps should remain visible. A resemblance to textiles, curtains or pleated paper can help describe the encounter without becoming an unsupported claim about the artist's intention. [^S01][^S05][^S09]\n\nOne concrete clue appears in the code: a reference to the Farbvelo colour-palette project immediately precedes the palette routine. Farbvelo presents itself as a tool for generating colour combinations and publishes its source. The reference establishes that this project was acknowledged in the inspected program. It does not establish a collaboration, identify a precise borrowed revision or make the two implementations identical. [^S02][^S03]\n\nThat distinction is technically useful. The inspected Roamings routine contains its own conversion from hue, saturation and lightness to hexadecimal colour values. The current Farbvelo documentation describes a different combination of colour-space tools. It would be inaccurate to replace the deployed routine with the current upstream explanation. The archive can retain both the reference and the directly inspected mechanism without collapsing them into one source. [^S02][^S03]\n\nThe resulting work joins two kinds of traversal. The palette explores a set of related colour values, while many small drawing agents traverse the canvas. The first supplies relationships between marks; the second supplies their visible extent. This is an interpretation of the code's organization, not a recovered statement about the order in which the artist developed it. It offers a concrete way to understand the title without inventing a narrative of travel. [^S02]"
    },
    {
      "id": "construction",
      "heading": "How the work was constructed",
      "bodyMarkdown": "The complete 2,284-byte indexed script was inspected. It uses p5.js 1.0.0. Four groups of hexadecimal characters from the token hash initialize an unsigned-integer pseudorandom sequence. The hash also seeds the library's noise function. In its ordinary token environment, these inputs make the choices repeatable. The script contains a fallback for an absent token input, but that fallback is not the basis of the five official originals inspected here. [^S01][^S02]\n\nThe canvas fits a nine-to-sixteen portrait rectangle into the available window. One of ten stored background colours is applied at setup. The palette then receives five, seven or twelve entries. A noise-based change of hue is combined with changes in saturation and lightness, after which entries are sorted by hue and may be reversed. The code therefore generates a related set of colours instead of selecting every mark independently from the full range of RGB values. [^S02]\n\nFive hundred drawing records are created. Each begins at a normalized position that may lie somewhat outside the visible rectangle. Each also receives two numeric movement factors, an initial phase, a colour with an appended transparency value and an individual lifetime. Some colours are chosen directly from the palette; others are assigned according to vertical position. A parameter controls the balance between those modes. This provides a mechanism for colour regions without requiring rigid horizontal stripes. [^S02]\n\nDespite the variable name circles, the visible mark is not a circle. For each active record, the program draws a vertical stack of very short horizontal line segments. Stroke weight is proportional to canvas width. The number of segments and their spacing determine the height and openness of the stack. This is the small ribbed unit from which the apparent ribbons develop. A variable name alone would give a misleading account of what the viewer sees. [^S02]\n\nThe record's position changes through cosine and sine calculations involving its phase and movement factors. Its next phase is obtained from noise sampled at the updated position. In one branch, that noise value is rounded more coarsely than in the other. The difference can change the smoothness of the route. There is no inspected rule that makes these traces behave like physically falling cloth, and no force simulation is needed to produce their folded appearance. [^S02]\n\nThe background is not cleared between frames. Successive stacks remain visible, allowing the moving record to leave a broad trace. Transparency controls how strongly those traces build up and how earlier marks remain legible through later ones. What looks like a continuous surface is thus the accumulation of many small strokes. Its horizontal ribs reveal the repeated unit even where the larger contour encourages a reading of a curtain or ribbon. [^S02]\n\nIndividual records stop when their selected lifetime is reached. The overall drawing loop is stopped at the 1,000-frame boundary. This is a frame count, not a fixed duration in seconds: a slower browser can take longer to reach the same stage. The complete script contains no audio implementation, click interaction or automatic restart. The platform's animated label is consistent with a progressive drawing process, but should not be expanded into a claim of endless movement. [^S01][^S02]\n\nIn AB5D's #26, reloading initially exposed an almost empty cream field with faint narrow starter marks. The later view contained wide, pale overlapping bands and several darker accents. This observed change connects the frame-based procedure to the visual result. It also explains why a viewer arriving at the end can have a different first impression from someone watching the marks gather. [^S09]\n\nThe code scales positions and stroke size to the canvas, but preserving an original still requires recording the token input, library environment and display conditions. This inspection used the indexed program and official generators; it did not compare the code with a contract retrieval at a pinned block or test every device. The query and script digest are retained in the evidence record without republishing the artist's program. [^S02]"
    },
    {
      "id": "mint",
      "heading": "The mint",
      "bodyMarkdown": "The first indexed token was minted on 22 January 2022. The collection page identifies 1 February as the public release date. Activation is recorded on 27 January; the scheduled start is 17:00 on 1 February, and the second token follows thirteen seconds later. The earlier token and later public release describe different events. The header names the first mint explicitly so that it does not silently substitute for the release date. [^S01]\n\nThe current invocation count and maximum are both 128. Completion is recorded on 13 July 2022. The observed price setting is 0.2 ETH, and the sales note describes a fixed-price sale. These are useful configuration observations, but they do not establish the original maximum, every price paid or the distinction between public and administrative mints. No exact public sellout duration is inferred from the interval between recorded fields. [^S01]\n\nThe sales note also announces that a portion of proceeds would support Sea-Watch. It does not specify the portion in the inspected record. This essay records the announced intention without supplying an invented percentage or claiming that a transfer was completed. Donation receipts and launch-era announcements would strengthen that part of the history. [^S01]\n\nThe fresh ownership query found several Roamings works among AB5D's three linked wallets. The lowest numbered of those, #26, was chosen for the header. Editions 0, 1, 10 and 20 form the early-edition comparison group. The selection is reproducible and includes a verified collection work, but is not a survey of the frequency of particular colours or forms across the series. [^S01][^S05][^S06][^S07][^S08][^S09]"
    },
    {
      "id": "rights",
      "heading": "Copyright and licensing",
      "bodyMarkdown": "The artwork label in the current project record is CC BY-NC 4.0. The index supplies no terms URL, so the corresponding Creative Commons deed is linked separately. It permits sharing and adaptation subject to attribution, indication of changes and a noncommercial condition. This identifies the observed artwork label without claiming that all earlier terms have been recovered. [^S01][^S10]\n\nThe p5.js 1.0.0 dependency carries an LGPL 2.1 licence. Farbvelo's current repository carries CC BY-SA 4.0, but the embedded reference does not identify a historical version or establish exactly what was reused. Neither upstream notice should be presented as a comprehensive licence for Ionescu's whole program. No separate artist-code grant was established in the inspected material. AB5D's original essay prose is CC0; the artwork and software remain separately identified. [^S02][^S03][^S04][^S11]"
    },
    {
      "id": "examples",
      "heading": "Close reading of five outputs",
      "bodyMarkdown": "The five originals were viewed at the same 1280-by-720 browser size, producing a narrow portrait drawing field. The following descriptions concern developed renderings, with the earlier state of #26 identified separately above. The sample supports comparison of visible relationships rather than a ranking by trait rarity. [^S05][^S06][^S07][^S08][^S09]\n\nIn #0, green and olive fragments hang against a nearly black navy ground. Many are relatively short and separated by dark channels. A brighter group near the centre-left and another toward the lower right interrupt the more subdued marks around them. Horizontal ribs make the fragments appear folded or finely corrugated. Their interrupted arrangement keeps the eye moving between isolated patches rather than settling on one continuous drape. [^S05]\n\nThe dark intervals matter as much as the bright green. They let a curved edge become legible, then swallow the finer marks near it. Some traces read as thin upright threads; others open into wider folded surfaces. At a distance the image can appear scattered, but close attention finds a recurring unit beneath the differences of scale. The result holds together through repetition without making every fragment equally conspicuous. [^S05]\n\nIn #1, cyan and blue occupy much more of the field. Long vertical threads overlap wider bands with rounded ends, and violet becomes prominent lower down. The dark ground survives mainly as slots between the traces. Compared with #0, the composition feels more continuous and enclosing. Its density changes the viewing task: the eye searches through layers instead of moving from one separate island to another. [^S06]\n\nThe apparent continuity is deceptive in a productive way. Fine horizontal ribs remain visible across the broad bands, while adjacent narrow traces extend much farther vertically. The wider surfaces seem to dissolve into threads at their edges. Colour reinforces the transition from cooler greenish blue above toward violet below, but the small overlaps prevent it from becoming a clean gradient chart. The drawing gives colour a local history of accumulation. [^S06]\n\nIn #10, pale green is strongest in the upper region, muted blue occupies the middle and mauve-purple gathers below. Broad veils with rounded lower edges overlap a dark ground. Black openings remain visible between them, so the image does not become a uniform curtain. The larger shapes invite a reading of descending movement, although the program's paths are not governed by gravity. That difference between appearance and mechanism is part of the work's interest. [^S07]\n\nIn #20, a pale pink-cream ground changes the character of the layering. Lavender and mauve bands remain light, while narrow dark accents become unusually forceful. A conspicuous ribbed dark column below the middle, left of centre, extends into a tapering lower trace. Long pale gaps between the surrounding bands make the field seem airy despite its density. Here the ground carries light through the composition instead of acting as a dark interval. [^S08]\n\nAB5D's #26 is subtler still. Pale olive, sage and pink-grey traces gather on a warm cream ground. Many approach the ground closely in lightness, so broad forms become apparent through the accumulation of ribs and the overlaps at their edges. A darker folded trace low on the right provides a strong local anchor. It gives the eye a place to begin before the quieter layers become distinguishable. [^S09]\n\nWatching #26 develop clarifies that delicacy. The early marks are faint enough to be overlooked; the later surfaces acquire presence through repeated contact with the field. Their softness is not produced by blurring a finished object. It emerges from low-opacity strokes occupying related paths. The dark lower-right trace uses the same broad vocabulary but has a different visual authority, showing how a limited family of marks can sustain markedly unequal weights. [^S02][^S09]"
    },
    {
      "id": "significance",
      "heading": "Significance and limitations",
      "bodyMarkdown": "Roamings makes a compact drawing procedure yield a rich difference between thread, band and translucent surface. The horizontal stroke stack remains recognizable, yet its accumulated paths create contours that exceed the appearance of that small unit. Colour relationships and transparency determine whether those contours separate sharply from the ground or only gradually become visible. The inspected works reward attention to that change of scale. [^S02][^S05][^S06][^S09]\n\nIts temporal structure is equally specific. The viewer watches an image acquire density, then remain. Presenting the original preserves that development without treating the work as a perpetual animation or adding motion the artist did not supply. The finished still and the process of arriving at it are related but distinct encounters. [^S02][^S09]\n\nFurther research should recover a fuller artist account of development, launch-era configuration records, evidence concerning the announced donation, the exact relationship to Farbvelo and any separate artist-code terms. A pinned chain comparison and wider device testing would strengthen preservation. The present essay rests on the full indexed script, fresh project and ownership records, and five directly inspected originals, with those unresolved questions retained rather than filled by conjecture. [^S01][^S02][^S03]"
    }
  ],
  "codeInspection": {
    "source": "projects_metadata.script",
    "endpoint": "https://artblocks-mainnet.hasura.app/v1/graphql",
    "query": "query { projects_metadata(where:{slug:{_eq:\"roamings-by-luca-ionescu\"}}){id name artist_name project_id description website script script_type_and_version license link_to_license invocations max_invocations first_token_minted_at second_token_minted_at activated_at start_datetime completed_at price_per_token_in_wei sales_notes} }",
    "retrievedAt": "2026-09-18T13:02:27.764930+00:00",
    "byteLength": 2284,
    "sha256": "491410a37bac8c8fe1f4bebf851a62273f4b4d299edf7eae441a355128ceda0c",
    "runtime": "p5@1.0.0",
    "executed": false,
    "chainBlock": null,
    "coverage": "Complete 2284-byte script read: hash PRNG and noise seeds, HSL palette, 500 walkers, transparent horizontal stroke stacks, persistent trails, noise phase updates and finite 1000-frame stop. No audio or controls."
  },
  "examples": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "252000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000000",
      "sourceIds": [
        "S01",
        "S05"
      ],
      "selectionNote": "Early-edition group selected before viewing",
      "observationNote": "Lime and olive ribbed fragments separated by dark navy channels."
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "252000001",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000001",
      "sourceIds": [
        "S01",
        "S06"
      ],
      "selectionNote": "Early-edition group selected before viewing",
      "observationNote": "Dense cyan-blue curtains with violet lower region and narrow dark slots."
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "252000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000010",
      "sourceIds": [
        "S01",
        "S07"
      ],
      "selectionNote": "Early-edition group selected before viewing",
      "observationNote": "Pale-green upper veils, muted-blue centre and mauve lower field on dark ground."
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "252000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000020",
      "sourceIds": [
        "S01",
        "S08"
      ],
      "selectionNote": "Early-edition group selected before viewing",
      "observationNote": "Lavender/mauve veils on pink-cream ground, strong dark ribbed accent below middle-left."
    },
    {
      "id": "E05",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "252000026",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000026",
      "sourceIds": [
        "S01",
        "S09"
      ],
      "selectionNote": "Verified AB5D collection work",
      "observationNote": "AB5D pale olive/sage/pink-grey veils on warm cream, dark folded trace lower-right; reload begins with faint thin marks."
    }
  ],
  "mediaIds": [],
  "provenance": {
    "operator": "OpenAI",
    "agent": "Codex",
    "model": "gpt-6-astra",
    "originalProseLicense": "CC0-1.0",
    "generation": {
      "schema": "ab5d-essay-generation/1",
      "model": "gpt-6-astra",
      "displayName": "GPT-6 Astra",
      "scope": "Independent Roamings research and writing",
      "essayCount": 1,
      "usage": null,
      "perEssayUsage": null,
      "usageDetail": "Complete per-essay token telemetry unavailable; no estimated count.",
      "contributors": {
        "operator": "OpenAI",
        "agent": "Codex",
        "model": "GPT-6 Astra",
        "originalProseLicense": "CC0-1.0"
      }
    },
    "humanEditorialInvolvement": "Commissioned by Phil; website publication authorized by Phil on 2026-09-17. No claim of line-by-line human fact checking."
  },
  "editorialExceptions": [],
  "facts": [
    {
      "id": "minted-count",
      "topic": "mint",
      "value": 128,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01"
      ],
      "status": "verified",
      "note": "Current index observation; historical meaning distinguished in prose."
    },
    {
      "id": "first-mint",
      "topic": "mint",
      "value": "2022-01-22T01:45:40+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01"
      ],
      "status": "verified",
      "note": "Current index observation; historical meaning distinguished in prose."
    },
    {
      "id": "scheduled-start",
      "topic": "mint",
      "value": "2022-02-01T17:00:00+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01"
      ],
      "status": "verified",
      "note": "Current index observation; historical meaning distinguished in prose."
    },
    {
      "id": "completion",
      "topic": "mint",
      "value": "2022-07-13T19:50:56+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01"
      ],
      "status": "verified",
      "note": "Current index observation; historical meaning distinguished in prose."
    },
    {
      "id": "license",
      "topic": "rights",
      "value": "CC BY-NC 4.0",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01"
      ],
      "status": "verified",
      "note": "Current index observation; historical meaning distinguished in prose."
    }
  ],
  "rights": {
    "artwork": {
      "reportedLabel": "CC BY-NC 4.0",
      "category": "creative-commons",
      "termsUrl": "https://creativecommons.org/licenses/by-nc/4.0/",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01",
        "S10"
      ],
      "note": "Current artwork label; deed separately identified, index terms URL absent.",
      "unresolvedConflicts": []
    },
    "code": {
      "reportedLabel": null,
      "category": "unknown",
      "termsUrl": null,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "note": "No separate comprehensive artist-code grant found.",
      "unresolvedConflicts": []
    },
    "thirdParty": [
      {
        "reportedLabel": "LGPL 2.1",
        "category": "custom",
        "termsUrl": "https://raw.githubusercontent.com/processing/p5.js/1.0.0/license.txt",
        "observedAt": "2026-09-18",
        "sourceIds": [
          "S04"
        ],
        "note": "p5.js dependency only.",
        "unresolvedConflicts": []
      },
      {
        "reportedLabel": "CC BY-SA 4.0",
        "category": "creative-commons",
        "termsUrl": "https://github.com/meodai/farbvelo/blob/main/LICENSE.md",
        "observedAt": "2026-09-18",
        "sourceIds": [
          "S11"
        ],
        "note": "Referenced upstream project current terms; exact historical reuse not established.",
        "unresolvedConflicts": []
      }
    ]
  },
  "completionStatus": "reviewed-for-publication",
  "presentation": {
    "editionSize": 128,
    "maximumEdition": 128,
    "mintDate": "2022-01-22T01:45:40+00:00",
    "mintDateMeaning": "First indexed mint",
    "artwork": {
      "project_id": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-252",
      "token_id": "252000026",
      "invocation": 26,
      "owner_address": "0xdd19308a9731cdecb67e0d80ca6823394208c045",
      "preview_asset_url": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000026.png",
      "live_view_url": "/series/roamings-by-luca-ionescu/artwork.html",
      "canonicalLiveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000026",
      "canonicalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000026",
      "mode": "live",
      "aspectRatio": 0.5625,
      "interactionNote": "Original renderer. The drawing develops automatically, then settles into a still composition.",
      "copyrightStatus": "CC BY-NC 4.0",
      "copyrightUrl": "https://creativecommons.org/licenses/by-nc/4.0/",
      "displayBasis": "Verified AB5D collection work, official original renderer, observed CC BY-NC 4.0 artwork label."
    }
  },
  "observationImages": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "252000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000000",
      "sourceIds": [
        "S01",
        "S05"
      ],
      "selectionNote": "Early-edition group selected before viewing",
      "observationNote": "Lime and olive ribbed fragments separated by dark navy channels.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000000.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000000"
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "252000001",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000001",
      "sourceIds": [
        "S01",
        "S06"
      ],
      "selectionNote": "Early-edition group selected before viewing",
      "observationNote": "Dense cyan-blue curtains with violet lower region and narrow dark slots.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000001.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000001"
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "252000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000010",
      "sourceIds": [
        "S01",
        "S07"
      ],
      "selectionNote": "Early-edition group selected before viewing",
      "observationNote": "Pale-green upper veils, muted-blue centre and mauve lower field on dark ground.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000010.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000010"
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "252000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000020",
      "sourceIds": [
        "S01",
        "S08"
      ],
      "selectionNote": "Early-edition group selected before viewing",
      "observationNote": "Lavender/mauve veils on pink-cream ground, strong dark ribbed accent below middle-left.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000020.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000020"
    },
    {
      "id": "E05",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "252000026",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000026",
      "sourceIds": [
        "S01",
        "S09"
      ],
      "selectionNote": "Verified AB5D collection work",
      "observationNote": "AB5D pale olive/sage/pink-grey veils on warm cream, dark folded trace lower-right; reload begins with faint thin marks.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000026.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/252000026"
    }
  ],
  "publication": {
    "date": "2026-09-18",
    "url": "https://ab5d.xyz/series/roamings-by-luca-ionescu/",
    "authorization": "Phil requested website publication on 2026-09-17.",
    "reviewSnapshot": "/docs/series-essays/production/roamings-by-luca-ionescu/record.json",
    "unresolvedResearchQuestionsRetained": true
  }
}
