{
  "$schema": "/characters/v2/schemas/release.schema.json",
  "schemaVersion": "2.0.0",
  "kind": "nandarona.public-character-release",
  "releaseId": "oshitane@2.9.0",
  "characterId": "oshitane",
  "familyId": "input",
  "version": "2.9.0",
  "releasedAt": "2026-07-30",
  "status": "published",
  "immutable": true,
  "pageUrl": "/characters/oshitane/",
  "license": {
    "id": "CC-BY-4.0",
    "url": "https://creativecommons.org/licenses/by/4.0/",
    "attribution": "Nandarona character platform / https://nandarona.com/characters/",
    "noEndorsement": true
  },
  "designBoundaries": {
    "commonDNA": [
      "a clear visual organ or signal shows quiet attention",
      "mouthless by default",
      "deep navy construction or hand-drawn outline",
      "quiet curiosity before certainty",
      "simple silhouette readable at UI-icon scale"
    ],
    "familyDNA": [
      "濃紺の構造線と白い入力面を共有し、受付点だけ淡いミント、藤、珊瑚、黄で示す",
      "視覚器官を押し窪み、保持環、二連膜、回数櫛、方向珠、搬送籠、回転節、収束叉、拍節、同時橋へ分散する",
      "感覚眼を単眼レンズ、縦スリット、非対称小眼、点列眼、方向眼、三点感覚、中央孔眼、叉先眼、拍眼、異形対眼へ分散し、同じ大きな二つ目へ統一しない",
      "各個体に跳ねる、伸びる、交互に弾む、這う、滑る、運ぶ、転がる、浮く、刻む、寄り添うの固有移動予兆を持たせる",
      "入力前、受付、継続、成立、取消、復帰を六つの静止輪郭でも判別できる",
      "キーボード、ゲームパッド、タッチ、マウスの特定製品形状へ固定せず入力意味を抽象化する",
      "32px相当でも方向、回数、保持量、対象、時間窓、同時性を色や点滅だけに頼らず読める"
    ],
    "individualDNA": [
      "どの深さなら、一回だけ届いたと分かるんだろな？",
      "単発入力の受付・確定役",
      "低い非対称の丸台と中央に一つだけある深い押し窪み",
      "押し窪みと確認底。片側へ埋め込まれた一つの小さな蓋付きレンズ。底の三つの短いばね足で一度だけ跳ねて着地する"
    ]
  },
  "files": [
    {
      "role": "profile",
      "path": "profile.json",
      "url": "/characters/v2/oshitane/2.9.0/profile.json",
      "mediaType": "application/json",
      "bytes": 2424,
      "sha256": "df498e90c1a15ca9b46699d063a1625f5ebd750821346827790307f50bd0f4e1"
    },
    {
      "role": "knowledge-base",
      "path": "knowledge-base.json",
      "url": "/characters/v2/oshitane/2.9.0/knowledge-base.json",
      "mediaType": "application/json",
      "bytes": 10424,
      "sha256": "12250d5e9c6ebf2ce60d096bc0586e1d6c056c60cac8554ec90ec65b3ed4a000"
    },
    {
      "role": "ai-index",
      "path": "ai-index.json",
      "url": "/characters/v2/oshitane/2.9.0/ai-index.json",
      "mediaType": "application/json",
      "bytes": 1334,
      "sha256": "ea707d288819d31d3d9de50bd4e05628e75ef5fda9736ea8e0661a6fbad0d75f"
    },
    {
      "role": "prompt-pack",
      "path": "prompt-pack.json",
      "url": "/characters/v2/oshitane/2.9.0/prompt-pack.json",
      "mediaType": "application/json",
      "bytes": 2838,
      "sha256": "b57e537e7c5a6743f2734bd0bfa8c7c3d874517cad9f8805649535ca886cd8ea"
    },
    {
      "role": "state-machine",
      "path": "state-machine.json",
      "url": "/characters/v2/oshitane/2.9.0/state-machine.json",
      "mediaType": "application/json",
      "bytes": 2625,
      "sha256": "e990b83a87537c293892bb0b9e1b788c1c465b65ec64e100b857a326883e1dd3"
    },
    {
      "role": "use-profiles",
      "path": "use-profiles.json",
      "url": "/characters/v2/oshitane/2.9.0/use-profiles.json",
      "mediaType": "application/json",
      "bytes": 2253,
      "sha256": "dfa3d6ec585198cf957362fbb6f8ef9fe299412e08fed6014dd4e2fe18f30ebb"
    },
    {
      "role": "asset-provenance",
      "path": "asset-provenance.json",
      "url": "/characters/v2/oshitane/2.9.0/asset-provenance.json",
      "mediaType": "application/json",
      "bytes": 1898,
      "sha256": "82019efaf5102aa7251fb2800043af18a2d9076acb003269165519c109991c9c"
    },
    {
      "role": "RIGHTS",
      "path": "RIGHTS.md",
      "url": "/characters/v2/oshitane/2.9.0/RIGHTS.md",
      "mediaType": "text/markdown",
      "bytes": 464,
      "sha256": "7afcf110a093d472fc58c684508c18f2c133a78a3350e1033f0804b69216bb22"
    },
    {
      "role": "ATTRIBUTION",
      "path": "ATTRIBUTION.md",
      "url": "/characters/v2/oshitane/2.9.0/ATTRIBUTION.md",
      "mediaType": "text/markdown",
      "bytes": 178,
      "sha256": "538548577c582e1d58ff5771843b5f6f07efa7e51689193ee91fe41177d36be0"
    },
    {
      "role": "PRODUCTION-GUIDE",
      "path": "PRODUCTION-GUIDE.md",
      "url": "/characters/v2/oshitane/2.9.0/PRODUCTION-GUIDE.md",
      "mediaType": "text/markdown",
      "bytes": 1981,
      "sha256": "e0b2fcb4517462f88eb2846ce95d1e3922d9fdeb561d987190a6f02a1d92b295"
    },
    {
      "role": "CHANGELOG",
      "path": "CHANGELOG.md",
      "url": "/characters/v2/oshitane/2.9.0/CHANGELOG.md",
      "mediaType": "text/markdown",
      "bytes": 313,
      "sha256": "dde98ee1793bec3e58eef5e9a8e207df09332655eea4e36fa17a7dabe54712cd"
    },
    {
      "role": "gameplay-runtime",
      "path": "gameplay-runtime.json",
      "url": "/characters/v2/oshitane/2.9.0/gameplay-runtime.json",
      "mediaType": "application/json",
      "bytes": 4743,
      "sha256": "87053b89c2c9190eaf372000769d20105d5510dfd0de86f8f8c66323df13863f"
    },
    {
      "role": "media-oshitane-expressions-v1",
      "path": "media/oshitane-expressions-v1.png",
      "url": "/characters/v2/oshitane/2.9.0/media/oshitane-expressions-v1.png",
      "mediaType": "image/png",
      "bytes": 1306331,
      "sha256": "9bf44c16d9793fc29147c1b77478e4f03a22194c6ca5825ee90973188036c973"
    },
    {
      "role": "media-oshitane-reference-v1",
      "path": "media/oshitane-reference-v1.png",
      "url": "/characters/v2/oshitane/2.9.0/media/oshitane-reference-v1.png",
      "mediaType": "image/png",
      "bytes": 171728,
      "sha256": "2543ac1b28326e5ae9d63283e5b58a1b4c8d0f3c77f4e54ff64c0dbb3d2ff79e"
    },
    {
      "role": "media-frames-ready",
      "path": "media/frames/ready.png",
      "url": "/characters/v2/oshitane/2.9.0/media/frames/ready.png",
      "mediaType": "image/png",
      "bytes": 171728,
      "sha256": "2543ac1b28326e5ae9d63283e5b58a1b4c8d0f3c77f4e54ff64c0dbb3d2ff79e"
    },
    {
      "role": "media-frames-ready",
      "path": "media/frames/ready.webp",
      "url": "/characters/v2/oshitane/2.9.0/media/frames/ready.webp",
      "mediaType": "text/markdown",
      "bytes": 13170,
      "sha256": "bb21c6cb856fd2a6a6c16714f3a68f26b27908a7d5b0913f726c3afbe1e24718"
    },
    {
      "role": "media-frames-touch",
      "path": "media/frames/touch.png",
      "url": "/characters/v2/oshitane/2.9.0/media/frames/touch.png",
      "mediaType": "image/png",
      "bytes": 174562,
      "sha256": "21657bb77c223096262774630c6a8fb3cb297a5e8269c9dfd43c5910c1e43221"
    },
    {
      "role": "media-frames-touch",
      "path": "media/frames/touch.webp",
      "url": "/characters/v2/oshitane/2.9.0/media/frames/touch.webp",
      "mediaType": "text/markdown",
      "bytes": 13426,
      "sha256": "88fbb9e669638f8118f5200cc75819fae256fad8779b3a3d96385801a90d9c2f"
    },
    {
      "role": "media-frames-press-half",
      "path": "media/frames/press-half.png",
      "url": "/characters/v2/oshitane/2.9.0/media/frames/press-half.png",
      "mediaType": "image/png",
      "bytes": 163341,
      "sha256": "7b73aca5332b6bfa72fbd05810c119d19cd0590757cb9c85b572f5bba2edbec0"
    },
    {
      "role": "media-frames-press-half",
      "path": "media/frames/press-half.webp",
      "url": "/characters/v2/oshitane/2.9.0/media/frames/press-half.webp",
      "mediaType": "text/markdown",
      "bytes": 11768,
      "sha256": "42412a49660e1827b10610ba4df3ff8eeea7a0532b0972e0fc0918abe9899d8c"
    },
    {
      "role": "media-frames-accepted",
      "path": "media/frames/accepted.png",
      "url": "/characters/v2/oshitane/2.9.0/media/frames/accepted.png",
      "mediaType": "image/png",
      "bytes": 156107,
      "sha256": "390d52bed0b68d349b471d5b6d039fd3b77bdec2848695e52ec9e297d03d49b2"
    },
    {
      "role": "media-frames-accepted",
      "path": "media/frames/accepted.webp",
      "url": "/characters/v2/oshitane/2.9.0/media/frames/accepted.webp",
      "mediaType": "text/markdown",
      "bytes": 10992,
      "sha256": "9dc9ec69c7c8e5b619643f3e222e08720c1f9ea64303d92f4e59dce68f784f57"
    },
    {
      "role": "media-frames-release",
      "path": "media/frames/release.png",
      "url": "/characters/v2/oshitane/2.9.0/media/frames/release.png",
      "mediaType": "image/png",
      "bytes": 179306,
      "sha256": "54a0c5d93a88e14e194abaa348a92879517c7da0e16ca63bd5d3550d1965c9ee"
    },
    {
      "role": "media-frames-release",
      "path": "media/frames/release.webp",
      "url": "/characters/v2/oshitane/2.9.0/media/frames/release.webp",
      "mediaType": "text/markdown",
      "bytes": 15336,
      "sha256": "855286365c11f21aefcf85954d5947270e3f8850ba7b8c33cdf046af6ac05ff1"
    },
    {
      "role": "media-frames-ready-again",
      "path": "media/frames/ready-again.png",
      "url": "/characters/v2/oshitane/2.9.0/media/frames/ready-again.png",
      "mediaType": "image/png",
      "bytes": 166168,
      "sha256": "e1895cf1e5fa0e154abfbe32c29a804bdbdd71f194d537025afe0d6de5d11c1f"
    },
    {
      "role": "media-frames-ready-again",
      "path": "media/frames/ready-again.webp",
      "url": "/characters/v2/oshitane/2.9.0/media/frames/ready-again.webp",
      "mediaType": "text/markdown",
      "bytes": 13038,
      "sha256": "4faac192e3d62742d798ac65c5becc2568a51ee580030e72fa2b9736ff868a81"
    }
  ]
}
