{
  "schema": "ab5d-series-essay/1",
  "identity": {
    "chainId": 1,
    "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
    "projectId": 180,
    "slug": "mecha-suits-by-hideo",
    "title": "mecha suits",
    "artistCredit": "hideo",
    "artistDossierUrls": [
      "https://ab5d.xyz/artists/hideo/"
    ]
  },
  "revision": 2,
  "researchCutoff": "2026-09-20",
  "status": "published-with-research-limitations",
  "rights": {
    "artwork": {
      "reportedLabel": "NFT License",
      "category": "unknown",
      "termsUrl": null,
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S02",
        "S09"
      ],
      "note": "Bare label; Dapper Labs NFT License plausible but unestablished.",
      "unresolvedConflicts": [
        "Label unlinked"
      ]
    },
    "code": {
      "reportedLabel": null,
      "category": "unknown",
      "termsUrl": null,
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S02"
      ],
      "note": "No licence statement for the artist's code.",
      "unresolvedConflicts": []
    },
    "thirdParty": [
      {
        "component": "three.js r124 core",
        "reportedLabel": "MIT License",
        "category": "custom",
        "termsUrl": "https://github.com/mrdoob/three.js/blob/r124/LICENSE",
        "observedAt": "2026-09-20",
        "sourceIds": [
          "S07",
          "S06"
        ],
        "note": "Loaded from cdnjs at view time.",
        "unresolvedConflicts": []
      },
      {
        "component": "three.js example modules embedded on-chain (ConvexHull, OrbitControls, RoundedBoxGeometry)",
        "reportedLabel": "MIT License",
        "category": "custom",
        "termsUrl": "https://github.com/mrdoob/three.js/blob/r124/LICENSE",
        "observedAt": "2026-09-20",
        "sourceIds": [
          "S02",
          "S07",
          "S08"
        ],
        "note": "No MIT notice in the on-chain copy.",
        "unresolvedConflicts": [
          "MIT notice requirement vs absent notice"
        ]
      }
    ]
  },
  "sections": [
    {
      "id": "work-context",
      "heading": "The work and its context",
      "bodyMarkdown": "mecha suits is Art Blocks project 180 on the contract at `0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270`, credited in the index to hideo. The index records 256 invocations against a maximum of 256, `three@0.124.0`, an aspect ratio of 1, the Factory category and the licence label `NFT License` with no link [^S02]. The collection page shows the byline as \"HIDΞ0\" and a fixed edition of 256 [^S01].\n\nEach token is a small bipedal robot standing on a coloured floor in soft fog: jointed legs with heels and bracelets, a stacked spine, a faceted back plate, an open cockpit with a seat and a control panel of buttons and levers, and arms that end in hands, axes, shields, photon cannons or small utility claws. Some carry a winged jetpack [^S02][^S06]. The mint description presents them as \"armored, robotic vehicles designed to explore the metaverse\", \"built using blueprints left behind by an ancient alien civilization\", and tells the viewer to \"drag and drop to rotate, scroll to zoom in and out\" [^S02][^S01].\n\nThe work is a single still scene in 3D. Nothing moves on its own; the viewer moves the camera. Its interest lies in how many distinct machines one short assembly program can build, and in the care given to small mechanical details such as finger joints, cannon housings and cockpit levers [^S02][^S06]."
    },
    {
      "id": "conception",
      "heading": "Conception and development",
      "bodyMarkdown": "The only artist statement on record is the four-sentence mint description [^S02]. The indexed `artist_interview` field is null, and the artist's website of record, hideocode.art, failed to load in the browser on the research date [^S02]. No development account was found. The sales notes on the collection page add a purpose: 30 per cent of initial sales were to be donated to the UNICEF Innovation Fund [^S01].\n\nThe program itself shows the design thinking. The robot is built as a skeleton first: legs from four segments with set angle ranges, a spine of four to six vertebrae that can grow, shrink or stay even, a collarbone and two arm segments, then hands. Armour, bracelets, the back plate and the cockpit are then hung on that skeleton [^S02]. The naming in the code, with vertebrae, heels, collarbones and palms, is anatomical. The published traits use a pilot's vocabulary instead: \"photon cannon\" for the cannon arm, \"utility claw\" for the small support arms, and \"mono\" for the background the program calls \"noir\" [^S02][^S03]. The trait names were written for collectors, not taken from the code.\n\nThe palettes are named in the program for plain colours (yellow, tomato, blue, pink, green, white and black), and the backgrounds for moods: city, sunset, vaporwave, field, rouge and noir [^S02]. Control buttons use a fixed set of four signal colours: yellow, magenta, blue and green [^S02]."
    },
    {
      "id": "construction",
      "heading": "How the work was constructed",
      "bodyMarkdown": "The program is ten script parts that concatenate to 65,717 bytes, SHA-256 `ccd6b6cef9c1f60dc8371146e0a4130b265b1bffd217f0e107bdea2530340045` [^S02]. The renderer's inline script has the same digest and loads three.js r124 from a public CDN [^S06]. It was read in full; no code is reproduced here.\n\nRoughly the first third of the program is not the artist's code. It embeds, in minified form, three.js example modules: a convex hull builder and its geometry wrapper, the OrbitControls camera controller, and a rounded-box geometry [^S02]. The convex hull example in the three.js repository credits a port from the quickhull3d library [^S08]. Embedding them is how the project gets faceted armour and drag-to-rotate on a platform that loads only the core library [^S02][^S06].\n\nRandomness comes from the same three-shift generator seen in Return and Beatboxes, seeded from the first sixteen characters of the hash. The weighted-choice helper scales every draw by 0.99, the same quirk as in Return, so the last entry of each list is slightly under-weighted [^S02]. The token's options are drawn first, in a fixed order. There is a 5 per cent chance of the black palette and otherwise a pick from a list that doubles yellow, tomato, blue and green. The arm type follows: 5 per cent utility claws on both sides, 45 per cent hands on both, and otherwise a free choice per side. Then come the control count, a 10 per cent chance of the noir background, the spine shape, a 1 per cent chance of extra support arms, a 20 per cent chance of a jetpack, and a 30 per cent chance of swapping primary and secondary colours [^S02]. The body is then built from the same generator: leg lengths and angles, vertebra count and taper, back-plate depth, arm angles, finger count, and the details of axes, shields and cannons. Every armour plate is a convex hull of eight to thirteen points, which gives the suits their faceted look [^S02].\n\nA reimplementation of the option sequence reproduces seven of the nine published traits on all 256 tokens. The other two, Jetpack and Inverted palette, match on 252 and 248 [^S03]. The mismatches all fall on utility-claw tokens, and the cause is specific. The program draws the extra-arms chance only when a suit does not have claws. The published traits match on all 256 only if that draw is always made [^S02][^S03]. The feature script therefore consumed one more random number than the artwork for every claw suit, and on 8 of the 14 claw suits, that shift gives a different jetpack or colour inversion from the one the program builds. The live renderer confirmed this on two of them (see Close reading) [^S06].\n\nThe scene has a hemisphere light, two spotlights (one casting soft shadows from 2,048-pixel shadow maps), a coloured point light in the cockpit, a floor plane and fog. The camera starts at one of four horizontal offsets [^S02]. There is no animation loop beyond redrawing each frame, and no timed change. OrbitControls allows rotation and zoom between distances of 0.4 and 1, with the polar angle kept between 45 and 90 degrees so the floor is never seen from below. Panning is disabled [^S02][^S06]. Two small defects are harmless: a helper that would build cubes refers to a misspelt variable but is never called. On black suits, the control-button colour list is replaced by a single colour string, so the picker draws single characters of that string and the buttons do not get the intended colours [^S02]. There is no sound [^S02][^S06]."
    },
    {
      "id": "mint",
      "heading": "The mint",
      "bodyMarkdown": "Invocation 0 was minted on 6 October 2021 at 15:46:32 UTC, thirteen days before the sale [^S03]. The index records activation on 15 October at 23:38:20 UTC and a start at 19:00:00 UTC on 19 October [^S02]. The collection page shows 20 October, the same instant in a browser ten hours ahead of UTC [^S01].\n\nThe sale was a Dutch auction starting at 5 ETH and falling every five minutes through 4, 3, 2, 1 and 0.5 to 0.25 ETH [^S01]. It never reached the lower tiers. The first public mints came at 19:01:04 UTC, and the edition sold out at 19:23:06, 23.1 minutes after the start, which is also the recorded completion [^S03][^S02]. Assigning each mint time to the published schedule gives four tokens at 5 ETH, one at 4, two at 3, thirteen at 2 and 235 at 1 ETH [^S01][^S03]. The index's current price field is 1 ETH, which matches the tier at which the edition sold out, not the published resting price [^S02]. That reconstruction implies gross primary sales of about 291 ETH, and so about 87 ETH for UNICEF if 30 per cent was paid as stated. Both figures are inferences from timestamps and the published schedule; no payment record was found.\n\nAt retrieval the 256 tokens were held by 152 addresses [^S03]."
    },
    {
      "id": "rights",
      "heading": "Copyright and licensing",
      "bodyMarkdown": "The index records the artwork licence label `NFT License` with no link, and the collection page shows no licence field [^S02][^S01]. As with other projects carrying this label, the most likely referent is the NFT License published by Dapper Labs, which allows personal use and limited merchandise and forbids modifying the art. Nothing in the record ties the label to that document or to a version [^S09]. The operative terms for mecha suits remain unverified.\n\nThe code raises a separate question. The embedded three.js modules are MIT-licensed, and the MIT licence requires its copyright and permission notice to be included in \"all copies or substantial portions of the Software\" [^S07]. The on-chain program contains no licence notice or comment of any kind [^S02]. Whether the embedded portions are \"substantial\" and whether the platform's own attribution covers them are legal questions this package does not settle. The finding is recorded for review. The artist's own code carries no licence statement, so its terms are unknown [^S02]. The three.js core library loaded at view time is under the same MIT licence [^S07][^S06]."
    },
    {
      "id": "examples",
      "heading": "Close reading of examples",
      "bodyMarkdown": "Four suits were loaded side by side in the official renderer on the generator's own origin, with the browser pane displayed, and their live option objects were read directly [^S04][^S06]. They were chosen to cover the AB5D holding, the two kinds of trait mismatch, and the rarest option.\n\n**mecha suits #25** (token `180000025`, held by an address in the AB5D linked-wallet set [^S05]) is a yellow suit with hands on both arms, three controls, a square spine and the city background [^S04]. It was observed for about a minute, including a full control test. From the default front view it stands on thin sage-green legs with yellow ankle and knee bracelets. A faceted yellow cockpit sits on top with a dark window and grey rails. Short arms end in yellow forearm blocks and grey fingers, and a long soft shadow falls across a pale blue-grey floor that fades into fog [^S06]. The camera stayed at (0.05, 0.2, 0.652) across three idle seconds: the scene does not move by itself [^S06]. Four scroll-wheel events moved it out to (0.061, 0.246, 0.801). A 150-pixel horizontal drag swung it around to (-0.701, 0.246, -0.392), showing the suit from behind: a stacked grey spine of five vertebrae under the yellow shell. Twenty scroll-ins stopped at a distance of exactly 0.4, the programmed minimum [^S06]. Resetting the controls returned the front view. The suit is a small, upright machine, and the drag reveals how much construction sits behind the cockpit.\n\n**mecha suits #71** (token `180000071`) is one of 13 black suits and one of 14 with utility claws. Its metadata says no jetpack and an inverted palette [^S04]. The running program reported a jetpack and no inversion, with primary #333 and secondary #716b87, as the reimplementation predicts [^S06][^S03]. It was observed for about a minute with the same control test. On screen, a charcoal-and-slate suit on a pink vaporwave floor carries a broad black winged jetpack across its shoulders. It has a rounded cylindrical spine, black jointed legs, and small claw arms folded at chest height with lavender claw tips [^S06]. Rotating it showed the jetpack's dark faceted barrel from behind. Zoom again stopped at 0.4 [^S06]. The published traits describe a suit without a jetpack; the artwork has one.\n\n**mecha suits #107** (token `180000107`) is the mirror case: its metadata says jetpack yes and no inversion, while the program built it without a jetpack and with an inverted palette. Its primary is grey #6b6b6b and its secondary yellow #fcc603 [^S04][^S06]. On screen it is a grey cockpit framed by yellow bars and bracelets, with yellow claw tips and no wings, on a vaporwave pink floor [^S06].\n\n**mecha suits #206** (token `180000206`) is one of only two suits with extra support arms. It combines them with two photon cannons, a jetpack, five controls and the field background [^S04][^S06]. It is the densest build in the set, with 135 meshes against 88 to 107 for the others [^S06]. A green suit fills the frame, with long green cannon housings on both sides, dark grey spherical shoulder joints, broad grey jetpack wings behind, small claws below the cockpit, and a dark seat facing a panel of yellow, magenta, blue and green buttons [^S06].\n\nNone of the four played sound or changed without input [^S06]."
    },
    {
      "id": "significance",
      "heading": "Significance and limitations",
      "bodyMarkdown": "mecha suits stands out for building a convincing, varied mechanical figure from a short list of choices and a skeleton-first method, and for putting the viewer in charge of the camera rather than animating the scene [^S02][^S06]. It also reached a high price quickly for its size: the edition sold out in 23 minutes, most of it at 1 ETH, with 30 per cent of sales pledged to UNICEF [^S01][^S03].\n\nThe research found two issues that matter for anyone describing or reproducing the work. The published Jetpack and Inverted palette traits are wrong on 8 of the 14 utility-claw suits, because the feature script drew one more random number than the program [^S02][^S03][^S06]. And the on-chain program embeds MIT-licensed three.js code without its licence notice, which needs a rights review [^S02][^S07].\n\nUnresolved research questions:\n\n1. Did the artist or platform ever correct the Jetpack and Inverted palette traits for the eight affected claw suits?\n2. Was the UNICEF donation made, and how much was it?\n3. What does the NFT License label refer to for this project?\n4. Is there an artist account of the project? The website of record did not load on the research date.\n5. Was invocation 0, minted thirteen days early, an artist mint?"
    }
  ],
  "facts": [
    {
      "id": "edition-size",
      "topic": "work-context",
      "value": 256,
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S02",
        "S01"
      ],
      "status": "verified"
    },
    {
      "id": "script-bytes",
      "topic": "construction",
      "value": 65717,
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S02"
      ],
      "status": "verified"
    },
    {
      "id": "claw-trait-mismatch",
      "topic": "construction",
      "value": 8,
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S02",
        "S03",
        "S06"
      ],
      "status": "verified"
    },
    {
      "id": "sale-mechanism",
      "topic": "mint",
      "value": "Dutch auction 5 ETH to 0.25 ETH in 5-minute steps",
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S01"
      ],
      "status": "reported"
    },
    {
      "id": "sellout-tier",
      "topic": "mint",
      "value": "1 ETH",
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S01",
        "S02",
        "S03"
      ],
      "status": "inferred"
    },
    {
      "id": "first-mint",
      "topic": "mint",
      "value": "2021-10-06T15:46:32+00:00",
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S03"
      ],
      "status": "verified"
    },
    {
      "id": "start",
      "topic": "mint",
      "value": "2021-10-19T19:00:00+00:00",
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S02"
      ],
      "status": "verified"
    },
    {
      "id": "completion",
      "topic": "mint",
      "value": "2021-10-19T19:23:06+00:00",
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S02",
        "S03"
      ],
      "status": "verified"
    },
    {
      "id": "unicef-amount",
      "topic": "mint",
      "value": null,
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S01"
      ],
      "status": "unknown",
      "note": "About 87 ETH inferred; no record."
    },
    {
      "id": "held-token",
      "topic": "work-context",
      "value": "180000025",
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S03",
        "S04",
        "S05"
      ],
      "status": "verified"
    }
  ],
  "examples": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "180000025",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000025",
      "sourceIds": [
        "S04",
        "S05",
        "S06"
      ],
      "selectionNote": "AB5D holding; controls tested.",
      "observationNote": "Yellow suit; camera measured through idle, zoom, rotate and clamp."
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "180000071",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000071",
      "sourceIds": [
        "S03",
        "S04",
        "S06"
      ],
      "selectionNote": "Black claw suit with trait mismatch.",
      "observationNote": "Live jetpack present though metadata says none."
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "180000107",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000107",
      "sourceIds": [
        "S03",
        "S04",
        "S06"
      ],
      "selectionNote": "Claw suit with opposite mismatch.",
      "observationNote": "Live no jetpack and inverted colours, contrary to metadata."
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "180000206",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000206",
      "sourceIds": [
        "S04",
        "S06"
      ],
      "selectionNote": "One of two suits with extra support arms.",
      "observationNote": "Densest build, 135 meshes, twin cannons and jetpack."
    }
  ],
  "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\":\"mecha-suits-by-hideo\"}, field script; composite id 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-180",
    "sha256": "ccd6b6cef9c1f60dc8371146e0a4130b265b1bffd217f0e107bdea2530340045",
    "bytes": 65717,
    "retrievedAt": "2026-09-20T00:25:52.193Z",
    "runtime": "three.js r124 from cdnjs",
    "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": "claw-suit-traits-wrong",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "Published Jetpack or Inverted palette disagrees with the rendered suit on 8 of 14 utility-claw tokens (confirmed live on 180000071 and 180000107)."
    },
    {
      "id": "embedded-mit-code-no-notice",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "The on-chain program embeds three.js example modules (MIT) without the licence notice. Rights review needed."
    },
    {
      "id": "licence-label-unlinked",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "'NFT License' bare label; terms unverified."
    },
    {
      "id": "unicef-amount-inferred",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "About 87 ETH is inferred from reconstructed tiers; no payment record."
    },
    {
      "id": "artist-site-unavailable",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "hideocode.art failed to load on 2026-09-20."
    },
    {
      "id": "byline-variant",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "Index artist 'hideo'; collection page byline 'HIDΞ0'. Package keeps the index credit."
    }
  ],
  "presentation": {
    "editionSize": 256,
    "maximumEdition": 256,
    "mintDate": "2021-10-19T19:00:00+00:00",
    "mintDateLabel": "Public release",
    "artwork": {
      "token_id": "180000025",
      "invocation": 25,
      "mode": "live",
      "preview_asset_url": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000025.png",
      "canonicalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000025",
      "live_view_url": "https://generator.artblocks.io/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000025",
      "copyrightStatus": "NFT License",
      "copyrightUrl": null,
      "interactionNote": "Static 3D scene; viewer rotates and zooms with the mouse.",
      "displayBasis": "Live renderer; interaction is part of the work."
    }
  },
  "observationImages": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "180000025",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000025",
      "sourceIds": [
        "S04",
        "S05",
        "S06"
      ],
      "selectionNote": "AB5D holding; controls tested.",
      "observationNote": "Yellow suit; camera measured through idle, zoom, rotate and clamp.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000025.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000025"
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "180000071",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000071",
      "sourceIds": [
        "S03",
        "S04",
        "S06"
      ],
      "selectionNote": "Black claw suit with trait mismatch.",
      "observationNote": "Live jetpack present though metadata says none.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000071.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000071"
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "180000107",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000107",
      "sourceIds": [
        "S03",
        "S04",
        "S06"
      ],
      "selectionNote": "Claw suit with opposite mismatch.",
      "observationNote": "Live no jetpack and inverted colours, contrary to metadata.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000107.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000107"
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "180000206",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000206",
      "sourceIds": [
        "S04",
        "S06"
      ],
      "selectionNote": "One of two suits with extra support arms.",
      "observationNote": "Densest build, 135 meshes, twin cannons and jetpack.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000206.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/180000206"
    }
  ],
  "publication": {
    "date": "2026-09-20",
    "url": "https://ab5d.xyz/series/mecha-suits-by-hideo/",
    "authorization": "Phil requested website publication on 2026-09-17.",
    "reviewSnapshot": "/docs/series-essays/production/mecha-suits-by-hideo/record.json",
    "unresolvedResearchQuestionsRetained": true
  }
}
