{
  "$schema": "/characters/v2/schemas/release.schema.json",
  "schemaVersion": "2.0.0",
  "kind": "nandarona.public-character-release",
  "releaseId": "hyoshino@2.9.0",
  "characterId": "hyoshino",
  "familyId": "input",
  "version": "2.9.0",
  "releasedAt": "2026-07-30",
  "status": "published",
  "immutable": true,
  "pageUrl": "/characters/hyoshino/",
  "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/hyoshino/2.9.0/profile.json",
      "mediaType": "application/json",
      "bytes": 2471,
      "sha256": "3893df3c3efc7e45593c584301e66ab912e5ec813d9cdd9ffb2e2c0ba418b0da"
    },
    {
      "role": "knowledge-base",
      "path": "knowledge-base.json",
      "url": "/characters/v2/hyoshino/2.9.0/knowledge-base.json",
      "mediaType": "application/json",
      "bytes": 10541,
      "sha256": "7507c1ab2c1ae2fd3941b3cb8c24ffa91b870f19aa14e61f2a0feea9d407d036"
    },
    {
      "role": "ai-index",
      "path": "ai-index.json",
      "url": "/characters/v2/hyoshino/2.9.0/ai-index.json",
      "mediaType": "application/json",
      "bytes": 1385,
      "sha256": "755cb4a5c3bb366ae383c35fe5deed8b1bdd1bfa1e65774342d9cae9974bfbd9"
    },
    {
      "role": "prompt-pack",
      "path": "prompt-pack.json",
      "url": "/characters/v2/hyoshino/2.9.0/prompt-pack.json",
      "mediaType": "application/json",
      "bytes": 2895,
      "sha256": "53524e97175d711473561e272c86f8d757cccec3faaa155bfbdf954c5b09f616"
    },
    {
      "role": "state-machine",
      "path": "state-machine.json",
      "url": "/characters/v2/hyoshino/2.9.0/state-machine.json",
      "mediaType": "application/json",
      "bytes": 2695,
      "sha256": "58f5eed2069983276c20e86f68b19e1e4b45361264aea05e9212f02b4b7b871f"
    },
    {
      "role": "use-profiles",
      "path": "use-profiles.json",
      "url": "/characters/v2/hyoshino/2.9.0/use-profiles.json",
      "mediaType": "application/json",
      "bytes": 2295,
      "sha256": "609b31a48c2b3176ff568a3f36dc1612d6a37a3f04bc9654e19f38e1b442ca12"
    },
    {
      "role": "asset-provenance",
      "path": "asset-provenance.json",
      "url": "/characters/v2/hyoshino/2.9.0/asset-provenance.json",
      "mediaType": "application/json",
      "bytes": 1888,
      "sha256": "b4fe337775e88be3f106549c9a51cadd1995234e8a5a56d133fdf0178c67caf6"
    },
    {
      "role": "RIGHTS",
      "path": "RIGHTS.md",
      "url": "/characters/v2/hyoshino/2.9.0/RIGHTS.md",
      "mediaType": "text/markdown",
      "bytes": 464,
      "sha256": "7a9ef962bc9259a39c8075f12a476ccd976b6d70f69f325939e3e00cf687dae3"
    },
    {
      "role": "ATTRIBUTION",
      "path": "ATTRIBUTION.md",
      "url": "/characters/v2/hyoshino/2.9.0/ATTRIBUTION.md",
      "mediaType": "text/markdown",
      "bytes": 178,
      "sha256": "e760a0f256969b853e57643e1bb2763b053f2c3bbfa2a30a6101f3d32f442316"
    },
    {
      "role": "PRODUCTION-GUIDE",
      "path": "PRODUCTION-GUIDE.md",
      "url": "/characters/v2/hyoshino/2.9.0/PRODUCTION-GUIDE.md",
      "mediaType": "text/markdown",
      "bytes": 1993,
      "sha256": "8ba4e277d8a346bede9b3f1dcc9777e7cf8d1bcf9d828da6b2f8fd74935eacab"
    },
    {
      "role": "CHANGELOG",
      "path": "CHANGELOG.md",
      "url": "/characters/v2/hyoshino/2.9.0/CHANGELOG.md",
      "mediaType": "text/markdown",
      "bytes": 313,
      "sha256": "dde98ee1793bec3e58eef5e9a8e207df09332655eea4e36fa17a7dabe54712cd"
    },
    {
      "role": "gameplay-runtime",
      "path": "gameplay-runtime.json",
      "url": "/characters/v2/hyoshino/2.9.0/gameplay-runtime.json",
      "mediaType": "application/json",
      "bytes": 4830,
      "sha256": "2154005a61e321aeb6e00d43665a3f964fbd8412cad3bfc288a18822603be2e0"
    },
    {
      "role": "media-hyoshino-expressions-v1",
      "path": "media/hyoshino-expressions-v1.png",
      "url": "/characters/v2/hyoshino/2.9.0/media/hyoshino-expressions-v1.png",
      "mediaType": "image/png",
      "bytes": 1246040,
      "sha256": "9ff8ecd66945ee24c09f6cbaf52c8fb9ea9eaf8ff1f696566bb40f589a02a274"
    },
    {
      "role": "media-hyoshino-reference-v1",
      "path": "media/hyoshino-reference-v1.png",
      "url": "/characters/v2/hyoshino/2.9.0/media/hyoshino-reference-v1.png",
      "mediaType": "image/png",
      "bytes": 153134,
      "sha256": "4283202c8b0b0d4a979ad6aaf3a407eb7b2b7c581eadbf09201ab062caefcacf"
    },
    {
      "role": "media-frames-beat-far",
      "path": "media/frames/beat-far.png",
      "url": "/characters/v2/hyoshino/2.9.0/media/frames/beat-far.png",
      "mediaType": "image/png",
      "bytes": 153134,
      "sha256": "4283202c8b0b0d4a979ad6aaf3a407eb7b2b7c581eadbf09201ab062caefcacf"
    },
    {
      "role": "media-frames-beat-far",
      "path": "media/frames/beat-far.webp",
      "url": "/characters/v2/hyoshino/2.9.0/media/frames/beat-far.webp",
      "mediaType": "text/markdown",
      "bytes": 11344,
      "sha256": "7927184b8aebfc06d41ab6d57a03ec77cbf4b513f55c0ab12ff8179517f719ab"
    },
    {
      "role": "media-frames-beat-approach",
      "path": "media/frames/beat-approach.png",
      "url": "/characters/v2/hyoshino/2.9.0/media/frames/beat-approach.png",
      "mediaType": "image/png",
      "bytes": 160599,
      "sha256": "bdfddb8cd4d50bc7a56fdb48f66f105de72afefc8421a15e950092a975c61b45"
    },
    {
      "role": "media-frames-beat-approach",
      "path": "media/frames/beat-approach.webp",
      "url": "/characters/v2/hyoshino/2.9.0/media/frames/beat-approach.webp",
      "mediaType": "text/markdown",
      "bytes": 14890,
      "sha256": "10b1197eca27130b4d3f5179bd4ddf13efd06396eed2d3b69a03e825672b2cb5"
    },
    {
      "role": "media-frames-early-zone",
      "path": "media/frames/early-zone.png",
      "url": "/characters/v2/hyoshino/2.9.0/media/frames/early-zone.png",
      "mediaType": "image/png",
      "bytes": 164569,
      "sha256": "1c1e21310c5b49c4027152c4d28c14c19253c060f204c41d043e27ab77cf397e"
    },
    {
      "role": "media-frames-early-zone",
      "path": "media/frames/early-zone.webp",
      "url": "/characters/v2/hyoshino/2.9.0/media/frames/early-zone.webp",
      "mediaType": "text/markdown",
      "bytes": 15872,
      "sha256": "f63f978bed05a88c6118159787fcb78dca120d8febe9a195293159812c64740e"
    },
    {
      "role": "media-frames-accept-zone",
      "path": "media/frames/accept-zone.png",
      "url": "/characters/v2/hyoshino/2.9.0/media/frames/accept-zone.png",
      "mediaType": "image/png",
      "bytes": 152432,
      "sha256": "df36887ea5fe9738eb9d984893c2d2e2391a78b885f06448b38934c1515c4a11"
    },
    {
      "role": "media-frames-accept-zone",
      "path": "media/frames/accept-zone.webp",
      "url": "/characters/v2/hyoshino/2.9.0/media/frames/accept-zone.webp",
      "mediaType": "text/markdown",
      "bytes": 12296,
      "sha256": "b56cdd156f43512b8fa0a1d8c2b0310c17177c437000f527f3f02d69ca5842bc"
    },
    {
      "role": "media-frames-late-zone",
      "path": "media/frames/late-zone.png",
      "url": "/characters/v2/hyoshino/2.9.0/media/frames/late-zone.png",
      "mediaType": "image/png",
      "bytes": 158645,
      "sha256": "3605d09579c390d390991efa4a30fbbdc02276362ed9d7e062aeedc4c5c3b647"
    },
    {
      "role": "media-frames-late-zone",
      "path": "media/frames/late-zone.webp",
      "url": "/characters/v2/hyoshino/2.9.0/media/frames/late-zone.webp",
      "mediaType": "text/markdown",
      "bytes": 14840,
      "sha256": "6e0616d1b59d8854950438af8196c9845e85c2f2b2e1acb3343a6430cf42fa53"
    },
    {
      "role": "media-frames-next-beat",
      "path": "media/frames/next-beat.png",
      "url": "/characters/v2/hyoshino/2.9.0/media/frames/next-beat.png",
      "mediaType": "image/png",
      "bytes": 156073,
      "sha256": "a836d063e3ed307a48becbbeee2b00e534bf2e703fe5b80f280988d90fed0f0e"
    },
    {
      "role": "media-frames-next-beat",
      "path": "media/frames/next-beat.webp",
      "url": "/characters/v2/hyoshino/2.9.0/media/frames/next-beat.webp",
      "mediaType": "text/markdown",
      "bytes": 14202,
      "sha256": "6025a5af6f67965c88fd4ef7d58e0a95b5748bba54c0af5777cf2c46bfe4fb34"
    }
  ]
}
