{
  "frameSize": {
    "width": 220,
    "height": 260
  },
  "generatedAt": "2026-05-20T17:04:14.211Z",
  "source": "homepage-companion-action-sheet-generator",
  "implementation": "codex-pets-style-row-based-spritesheet",
  "actions": [
    {
      "id": "idle",
      "label": "Idle",
      "row": 0,
      "frames": 6,
      "fps": 5,
      "loop": true
    },
    {
      "id": "breathe",
      "label": "Breathe",
      "row": 1,
      "frames": 6,
      "fps": 5,
      "loop": true
    },
    {
      "id": "blink",
      "label": "Blink",
      "row": 2,
      "frames": 4,
      "fps": 6,
      "loop": true
    },
    {
      "id": "look-left",
      "label": "Look left",
      "row": 3,
      "frames": 4,
      "fps": 5,
      "loop": true
    },
    {
      "id": "look-right",
      "label": "Look right",
      "row": 4,
      "frames": 4,
      "fps": 5,
      "loop": true
    },
    {
      "id": "listen",
      "label": "Listen",
      "row": 5,
      "frames": 5,
      "fps": 5,
      "loop": true
    },
    {
      "id": "shy",
      "label": "Shy",
      "row": 6,
      "frames": 6,
      "fps": 6,
      "loop": true
    },
    {
      "id": "smile",
      "label": "Smile",
      "row": 7,
      "frames": 5,
      "fps": 5,
      "loop": true
    },
    {
      "id": "wave",
      "label": "Wave",
      "row": 8,
      "frames": 6,
      "fps": 8,
      "loop": true
    },
    {
      "id": "nod",
      "label": "Nod",
      "row": 9,
      "frames": 5,
      "fps": 7,
      "loop": true
    },
    {
      "id": "shake-head",
      "label": "Shake head",
      "row": 10,
      "frames": 6,
      "fps": 7,
      "loop": true
    },
    {
      "id": "talk-soft",
      "label": "Talk soft",
      "row": 11,
      "frames": 6,
      "fps": 7,
      "loop": true
    },
    {
      "id": "talk-excited",
      "label": "Talk excited",
      "row": 12,
      "frames": 6,
      "fps": 9,
      "loop": true
    },
    {
      "id": "think",
      "label": "Think",
      "row": 13,
      "frames": 6,
      "fps": 5,
      "loop": true
    },
    {
      "id": "point",
      "label": "Point",
      "row": 14,
      "frames": 5,
      "fps": 7,
      "loop": true
    },
    {
      "id": "cheer",
      "label": "Cheer",
      "row": 15,
      "frames": 6,
      "fps": 8,
      "loop": true
    },
    {
      "id": "jump",
      "label": "Jump",
      "row": 16,
      "frames": 5,
      "fps": 8,
      "loop": true
    },
    {
      "id": "hop",
      "label": "Hop",
      "row": 17,
      "frames": 5,
      "fps": 8,
      "loop": true
    },
    {
      "id": "walk",
      "label": "Walk",
      "row": 18,
      "frames": 8,
      "fps": 8,
      "loop": true
    },
    {
      "id": "stroll",
      "label": "Stroll",
      "row": 19,
      "frames": 8,
      "fps": 6,
      "loop": true
    },
    {
      "id": "run",
      "label": "Run",
      "row": 20,
      "frames": 8,
      "fps": 10,
      "loop": true
    },
    {
      "id": "drift",
      "label": "Drift",
      "row": 21,
      "frames": 6,
      "fps": 5,
      "loop": true
    },
    {
      "id": "sit",
      "label": "Sit",
      "row": 22,
      "frames": 5,
      "fps": 4,
      "loop": true
    },
    {
      "id": "lean",
      "label": "Lean",
      "row": 23,
      "frames": 5,
      "fps": 4,
      "loop": true
    },
    {
      "id": "peek",
      "label": "Peek",
      "row": 24,
      "frames": 5,
      "fps": 5,
      "loop": true
    },
    {
      "id": "wait",
      "label": "Wait",
      "row": 25,
      "frames": 6,
      "fps": 5,
      "loop": true
    },
    {
      "id": "review",
      "label": "Review",
      "row": 26,
      "frames": 6,
      "fps": 5,
      "loop": true
    },
    {
      "id": "failed",
      "label": "Failed",
      "row": 27,
      "frames": 6,
      "fps": 5,
      "loop": true
    },
    {
      "id": "surprised",
      "label": "Surprised",
      "row": 28,
      "frames": 5,
      "fps": 7,
      "loop": true
    },
    {
      "id": "heart",
      "label": "Heart",
      "row": 29,
      "frames": 6,
      "fps": 7,
      "loop": true
    },
    {
      "id": "meet",
      "label": "Meet",
      "row": 30,
      "frames": 6,
      "fps": 8,
      "loop": true
    },
    {
      "id": "dance",
      "label": "Dance",
      "row": 31,
      "frames": 8,
      "fps": 9,
      "loop": true
    },
    {
      "id": "spin",
      "label": "Spin",
      "row": 32,
      "frames": 8,
      "fps": 9,
      "loop": true
    },
    {
      "id": "photograph",
      "label": "Photograph",
      "row": 33,
      "frames": 5,
      "fps": 5,
      "loop": true
    },
    {
      "id": "read",
      "label": "Read",
      "row": 34,
      "frames": 6,
      "fps": 5,
      "loop": true
    },
    {
      "id": "write",
      "label": "Write",
      "row": 35,
      "frames": 6,
      "fps": 6,
      "loop": true
    },
    {
      "id": "map-check",
      "label": "Map check",
      "row": 36,
      "frames": 6,
      "fps": 5,
      "loop": true
    },
    {
      "id": "sleepy",
      "label": "Sleepy",
      "row": 37,
      "frames": 6,
      "fps": 4,
      "loop": true
    }
  ],
  "characters": {
    "an": {
      "displayName": "小武",
      "sheet": "/companions/action-sheets/an-actions.webp"
    },
    "yu": {
      "displayName": "小郑",
      "sheet": "/companions/action-sheets/yu-actions.webp"
    }
  }
}
