{
  "schemaVersion": "1.0.0",
  "kind": "nandarona.character-2d-runtime",
  "characterId": "katamori",
  "familyId": "tactile",
  "sourceRelease": "katamori@2.5.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, physics bodies, and engine-native materials 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 manipulation channels; use state changes for contacts, attachment, release, and topology changes.",
    "collisionPolicy": "Use the declared gameplay volume or joint. Artwork content bounds are never authoritative collision.",
    "reducedMotion": "Jump to the destination transform or use a 120ms opacity crossfade; preserve contact, direction, and attachment information without flashing."
  },
  "motion": {
    "characterId": "katamori",
    "motionModel": "movable-center-of-mass",
    "channels": [
      {
        "id": "massPosition",
        "type": "normalized",
        "range": [
          -1,
          1
        ],
        "default": 0
      },
      {
        "id": "bodyTilt",
        "type": "angle-degrees",
        "range": [
          -35,
          35
        ],
        "default": 0
      },
      {
        "id": "contactPressure",
        "type": "normalized",
        "range": [
          0,
          1
        ],
        "default": 0.5
      }
    ],
    "pivot": {
      "x": 0.5,
      "y": 0.7
    },
    "collision": "tilting-hull-with-movable-mass",
    "loop": {
      "states": [
        "shift-left",
        "left-tilt",
        "rebalance"
      ],
      "durationMs": 1100
    }
  },
  "frames": [
    {
      "state": "centered",
      "index": 0,
      "png": "media/frames/centered.png",
      "webp": "media/frames/centered.webp",
      "sourceRect": {
        "x": 0,
        "y": 0,
        "width": 512,
        "height": 512
      },
      "contentBounds": {
        "x": 0.0898,
        "y": 0.3926,
        "width": 0.8301,
        "height": 0.3809
      }
    },
    {
      "state": "shift-left",
      "index": 1,
      "png": "media/frames/shift-left.png",
      "webp": "media/frames/shift-left.webp",
      "sourceRect": {
        "x": 512,
        "y": 0,
        "width": 512,
        "height": 512
      },
      "contentBounds": {
        "x": 0.0996,
        "y": 0.3867,
        "width": 0.8164,
        "height": 0.3867
      }
    },
    {
      "state": "left-tilt",
      "index": 2,
      "png": "media/frames/left-tilt.png",
      "webp": "media/frames/left-tilt.webp",
      "sourceRect": {
        "x": 1024,
        "y": 0,
        "width": 512,
        "height": 512
      },
      "contentBounds": {
        "x": 0.0547,
        "y": 0.2734,
        "width": 0.8438,
        "height": 0.5098
      }
    },
    {
      "state": "shift-right",
      "index": 3,
      "png": "media/frames/shift-right.png",
      "webp": "media/frames/shift-right.webp",
      "sourceRect": {
        "x": 0,
        "y": 512,
        "width": 512,
        "height": 512
      },
      "contentBounds": {
        "x": 0.0898,
        "y": 0.2402,
        "width": 0.8301,
        "height": 0.3906
      }
    },
    {
      "state": "right-tilt",
      "index": 4,
      "png": "media/frames/right-tilt.png",
      "webp": "media/frames/right-tilt.webp",
      "sourceRect": {
        "x": 512,
        "y": 512,
        "width": 512,
        "height": 512
      },
      "contentBounds": {
        "x": 0.0645,
        "y": 0.1699,
        "width": 0.8555,
        "height": 0.4824
      }
    },
    {
      "state": "rebalance",
      "index": 5,
      "png": "media/frames/rebalance.png",
      "webp": "media/frames/rebalance.webp",
      "sourceRect": {
        "x": 1024,
        "y": 512,
        "width": 512,
        "height": 512
      },
      "contentBounds": {
        "x": 0.084,
        "y": 0.2363,
        "width": 0.8125,
        "height": 0.3945
      }
    }
  ]
}
