{
  "schemaVersion": "1.0.0",
  "kind": "nandarona.character-2d-runtime",
  "characterId": "haritsuki",
  "familyId": "locomotion",
  "sourceRelease": "haritsuki@2.6.0",
  "canvas": {
    "width": 512,
    "height": 512,
    "background": "white-matte"
  },
  "rendering": {
    "sourceCanvas": {
      "width": 512,
      "height": 512,
      "background": "white-matte"
    },
    "includedFormats": [
      "png",
      "webp"
    ],
    "alphaStatus": "not-included",
    "recommendedBlend": "normal",
    "warning": "Current frames use a white matte. Transparent cutouts, engine-native movement controllers, navigation assets, physics bodies, and animation rigs are not included and must not be claimed as included."
  },
  "runtime": {
    "coordinateSystem": "normalized-2d-top-left",
    "defaultPivot": {
      "x": 0.5,
      "y": 0.5
    },
    "stateCount": 6,
    "transitionPolicy": "Interpolate declared locomotion channels between compatible poses; use state transitions for contact-mode, surface, medium, target, and formation changes.",
    "collisionPolicy": "Use the declared gameplay volume and contact policy. Artwork bounds and visible limbs are not authoritative collision.",
    "reducedMotion": "Move by short destination steps or 120ms crossfades while retaining facing, contact surface, depth, target distance, and formation state."
  },
  "motion": {
    "characterId": "haritsuki",
    "motionModel": "surface-normal-adhesion",
    "channels": [
      {
        "id": "adhesion",
        "type": "normalized",
        "range": [
          0,
          1
        ],
        "default": 0
      },
      {
        "id": "surfaceNormal",
        "type": "angle-degrees",
        "range": [
          -180,
          180
        ],
        "default": 0
      },
      {
        "id": "crawlSpeed",
        "type": "normalized",
        "range": [
          0,
          1
        ],
        "default": 0
      }
    ],
    "pivot": {
      "x": 0.5,
      "y": 0.62
    },
    "collision": "crescent-body-with-adhesion-strip",
    "loop": {
      "states": [
        "attach",
        "crawl-corner",
        "ceiling"
      ],
      "durationMs": 1200
    }
  },
  "frames": [
    {
      "state": "free",
      "index": 0,
      "png": "media/frames/free.png",
      "webp": "media/frames/free.webp",
      "sourceRect": {
        "x": 0,
        "y": 0,
        "width": 512,
        "height": 512
      },
      "contentBounds": {
        "x": 0.0195,
        "y": 0.5449,
        "width": 0.9746,
        "height": 0.4473
      }
    },
    {
      "state": "sense-surface",
      "index": 1,
      "png": "media/frames/sense-surface.png",
      "webp": "media/frames/sense-surface.webp",
      "sourceRect": {
        "x": 512,
        "y": 0,
        "width": 512,
        "height": 512
      },
      "contentBounds": {
        "x": 0.0117,
        "y": 0.4102,
        "width": 0.9766,
        "height": 0.582
      }
    },
    {
      "state": "attach",
      "index": 2,
      "png": "media/frames/attach.png",
      "webp": "media/frames/attach.webp",
      "sourceRect": {
        "x": 1024,
        "y": 0,
        "width": 512,
        "height": 512
      },
      "contentBounds": {
        "x": 0.0039,
        "y": 0.207,
        "width": 0.9766,
        "height": 0.7852
      }
    },
    {
      "state": "crawl-corner",
      "index": 3,
      "png": "media/frames/crawl-corner.png",
      "webp": "media/frames/crawl-corner.webp",
      "sourceRect": {
        "x": 0,
        "y": 512,
        "width": 512,
        "height": 512
      },
      "contentBounds": {
        "x": 0.0195,
        "y": 0.0098,
        "width": 0.8164,
        "height": 0.8848
      }
    },
    {
      "state": "ceiling",
      "index": 4,
      "png": "media/frames/ceiling.png",
      "webp": "media/frames/ceiling.webp",
      "sourceRect": {
        "x": 512,
        "y": 512,
        "width": 512,
        "height": 512
      },
      "contentBounds": {
        "x": 0.0117,
        "y": 0.0098,
        "width": 0.9766,
        "height": 0.3301
      }
    },
    {
      "state": "detach",
      "index": 5,
      "png": "media/frames/detach.png",
      "webp": "media/frames/detach.webp",
      "sourceRect": {
        "x": 1024,
        "y": 512,
        "width": 512,
        "height": 512
      },
      "contentBounds": {
        "x": 0.3379,
        "y": 0.0098,
        "width": 0.6426,
        "height": 0.9727
      }
    }
  ]
}
