{
  "pet_id": "youmiao",
  "display_name": "\u5e7d\u55b5",
  "description": "\u4e00\u53ea\u62ab\u7740\u6697\u7d2b\u5e7d\u5f71\u515c\u5e3d\u3001\u4ee5\u51b7\u9752\u9762\u7eb9\u89c2\u5bdf\u4efb\u52a1\u7684\u6c89\u9759\u732b\u5f62\u4f19\u4f34.",
  "created_at": "2026-07-16T06:34:52.627259+00:00",
  "sprite_version_number": 2,
  "atlas": {
    "columns": 8,
    "rows": 11,
    "cell_width": 192,
    "cell_height": 208,
    "width": 1536,
    "height": 2288
  },
  "rows": [
    {
      "state": "idle",
      "row": 0,
      "frames": 6,
      "purpose": "calm resting, breathing, and blinking loop"
    },
    {
      "state": "running-right",
      "row": 1,
      "frames": 8,
      "purpose": "rightward drag movement loop"
    },
    {
      "state": "running-left",
      "row": 2,
      "frames": 8,
      "purpose": "leftward drag movement loop"
    },
    {
      "state": "waving",
      "row": 3,
      "frames": 4,
      "purpose": "greeting or attention gesture"
    },
    {
      "state": "jumping",
      "row": 4,
      "frames": 5,
      "purpose": "hover or playful jump"
    },
    {
      "state": "failed",
      "row": 5,
      "frames": 8,
      "purpose": "blocked, failed, or cancelled reaction"
    },
    {
      "state": "waiting",
      "row": 6,
      "frames": 6,
      "purpose": "waiting for approval, help, or user input"
    },
    {
      "state": "running",
      "row": 7,
      "frames": 6,
      "purpose": "active task work or processing"
    },
    {
      "state": "review",
      "row": 8,
      "frames": 6,
      "purpose": "ready or completed output review"
    },
    {
      "state": "look-row-9",
      "row": 9,
      "frames": 8,
      "directions": [
        "000",
        "022.5",
        "045",
        "067.5",
        "090",
        "112.5",
        "135",
        "157.5"
      ],
      "purpose": "clockwise look directions from up through down-right"
    },
    {
      "state": "look-row-10",
      "row": 10,
      "frames": 8,
      "directions": [
        "180",
        "202.5",
        "225",
        "247.5",
        "270",
        "292.5",
        "315",
        "337.5"
      ],
      "purpose": "clockwise look directions from down through up-left"
    }
  ],
  "layout_guides": [
    {
      "state": "idle",
      "path": "references\\layout-guides\\idle.png",
      "width": 1152,
      "height": 208,
      "frames": 6,
      "cell_width": 192,
      "cell_height": 208,
      "safe_margin_x": 18,
      "safe_margin_y": 16,
      "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips"
    },
    {
      "state": "running-right",
      "path": "references\\layout-guides\\running-right.png",
      "width": 1536,
      "height": 208,
      "frames": 8,
      "cell_width": 192,
      "cell_height": 208,
      "safe_margin_x": 18,
      "safe_margin_y": 16,
      "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips"
    },
    {
      "state": "running-left",
      "path": "references\\layout-guides\\running-left.png",
      "width": 1536,
      "height": 208,
      "frames": 8,
      "cell_width": 192,
      "cell_height": 208,
      "safe_margin_x": 18,
      "safe_margin_y": 16,
      "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips"
    },
    {
      "state": "waving",
      "path": "references\\layout-guides\\waving.png",
      "width": 768,
      "height": 208,
      "frames": 4,
      "cell_width": 192,
      "cell_height": 208,
      "safe_margin_x": 18,
      "safe_margin_y": 16,
      "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips"
    },
    {
      "state": "jumping",
      "path": "references\\layout-guides\\jumping.png",
      "width": 960,
      "height": 208,
      "frames": 5,
      "cell_width": 192,
      "cell_height": 208,
      "safe_margin_x": 18,
      "safe_margin_y": 16,
      "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips"
    },
    {
      "state": "failed",
      "path": "references\\layout-guides\\failed.png",
      "width": 1536,
      "height": 208,
      "frames": 8,
      "cell_width": 192,
      "cell_height": 208,
      "safe_margin_x": 18,
      "safe_margin_y": 16,
      "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips"
    },
    {
      "state": "waiting",
      "path": "references\\layout-guides\\waiting.png",
      "width": 1152,
      "height": 208,
      "frames": 6,
      "cell_width": 192,
      "cell_height": 208,
      "safe_margin_x": 18,
      "safe_margin_y": 16,
      "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips"
    },
    {
      "state": "running",
      "path": "references\\layout-guides\\running.png",
      "width": 1152,
      "height": 208,
      "frames": 6,
      "cell_width": 192,
      "cell_height": 208,
      "safe_margin_x": 18,
      "safe_margin_y": 16,
      "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips"
    },
    {
      "state": "review",
      "path": "references\\layout-guides\\review.png",
      "width": 1152,
      "height": 208,
      "frames": 6,
      "cell_width": 192,
      "cell_height": 208,
      "safe_margin_x": 18,
      "safe_margin_y": 16,
      "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips"
    },
    {
      "state": "look-row-9",
      "path": "references\\layout-guides\\look-row-9.png",
      "width": 1536,
      "height": 208,
      "frames": 8,
      "cell_width": 192,
      "cell_height": 208,
      "safe_margin_x": 18,
      "safe_margin_y": 16,
      "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips"
    },
    {
      "state": "look-row-10",
      "path": "references\\layout-guides\\look-row-10.png",
      "width": 1536,
      "height": 208,
      "frames": 8,
      "cell_width": 192,
      "cell_height": 208,
      "safe_margin_x": 18,
      "safe_margin_y": 16,
      "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips"
    },
    {
      "state": "look-cardinals",
      "path": "references\\layout-guides\\look-cardinals.png",
      "width": 768,
      "height": 208,
      "frames": 4,
      "cell_width": 192,
      "cell_height": 208,
      "safe_margin_x": 18,
      "safe_margin_y": 16,
      "usage": "layout guide input only; do not copy visible guide lines into generated sprite strips"
    }
  ],
  "references": [
    {
      "path": "D:\\code\\water\\tmp\\hatch-pet\\omen-cat\\run\\references\\reference-01.png",
      "width": 364,
      "height": 354,
      "mode": "RGB",
      "format": "PNG",
      "source_path": "D:\\code\\water\\tmp\\hatch-pet\\omen-cat\\reference\\omen-cat-source.png",
      "copied_path": "D:\\code\\water\\tmp\\hatch-pet\\omen-cat\\run\\references\\reference-01.png"
    }
  ],
  "chroma_key": {
    "hex": "#FFFF00",
    "rgb": [
      255,
      255,
      0
    ],
    "name": "yellow",
    "selection": "auto",
    "score": 217.85
  },
  "pet_notes": "Dark Omen-inspired cartoon cat; oversized angular purple cat-eared hood; black void face with three cyan energy marks; compact feline body; broad charcoal armor and bandage wraps; long attached tail; no weapons, logos, text, scenery, shadows, smoke, particles, detached effects, blur, or bloom",
  "style_preset": "flat-vector",
  "style_notes": "Dark flat illustration with restrained cel shading, broad readable armor shapes, crisp opaque cyan marks, compact sprite-safe silhouette",
  "style_contract": "Pet-safe sprite: compact full-body mascot, readable in a 192x208 cell, clear silhouette, simple face, stable palette/materials, and crisp edges for chroma-key extraction. Style `flat-vector`: Flat vector-style mascot with simple geometric forms, crisp color areas, clean outline, and minimal shading. User style notes: Dark flat illustration with restrained cel shading, broad readable armor shapes, crisp opaque cyan marks, compact sprite-safe silhouette.",
  "brand_name": "",
  "brand_brief": "",
  "brand_sources": [],
  "pet_safe_style": "Pet-safe sprite: compact full-body mascot, readable in a 192x208 cell, clear silhouette, simple face, stable palette/materials, and crisp edges for chroma-key extraction.",
  "primary_generation_skill": "$imagegen"
}
