[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "barstool",
    "seat_height_type": "bar",
    "back_style": "mid-back",
    "arm_style": "armless"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "walnut",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "espresso",
    "upholstery_material": "leather",
    "color": "forest-green",
    "cushion_style": "tight-seat",
    "welt_type": "none",
    "nailhead_trim": false,
    "arm_pad": false,
    "footrest_type": "rail-chrome",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "seat cushion",
      "material": "foam",
      "qty": 1,
      "unit": "pc",
      "dept": "seating",
      "spec": "green fabric"
    },
    {
      "name": "backrest",
      "material": "leather",
      "qty": 1,
      "unit": "pc",
      "dept": "seating",
      "spec": "black"
    },
    {
      "name": "frame",
      "material": "wood",
      "qty": 1,
      "unit": "pc",
      "dept": "structure",
      "spec": "walnut, espresso finish"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "barstool",
    "seat_height_type": "bar",
    "back_style": "mid-back",
    "arm_style": "armless"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "walnut",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "espresso",
    "upholstery_material": "woven-textile",
    "color": "mocha-brown",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": false,
    "footrest_type": "rail-chrome",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "Seat Cushion",
      "material": "linen",
      "qty": 1,
      "unit": "each",
      "dept": "seating",
      "spec": "tight-seat cushion"
    },
    {
      "name": "Back Cushion",
      "material": "linen",
      "qty": 1,
      "unit": "each",
      "dept": "seating",
      "spec": "high-back cushion"
    },
    {
      "name": "Frame",
      "material": "walnut",
      "qty": 1,
      "unit": "unit",
      "dept": "structural",
      "spec": "tapered legs, espresso finish"
    },
    {
      "name": "H-Stretcher",
      "material": "metal",
      "qty": 2,
      "unit": "unit",
      "dept": "structural",
      "spec": "silver finish"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "barstool",
    "seat_height_type": "bar",
    "back_style": "mid-back",
    "arm_style": "armless"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "walnut",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "espresso",
    "upholstery_material": "leather",
    "color": "charcoal-brown",
    "cushion_style": "tight-seat",
    "welt_type": "none",
    "nailhead_trim": false,
    "arm_pad": false,
    "footrest_type": "H-stretcher-chrome",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "seat",
      "material": "leather",
      "qty": 1,
      "unit": "each",
      "dept": "seating",
      "spec": "brown leather"
    },
    {
      "name": "back",
      "material": "leather",
      "qty": 1,
      "unit": "each",
      "dept": "seating",
      "spec": "brown leather"
    },
    {
      "name": "frame",
      "material": "walnut wood",
      "qty": 1,
      "unit": "each",
      "dept": "structural",
      "spec": "walnut wood, espresso finish"
    },
    {
      "name": "H-stretcher",
      "material": "metal",
      "qty": 2,
      "unit": "each",
      "dept": "structural",
      "spec": "metallic silver"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "mid-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "walnut",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "espresso",
    "upholstery_material": "woven-textile",
    "color": "gold",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "seat cushion",
      "material": "foam",
      "qty": 1,
      "unit": "pc",
      "dept": "seating",
      "spec": "high-density foam"
    },
    {
      "name": "back cushion",
      "material": "foam",
      "qty": 1,
      "unit": "pc",
      "dept": "seating",
      "spec": "high-density foam"
    },
    {
      "name": "frame",
      "material": "solid wood",
      "qty": 1,
      "unit": "pc",
      "dept": "structure",
      "spec": "solid walnut"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "barstool",
    "seat_height_type": "bar",
    "back_style": "mid-back",
    "arm_style": "armless"
  },
  "visual_attributes": {
    "frame_material": "metal",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "tubular",
    "finish": "black",
    "upholstery_material": "corduroy",
    "color": "teal",
    "cushion_style": "channel-tufted",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": false,
    "footrest_type": "H-stretcher-copper",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "seat",
      "material": "corduroy",
      "qty": 1,
      "unit": "each",
      "dept": "seating",
      "spec": "pleated"
    },
    {
      "name": "back",
      "material": "corduroy",
      "qty": 1,
      "unit": "each",
      "dept": "seating",
      "spec": "pleated"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "barstool",
    "seat_height_type": "bar",
    "back_style": "low-back",
    "arm_style": "armless"
  },
  "visual_attributes": {
    "frame_material": "metal",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "tubular",
    "finish": "matte-black",
    "upholstery_material": "vinyl",
    "color": "forest-green",
    "cushion_style": "channel-tufted",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": false,
    "footrest_type": "rail-matte-black",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "seat",
      "material": "velvet",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "pleated"
    },
    {
      "name": "back",
      "material": "velvet",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "pleated"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "high-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "espresso",
    "upholstery_material": "woven-jacquard",
    "color": "rust-orange",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "seat cushion",
      "material": "leather",
      "qty": 1,
      "unit": "each",
      "dept": "seating",
      "spec": "gray"
    },
    {
      "name": "back panel",
      "material": "fabric",
      "qty": 2,
      "unit": "each",
      "dept": "seating",
      "spec": "brown with white dots"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "sofa",
    "seat_height_type": "standard",
    "back_style": "mid-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "walnut",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "walnut",
    "upholstery_material": "velvet",
    "color": "ivory",
    "cushion_style": "button-tufted",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "Sofa Frame",
      "material": "metal",
      "qty": 1,
      "unit": "unit",
      "dept": "assembly",
      "spec": "tapered legs, brushed-aluminum finish"
    },
    {
      "name": "Sofa Upholstery",
      "material": "velvet",
      "qty": 1,
      "unit": "unit",
      "dept": "upholstery",
      "spec": "taupe color, button-tufted cushions"
    },
    {
      "name": "Sofa Legs",
      "material": "metal",
      "qty": 4,
      "unit": "unit",
      "dept": "assembly",
      "spec": "tapered, brushed-aluminum finish"
    },
    {
      "name": "Sofa Glides",
      "material": "plastic",
      "qty": 4,
      "unit": "unit",
      "dept": "assembly",
      "spec": "floor-mounted, hanger bolts"
    },
    {
      "name": "Sofa Welt",
      "material": "fabric",
      "qty": 2,
      "unit": "unit",
      "dept": "upholstery",
      "spec": "single-welt, taupe color"
    },
    {
      "name": "Sofa Arm Pads",
      "material": "foam",
      "qty": 2,
      "unit": "unit",
      "dept": "upholstery",
      "spec": "taupe color"
    },
    {
      "name": "Sofa Cushions",
      "material": "foam",
      "qty": 3,
      "unit": "unit",
      "dept": "upholstery",
      "spec": "taupe color, button-tufted"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "sofa",
    "seat_height_type": "standard",
    "back_style": "low-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "walnut",
    "upholstery_material": "velvet",
    "color": "taupe",
    "cushion_style": "button-tufted",
    "welt_type": "double-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "Sofa Frame",
      "material": "metal",
      "qty": 1,
      "unit": "unit",
      "dept": "structure",
      "spec": "tapered legs, brushed-aluminum finish"
    },
    {
      "name": "Sofa Upholstery",
      "material": "velvet",
      "qty": 1,
      "unit": "unit",
      "dept": "upholstery",
      "spec": "taupe color, button-tufted cushions, double-welt welt"
    },
    {
      "name": "Legs",
      "material": "metal",
      "qty": 4,
      "unit": "unit",
      "dept": "structure",
      "spec": "tapered, brushed-aluminum finish"
    },
    {
      "name": "Welt",
      "material": "fabric",
      "qty": 2,
      "unit": "unit",
      "dept": "upholstery",
      "spec": "double-welt"
    },
    {
      "name": "Nailhead Trim",
      "material": "metal",
      "qty": 0,
      "unit": "unit",
      "dept": "trim",
      "spec": "none"
    },
    {
      "name": "Arm Pads",
      "material": "foam",
      "qty": 2,
      "unit": "unit",
      "dept": "upholstery",
      "spec": "taupe color"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "high-back",
    "arm_style": "tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "espresso",
    "upholstery_material": "woven-textile",
    "color": "tan",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": false,
    "footrest_type": "none",
    "tablet_arm": true
  },
  "parts": [
    {
      "name": "seat cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density foam"
    },
    {
      "name": "back cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density foam"
    },
    {
      "name": "tablet arm",
      "material": "metal",
      "qty": 1,
      "unit": "piece",
      "dept": "furniture",
      "spec": "aluminum"
    },
    {
      "name": "table top",
      "material": "wood",
      "qty": 1,
      "unit": "piece",
      "dept": "furniture",
      "spec": "mahogany"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "high-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "beech",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "natural-oak",
    "upholstery_material": "bouclé",
    "color": "ivory",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "Seat Cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density foam"
    },
    {
      "name": "Back Cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density foam"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "high-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "espresso",
    "upholstery_material": "leather",
    "color": "white",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "seat cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density foam"
    },
    {
      "name": "back cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density foam"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "mid-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "cherry",
    "upholstery_material": "velvet",
    "color": "taupe",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "Seat Cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density foam"
    },
    {
      "name": "Back Cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density foam"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "mid-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "espresso",
    "upholstery_material": "woven-textile",
    "color": "taupe",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "Seat Cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density foam"
    },
    {
      "name": "Back Cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density foam"
    },
    {
      "name": "Upholstery Fabric",
      "material": "velvet",
      "qty": 1,
      "unit": "piece",
      "dept": "upholstery",
      "spec": "taupe"
    },
    {
      "name": "Welt Trim",
      "material": "cotton",
      "qty": 2,
      "unit": "piece",
      "dept": "trimming",
      "spec": "taupe"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "high-back",
    "arm_style": "armless"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "splay",
    "finish": "espresso",
    "upholstery_material": "velvet",
    "color": "olive-green",
    "cushion_style": "tight-seat",
    "welt_type": "none",
    "nailhead_trim": false,
    "arm_pad": false,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "seat cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density, 2-inch thick"
    },
    {
      "name": "back cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density, 2-inch thick"
    },
    {
      "name": "wooden frame",
      "material": "walnut",
      "qty": 1,
      "unit": "piece",
      "dept": "structural",
      "spec": "solid walnut, 1-inch thick"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "sofa",
    "seat_height_type": "standard",
    "back_style": "low-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "walnut",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "espresso",
    "upholstery_material": "velvet",
    "color": "gray",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "Seat Cushion",
      "material": "foam",
      "qty": 2,
      "unit": "each",
      "dept": "seating",
      "spec": "high-density"
    },
    {
      "name": "Back Cushion",
      "material": "foam",
      "qty": 2,
      "unit": "each",
      "dept": "seating",
      "spec": "high-density"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "high-back",
    "arm_style": "tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "pedestal",
    "finish": "natural-oak",
    "upholstery_material": "woven-textile",
    "color": "ivory",
    "cushion_style": "tight-seat",
    "welt_type": "none",
    "nailhead_trim": false,
    "arm_pad": false,
    "footrest_type": "none",
    "tablet_arm": true
  },
  "parts": [
    {
      "name": "seat frame",
      "material": "metal",
      "qty": 1,
      "unit": "each",
      "dept": "structure",
      "spec": "tubular legs"
    },
    {
      "name": "seat cushion",
      "material": "woven-rattan",
      "qty": 1,
      "unit": "each",
      "dept": "seating",
      "spec": "tight-seat"
    },
    {
      "name": "backrest",
      "material": "woven-rattan",
      "qty": 1,
      "unit": "each",
      "dept": "seating",
      "spec": "high-back"
    },
    {
      "name": "tablet arm",
      "material": "metal",
      "qty": 1,
      "unit": "each",
      "dept": "accessories",
      "spec": "tablet-arm"
    },
    {
      "name": "tablet tray",
      "material": "plastic",
      "qty": 1,
      "unit": "each",
      "dept": "accessories",
      "spec": "red"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "barstool",
    "seat_height_type": "bar",
    "back_style": "mid-back",
    "arm_style": "armless"
  },
  "visual_attributes": {
    "frame_material": "aluminum",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "tubular",
    "finish": "polished-aluminum",
    "upholstery_material": "woven-textile",
    "color": "black-and-white",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": false,
    "footrest_type": "H-stretcher-silver",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "Seat Frame",
      "material": "aluminum",
      "qty": 1,
      "unit": "each",
      "dept": "assembly",
      "spec": "tubular frame"
    },
    {
      "name": "Back Frame",
      "material": "aluminum",
      "qty": 1,
      "unit": "each",
      "dept": "assembly",
      "spec": "tubular frame"
    },
    {
      "name": "Woven Rattan Seat",
      "material": "woven-rattan",
      "qty": 1,
      "unit": "each",
      "dept": "upholstery",
      "spec": "black-and-white pattern"
    },
    {
      "name": "Woven Rattan Back",
      "material": "woven-rattan",
      "qty": 1,
      "unit": "each",
      "dept": "upholstery",
      "spec": "black-and-white pattern"
    },
    {
      "name": "Aluminum Legs",
      "material": "aluminum",
      "qty": 4,
      "unit": "each",
      "dept": "assembly",
      "spec": "tubular, polished"
    },
    {
      "name": "H-Stretcher Footrest",
      "material": "aluminum",
      "qty": 1,
      "unit": "each",
      "dept": "assembly",
      "spec": "polished"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "high-back",
    "arm_style": "tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "metal",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "splay",
    "finish": "brushed-aluminum",
    "upholstery_material": "leather",
    "color": "ivory",
    "cushion_style": "tight-seat",
    "welt_type": "none",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": true
  },
  "parts": [
    {
      "name": "Seat Cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density foam"
    },
    {
      "name": "Back Cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density foam"
    },
    {
      "name": "Tablet Arm",
      "material": "wood",
      "qty": 1,
      "unit": "piece",
      "dept": "arm",
      "spec": "solid wood arm"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "high-back",
    "arm_style": "tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "metal",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "splay",
    "finish": "brushed-aluminum",
    "upholstery_material": "leather",
    "color": "ivory",
    "cushion_style": "tight-seat",
    "welt_type": "none",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": true
  },
  "parts": [
    {
      "name": "seat cushion",
      "material": "foam",
      "qty": 1,
      "unit": "pc",
      "dept": "seating",
      "spec": "high-density, 2-inch thick"
    },
    {
      "name": "back cushion",
      "material": "foam",
      "qty": 1,
      "unit": "pc",
      "dept": "seating",
      "spec": "high-density, 3-inch thick"
    },
    {
      "name": "tablet arm",
      "material": "wood",
      "qty": 1,
      "unit": "pc",
      "dept": "hardware",
      "spec": "solid maple, 1-inch thick"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "settee",
    "seat_height_type": "standard",
    "back_style": "low-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "metal",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "splay",
    "finish": "brushed-aluminum",
    "upholstery_material": "velvet",
    "color": "orange",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "frame",
      "material": "metal",
      "qty": 1,
      "unit": "each",
      "dept": "structure",
      "spec": "hairpin legs, silver finish"
    },
    {
      "name": "seat",
      "material": "foam",
      "qty": 1,
      "unit": "each",
      "dept": "padding",
      "spec": "tight seat construction"
    },
    {
      "name": "back",
      "material": "foam",
      "qty": 2,
      "unit": "each",
      "dept": "padding",
      "spec": "low back construction"
    },
    {
      "name": "cushions",
      "material": "foam",
      "qty": 2,
      "unit": "each",
      "dept": "padding",
      "spec": "tight seat construction"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "settee",
    "seat_height_type": "standard",
    "back_style": "low-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "metal",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "splay",
    "finish": "brushed-aluminum",
    "upholstery_material": "velvet",
    "color": "orange",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "frame",
      "material": "metal",
      "qty": 1,
      "unit": "unit",
      "dept": "structure",
      "spec": "hairpin legs, silver finish"
    },
    {
      "name": "seat",
      "material": "foam",
      "qty": 1,
      "unit": "unit",
      "dept": "padding",
      "spec": "tight seat construction"
    },
    {
      "name": "back",
      "material": "foam",
      "qty": 2,
      "unit": "unit",
      "dept": "padding",
      "spec": "low back construction"
    },
    {
      "name": "cushions",
      "material": "foam",
      "qty": 4,
      "unit": "unit",
      "dept": "padding",
      "spec": "tight seat cushions"
    },
    {
      "name": "welt",
      "material": "fabric",
      "qty": 1,
      "unit": "unit",
      "dept": "trim",
      "spec": "single welt trim"
    },
    {
      "name": "arm pads",
      "material": "foam",
      "qty": 2,
      "unit": "unit",
      "dept": "padding",
      "spec": "arm pads"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "settee",
    "seat_height_type": "standard",
    "back_style": "low-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "metal",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "splay",
    "finish": "brushed-aluminum",
    "upholstery_material": "velvet",
    "color": "orange",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "seat cushion",
      "material": "foam",
      "qty": 2,
      "unit": "each",
      "dept": "seating",
      "spec": "10-inch thick"
    },
    {
      "name": "back cushions",
      "material": "foam",
      "qty": 2,
      "unit": "each",
      "dept": "seating",
      "spec": "8-inch thick"
    },
    {
      "name": "frame",
      "material": "metal",
      "qty": 1,
      "unit": "unit",
      "dept": "structure",
      "spec": "18-gauge steel"
    },
    {
      "name": "legs",
      "material": "metal",
      "qty": 4,
      "unit": "each",
      "dept": "structure",
      "spec": "hairpin legs, polished-silver"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "high-back",
    "arm_style": "tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "metal",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "splay",
    "finish": "brushed-aluminum",
    "upholstery_material": "leather",
    "color": "ivory",
    "cushion_style": "tight-seat",
    "welt_type": "none",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": true
  },
  "parts": [
    {
      "name": "seat cushion",
      "material": "foam",
      "qty": 1,
      "unit": "pc",
      "dept": "seating",
      "spec": "high-density, 2-inch thick"
    },
    {
      "name": "back cushion",
      "material": "foam",
      "qty": 1,
      "unit": "pc",
      "dept": "seating",
      "spec": "high-density, 2-inch thick"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "sofa",
    "seat_height_type": "standard",
    "back_style": "low-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "metal",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "splay",
    "finish": "brushed-aluminum",
    "upholstery_material": "velvet",
    "color": "mustard-yellow",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "frame",
      "material": "metal",
      "qty": 1,
      "unit": "set",
      "dept": "structure",
      "spec": "hairpin legs, brushed-aluminum finish"
    },
    {
      "name": "seat",
      "material": "foam",
      "qty": 1,
      "unit": "set",
      "dept": "padding",
      "spec": "tight-seating"
    },
    {
      "name": "back",
      "material": "foam",
      "qty": 3,
      "unit": "set",
      "dept": "padding",
      "spec": "low-back style"
    },
    {
      "name": "cushions",
      "material": "foam",
      "qty": 2,
      "unit": "set",
      "dept": "padding",
      "spec": "tight-seating"
    },
    {
      "name": "welt",
      "material": "fabric",
      "qty": 1,
      "unit": "set",
      "dept": "trim",
      "spec": "single-welt"
    },
    {
      "name": "arm pads",
      "material": "foam",
      "qty": 2,
      "unit": "set",
      "dept": "padding",
      "spec": "mustard-yellow fabric"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "mid-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "espresso",
    "upholstery_material": "woven-textile",
    "color": "gray",
    "cushion_style": "pillow-top",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "Seat Cushion",
      "material": "foam",
      "qty": 1,
      "unit": "pc",
      "dept": "seating",
      "spec": "high-density foam"
    },
    {
      "name": "Back Cushion",
      "material": "foam",
      "qty": 1,
      "unit": "pc",
      "dept": "seating",
      "spec": "high-density foam"
    },
    {
      "name": "Woven Rattan Cover",
      "material": "woven-rattan",
      "qty": 1,
      "unit": "pc",
      "dept": "upholstery",
      "spec": "gray"
    },
    {
      "name": "Walnut Frame",
      "material": "walnut",
      "qty": 1,
      "unit": "pc",
      "dept": "frame",
      "spec": "tapered legs, espresso finish"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "barstool",
    "seat_height_type": "bar",
    "back_style": "mid-back",
    "arm_style": "armless"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "espresso",
    "upholstery_material": "leather",
    "color": "taupe",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "H-stretcher-chrome",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "Seat Cushion",
      "material": "foam",
      "qty": 1,
      "unit": "pc",
      "dept": "seating",
      "spec": "high-density foam"
    },
    {
      "name": "Back Cushion",
      "material": "foam",
      "qty": 1,
      "unit": "pc",
      "dept": "seating",
      "spec": "high-density foam"
    },
    {
      "name": "Cowhide Covering",
      "material": "cowhide",
      "qty": 1,
      "unit": "pc",
      "dept": "upholstery",
      "spec": "brown-and-white"
    },
    {
      "name": "Metal Frame",
      "material": "metal",
      "qty": 1,
      "unit": "pc",
      "dept": "frame",
      "spec": "brushed-steel"
    },
    {
      "name": "H-Stretcher",
      "material": "metal",
      "qty": 1,
      "unit": "pc",
      "dept": "frame",
      "spec": "brushed-steel"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "mid-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "natural-oak",
    "upholstery_material": "leather",
    "color": "tan",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "seat cushion",
      "material": "foam",
      "qty": 1,
      "unit": "pc",
      "dept": "seating",
      "spec": "high-density, 2-inch thick"
    },
    {
      "name": "back cushion",
      "material": "foam",
      "qty": 1,
      "unit": "pc",
      "dept": "seating",
      "spec": "high-density, 3-inch thick"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "sofa",
    "seat_height_type": "standard",
    "back_style": "mid-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "espresso",
    "upholstery_material": "vinyl",
    "color": "brown",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "seat cushion",
      "material": "foam",
      "qty": 1,
      "unit": "pc",
      "dept": "seating",
      "spec": "high-density, 2-inch thick"
    },
    {
      "name": "back cushion",
      "material": "foam",
      "qty": 1,
      "unit": "pc",
      "dept": "seating",
      "spec": "high-density, 2-inch thick"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "mid-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "metal",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "pedestal",
    "finish": "brushed-aluminum",
    "upholstery_material": "leather",
    "color": "navy-blue",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "seat cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density"
    },
    {
      "name": "back cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "low-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "metal",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "polished-chrome",
    "upholstery_material": "leather",
    "color": "taupe",
    "cushion_style": "tight-seat",
    "welt_type": "none",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "seat cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density"
    },
    {
      "name": "back cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "sofa",
    "seat_height_type": "standard",
    "back_style": "low-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "metal",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "polished-chrome",
    "upholstery_material": "leather",
    "color": "black",
    "cushion_style": "tight-seat",
    "welt_type": "none",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "frame",
      "material": "metal",
      "qty": 1,
      "unit": "unit",
      "dept": "structure",
      "spec": "sled legs polished chrome"
    },
    {
      "name": "seat",
      "material": "foam",
      "qty": 1,
      "unit": "unit",
      "dept": "padding",
      "spec": "standard density"
    },
    {
      "name": "back",
      "material": "foam",
      "qty": 3,
      "unit": "unit",
      "dept": "padding",
      "spec": "standard density"
    },
    {
      "name": "cushions",
      "material": "foam",
      "qty": 2,
      "unit": "unit",
      "dept": "padding",
      "spec": "standard density"
    },
    {
      "name": "leather",
      "material": "leather",
      "qty": 1,
      "unit": "unit",
      "dept": "upholstery",
      "spec": "black leather"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "mid-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "espresso",
    "upholstery_material": "velvet",
    "color": "charcoal-gray",
    "cushion_style": "pillow-top",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "Seat Cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density"
    },
    {
      "name": "Back Cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "mid-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "espresso",
    "upholstery_material": "velvet",
    "color": "charcoal-gray",
    "cushion_style": "pillow-top",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "seat cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density"
    },
    {
      "name": "back cushion",
      "material": "foam",
      "qty": 1,
      "unit": "piece",
      "dept": "seating",
      "spec": "high-density"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "high-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "sled",
    "finish": "espresso",
    "upholstery_material": "linen",
    "color": "cream",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "seat cushion",
      "material": "foam",
      "qty": 1,
      "unit": "pc",
      "dept": "seating",
      "spec": "high-density, 2-inch thick"
    },
    {
      "name": "back cushion",
      "material": "foam",
      "qty": 1,
      "unit": "pc",
      "dept": "seating",
      "spec": "high-density, 3-inch thick"
    },
    {
      "name": "Brushed Steel Sled Base",
      "material": "brushed steel",
      "qty": 1,
      "unit": "each",
      "dept": "Frame",
      "spec": "Low-profile sled base, floor-mounted"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "dining chair",
    "seat_height_type": "standard",
    "back_style": "high-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "walnut",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "espresso",
    "upholstery_material": "woven-jacquard",
    "color": "beige",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": true,
    "arm_pad": false,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "seat frame",
      "material": "wood",
      "qty": 1,
      "unit": "each",
      "dept": "assembly",
      "spec": "tapered legs"
    },
    {
      "name": "back frame",
      "material": "wood",
      "qty": 1,
      "unit": "each",
      "dept": "assembly",
      "spec": "tapered legs"
    },
    {
      "name": "seat cushion",
      "material": "woven-rattan",
      "qty": 1,
      "unit": "each",
      "dept": "upholstery",
      "spec": "button-tufted"
    },
    {
      "name": "back cushion",
      "material": "woven-rattan",
      "qty": 1,
      "unit": "each",
      "dept": "upholstery",
      "spec": "button-tufted"
    },
    {
      "name": "welt trim",
      "material": "fabric",
      "qty": 2,
      "unit": "each",
      "dept": "trimming",
      "spec": "single-welt"
    },
    {
      "name": "nailhead trim",
      "material": "metal",
      "qty": 1,
      "unit": "each",
      "dept": "trimming",
      "spec": "beige fabric"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "lounge chair",
    "seat_height_type": "standard",
    "back_style": "mid-back",
    "arm_style": "armless"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "null",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "matte-black",
    "upholstery_material": "woven-textile",
    "color": "olive-green",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "seat cushion",
      "material": "bouclé",
      "qty": 1,
      "unit": "each",
      "dept": "seating",
      "spec": "tight-seat"
    },
    {
      "name": "back cushion",
      "material": "bouclé",
      "qty": 1,
      "unit": "each",
      "dept": "seating",
      "spec": "high-back"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "dining chair",
    "seat_height_type": "standard",
    "back_style": "mid-back",
    "arm_style": "armless"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "walnut",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "walnut",
    "upholstery_material": "linen",
    "color": "ivory",
    "cushion_style": "tight-seat",
    "welt_type": "single-welt",
    "nailhead_trim": false,
    "arm_pad": false,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "upholstery cover",
      "material": "linen",
      "qty": 1,
      "unit": "each",
      "dept": "upholstery",
      "spec": "ivory linen fabric"
    },
    {
      "name": "frame assembly",
      "material": "wood",
      "qty": 1,
      "unit": "each",
      "dept": "frame",
      "spec": "solid walnut, natural finish"
    }
  ]
}


[User]
Look at this hospitality furniture image and describe only what you can visually observe. Output valid JSON using this exact schema:
{
  "product_metadata": {
    "product_type": "barstool|lounge chair|sofa|settee|dining chair",
    "seat_height_type": "bar|counter|standard|null",
    "back_style": "high-back|mid-back|low-back|open-back|armless",
    "arm_style": "arms|armless|tablet-arm"
  },
  "visual_attributes": {
    "frame_material": "wood|metal|steel|aluminum",
    "wood_species": "walnut|oak|maple|beech|ash|null",
    "leg_count": <int>,
    "leg_style": "tapered|splay|tubular|hairpin|pedestal|sled",
    "finish": "<specific finish — e.g. espresso, matte-black, brushed-gold, natural-oak>",
    "upholstery_material": "<specific — e.g. velvet, bouclé, linen, vinyl, leather>",
    "color": "<specific color name>",
    "cushion_style": "tight-seat|channel-tufted|button-tufted|pleated|pillow-top",
    "welt_type": "single-welt|double-welt|none",
    "nailhead_trim": true|false,
    "arm_pad": true|false,
    "footrest_type": "H-stretcher|ring|rail|none",
    "tablet_arm": true|false
  },
  "parts": [
    {"name": "...", "material": "...", "qty": <int>, "unit": "...", "spec": "..."}
  ]
}
Only include parts that are physically visible in the image. Be specific — no vague terms like 'fabric' or 'wood'. Output ONLY the JSON object, no markdown, no explanation.

[Assistant]
{
  "product_metadata": {
    "product_type": "dining chair",
    "seat_height_type": "standard",
    "back_style": "open-back",
    "arm_style": "arms"
  },
  "visual_attributes": {
    "frame_material": "wood",
    "wood_species": "walnut",
    "leg_count": 4,
    "leg_style": "tapered",
    "finish": "espresso",
    "upholstery_material": "linen",
    "color": "ivory",
    "cushion_style": "tight-seat",
    "welt_type": "none",
    "nailhead_trim": false,
    "arm_pad": true,
    "footrest_type": "none",
    "tablet_arm": false
  },
  "parts": [
    {
      "name": "back panel",
      "material": "wood",
      "qty": 1,
      "unit": "pc",
      "dept": "frame",
      "spec": "walnut, tapered legs"
    },
    {
      "name": "seat panel",
      "material": "linen",
      "qty": 1,
      "unit": "pc",
      "dept": "upholstery",
      "spec": "beige, tight-seat cushion"
    },
    {
      "name": "armrests",
      "material": "wood",
      "qty": 2,
      "unit": "pc",
      "dept": "frame",
      "spec": "walnut, tapered legs"
    }
  ]
}