{
  "generatedAt": "2026-09-11T10:00:00Z",
  "defaultDomain": "fashion",
  "focusMaxCharacters": 160,
  "maxObjectsPerRead": 6,
  "domains": [
    {
      "id": "fashion",
      "label": "Clothing & accessories",
      "description": "Garments, shoes, bags, and jewellery worn by a person.",
      "aliases": "clothing|clothes|style|outfit|apparel",
      "is_default": true,
      "example": "An outfit photo returns each layer as its own shoppable piece.",
      "empty_message": "No fashion item is clearly enough visible in this image to shop for.",
      "subject_singular": "",
      "subject_plural": "",
      "scope": "",
      "name_examples": "",
      "exclusions": "",
      "analysis_prompt_characters": 4235,
      "analysis_prompt_sentences": 37,
      "analysis_prompt_sha256": "001e98473b12b008ff1594bfca5e52ec3b4ad58c0774e1eccf0cafa07ec7ad36",
      "schema_field_count": 12,
      "has_dedicated_extraction_prompt": true
    },
    {
      "id": "furniture",
      "label": "Furniture & interiors",
      "description": "Sofas, chairs, tables, lighting, rugs, shelving, and decor.",
      "aliases": "",
      "is_default": false,
      "example": "A living room photo returns the sofa, the lamp, and the rug.",
      "empty_message": "No furniture or homeware item is clearly enough visible in this image to shop for.",
      "subject_singular": "furniture or homeware item",
      "subject_plural": "furniture, lighting, and homeware items",
      "scope": "in this room or interior",
      "name_examples": "sofa, floor lamp, coffee table, rug, or vase",
      "exclusions": "pets, food, plants that are not sold in a visible planter, and the walls, floor, ceiling or windows of the room itself",
      "analysis_prompt_characters": 3156,
      "analysis_prompt_sentences": 31,
      "analysis_prompt_sha256": "1b517535ab9b4e4bc8deb2c2977f2e4da2e94b9e6325b69083e69c7eaa489579",
      "schema_field_count": 11,
      "has_dedicated_extraction_prompt": false
    },
    {
      "id": "devices",
      "label": "Devices & electronics",
      "description": "Phones, laptops, audio, cameras, peripherals, and appliances.",
      "aliases": "",
      "is_default": false,
      "example": "A desk photo returns the laptop, the keyboard, and the monitor.",
      "empty_message": "No device is clearly enough visible in this image to shop for.",
      "subject_singular": "device or piece of equipment",
      "subject_plural": "consumer electronics, devices, and equipment",
      "scope": "",
      "name_examples": "laptop, over-ear headphones, mechanical keyboard, camera, or espresso machine",
      "exclusions": "furniture, stationery, cables that are not sold on their own, and the desk or surface the equipment sits on",
      "analysis_prompt_characters": 3181,
      "analysis_prompt_sentences": 31,
      "analysis_prompt_sha256": "7e03fe7a5627b0ce4c2ccd8518a5c1494de3fdcfb810dff1cf1defc596ee4701",
      "schema_field_count": 11,
      "has_dedicated_extraction_prompt": false
    },
    {
      "id": "beauty",
      "label": "Beauty & personal care",
      "description": "Skincare, makeup, fragrance, haircare, and tools.",
      "aliases": "",
      "is_default": false,
      "example": "A shelfie returns each bottle and jar as its own shoppable product.",
      "empty_message": "No beauty product is clearly enough visible in this image to shop for.",
      "subject_singular": "beauty or personal care product",
      "subject_plural": "beauty, skincare, and personal care products",
      "scope": "",
      "name_examples": "serum bottle, lipstick, fragrance bottle, hair dryer, or makeup brush",
      "exclusions": "furniture, towels, the surface the products sit on, and anything not sold as a product",
      "analysis_prompt_characters": 3156,
      "analysis_prompt_sentences": 31,
      "analysis_prompt_sha256": "30cbdac034a2c0b7dc1a29f115d71df7da45a53d17d8cc6ee12ed3aa71c4697a",
      "schema_field_count": 11,
      "has_dedicated_extraction_prompt": false
    },
    {
      "id": "everything",
      "label": "Anything",
      "description": "No category filter. Every distinctly purchasable object in the frame.",
      "aliases": "",
      "is_default": false,
      "example": "Use with `focus` to aim the same pipeline at a category we have not named.",
      "empty_message": "No purchasable object is clearly enough visible in this image.",
      "subject_singular": "purchasable object",
      "subject_plural": "distinctly purchasable objects",
      "scope": "",
      "name_examples": "chair, backpack, kettle, sneaker, or table lamp",
      "exclusions": "pets, food that is not packaged, and the walls, floor or ground of the scene itself",
      "analysis_prompt_characters": 3084,
      "analysis_prompt_sentences": 31,
      "analysis_prompt_sha256": "febf914a916e49118559812713f10bec7de7628eb20a198881a268b397d28a03",
      "schema_field_count": 11,
      "has_dedicated_extraction_prompt": false
    }
  ],
  "schemaFields": [
    {
      "domain_id": "fashion",
      "field": "simple_name",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The shortest noun a shopper would use. Becomes the object's title."
    },
    {
      "domain_id": "fashion",
      "field": "full_description",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "Everything clearly visible: colour, material, shape, pattern, distinctive details. The text the retailer search is built from."
    },
    {
      "domain_id": "fashion",
      "field": "layer",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "outer|mid|base|bottom|footwear|accessory",
      "max_items": "",
      "purpose": "Which garment layer this is, from outer to accessory. Decides whether extraction removes what is over it or what is under it."
    },
    {
      "domain_id": "fashion",
      "field": "covered_by",
      "type": "array",
      "is_list": true,
      "required": true,
      "enum_values": "",
      "max_items": 4,
      "purpose": "Names of the other listed objects that physically hide part of this one. Each becomes a deletion clause in the extraction prompt."
    },
    {
      "domain_id": "fashion",
      "field": "covers",
      "type": "array",
      "is_list": true,
      "required": true,
      "enum_values": "",
      "max_items": 4,
      "purpose": "Names of the objects this one hides. Read back the other way to recover an occluder the reader left out of covered_by."
    },
    {
      "domain_id": "fashion",
      "field": "visible_parts",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The parts the camera can actually see. The areas the rebuilt fabric or surface is copied from."
    },
    {
      "domain_id": "fashion",
      "field": "hidden_parts",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The parts that are hidden and must be reconstructed. Naming them is what prevents an object-shaped hole."
    },
    {
      "domain_id": "fashion",
      "field": "disambiguator",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "One noun phrase that points at this object and nothing else in the frame."
    },
    {
      "domain_id": "fashion",
      "field": "hardware",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "Fastenings, pockets and trims that are unambiguously visible. Treated as an upper bound by extraction, never as an instruction to add them."
    },
    {
      "domain_id": "fashion",
      "field": "fabric_finish",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "Weight, texture and finish of the fabric, stated positively so extraction can refuse to make it crisper or glossier."
    },
    {
      "domain_id": "fashion",
      "field": "silhouette",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The cut and shape, named specifically, so extraction can forbid the flattering drift toward a different one."
    },
    {
      "domain_id": "fashion",
      "field": "front_opening",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "Whether this layer hangs open and what shows through the gap. Fashion only; there is no meaningful equivalent for a coffee table."
    },
    {
      "domain_id": "furniture",
      "field": "simple_name",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The shortest noun a shopper would use. Becomes the object's title."
    },
    {
      "domain_id": "furniture",
      "field": "full_description",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "Everything clearly visible: colour, material, shape, pattern, distinctive details. The text the retailer search is built from."
    },
    {
      "domain_id": "furniture",
      "field": "placement",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "foreground|midground|background|on-top-of|inside|standalone",
      "max_items": "",
      "purpose": "Where the object sits in the scene. The non-fashion equivalent of layer, and used the same way."
    },
    {
      "domain_id": "furniture",
      "field": "covered_by",
      "type": "array",
      "is_list": true,
      "required": true,
      "enum_values": "",
      "max_items": 4,
      "purpose": "Names of the other listed objects that physically hide part of this one. Each becomes a deletion clause in the extraction prompt."
    },
    {
      "domain_id": "furniture",
      "field": "covers",
      "type": "array",
      "is_list": true,
      "required": true,
      "enum_values": "",
      "max_items": 4,
      "purpose": "Names of the objects this one hides. Read back the other way to recover an occluder the reader left out of covered_by."
    },
    {
      "domain_id": "furniture",
      "field": "visible_parts",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The parts the camera can actually see. The areas the rebuilt fabric or surface is copied from."
    },
    {
      "domain_id": "furniture",
      "field": "hidden_parts",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The parts that are hidden and must be reconstructed. Naming them is what prevents an object-shaped hole."
    },
    {
      "domain_id": "furniture",
      "field": "disambiguator",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "One noun phrase that points at this object and nothing else in the frame."
    },
    {
      "domain_id": "furniture",
      "field": "details",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The object equivalent of hardware: visible fittings, controls and trims. Also an upper bound."
    },
    {
      "domain_id": "furniture",
      "field": "material_finish",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "Material, texture and finish of the object, used the same way as fabric_finish."
    },
    {
      "domain_id": "furniture",
      "field": "form",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The object's proportions and shape, used the same way as silhouette."
    },
    {
      "domain_id": "devices",
      "field": "simple_name",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The shortest noun a shopper would use. Becomes the object's title."
    },
    {
      "domain_id": "devices",
      "field": "full_description",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "Everything clearly visible: colour, material, shape, pattern, distinctive details. The text the retailer search is built from."
    },
    {
      "domain_id": "devices",
      "field": "placement",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "foreground|midground|background|on-top-of|inside|standalone",
      "max_items": "",
      "purpose": "Where the object sits in the scene. The non-fashion equivalent of layer, and used the same way."
    },
    {
      "domain_id": "devices",
      "field": "covered_by",
      "type": "array",
      "is_list": true,
      "required": true,
      "enum_values": "",
      "max_items": 4,
      "purpose": "Names of the other listed objects that physically hide part of this one. Each becomes a deletion clause in the extraction prompt."
    },
    {
      "domain_id": "devices",
      "field": "covers",
      "type": "array",
      "is_list": true,
      "required": true,
      "enum_values": "",
      "max_items": 4,
      "purpose": "Names of the objects this one hides. Read back the other way to recover an occluder the reader left out of covered_by."
    },
    {
      "domain_id": "devices",
      "field": "visible_parts",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The parts the camera can actually see. The areas the rebuilt fabric or surface is copied from."
    },
    {
      "domain_id": "devices",
      "field": "hidden_parts",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The parts that are hidden and must be reconstructed. Naming them is what prevents an object-shaped hole."
    },
    {
      "domain_id": "devices",
      "field": "disambiguator",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "One noun phrase that points at this object and nothing else in the frame."
    },
    {
      "domain_id": "devices",
      "field": "details",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The object equivalent of hardware: visible fittings, controls and trims. Also an upper bound."
    },
    {
      "domain_id": "devices",
      "field": "material_finish",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "Material, texture and finish of the object, used the same way as fabric_finish."
    },
    {
      "domain_id": "devices",
      "field": "form",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The object's proportions and shape, used the same way as silhouette."
    },
    {
      "domain_id": "beauty",
      "field": "simple_name",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The shortest noun a shopper would use. Becomes the object's title."
    },
    {
      "domain_id": "beauty",
      "field": "full_description",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "Everything clearly visible: colour, material, shape, pattern, distinctive details. The text the retailer search is built from."
    },
    {
      "domain_id": "beauty",
      "field": "placement",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "foreground|midground|background|on-top-of|inside|standalone",
      "max_items": "",
      "purpose": "Where the object sits in the scene. The non-fashion equivalent of layer, and used the same way."
    },
    {
      "domain_id": "beauty",
      "field": "covered_by",
      "type": "array",
      "is_list": true,
      "required": true,
      "enum_values": "",
      "max_items": 4,
      "purpose": "Names of the other listed objects that physically hide part of this one. Each becomes a deletion clause in the extraction prompt."
    },
    {
      "domain_id": "beauty",
      "field": "covers",
      "type": "array",
      "is_list": true,
      "required": true,
      "enum_values": "",
      "max_items": 4,
      "purpose": "Names of the objects this one hides. Read back the other way to recover an occluder the reader left out of covered_by."
    },
    {
      "domain_id": "beauty",
      "field": "visible_parts",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The parts the camera can actually see. The areas the rebuilt fabric or surface is copied from."
    },
    {
      "domain_id": "beauty",
      "field": "hidden_parts",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The parts that are hidden and must be reconstructed. Naming them is what prevents an object-shaped hole."
    },
    {
      "domain_id": "beauty",
      "field": "disambiguator",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "One noun phrase that points at this object and nothing else in the frame."
    },
    {
      "domain_id": "beauty",
      "field": "details",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The object equivalent of hardware: visible fittings, controls and trims. Also an upper bound."
    },
    {
      "domain_id": "beauty",
      "field": "material_finish",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "Material, texture and finish of the object, used the same way as fabric_finish."
    },
    {
      "domain_id": "beauty",
      "field": "form",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The object's proportions and shape, used the same way as silhouette."
    },
    {
      "domain_id": "everything",
      "field": "simple_name",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The shortest noun a shopper would use. Becomes the object's title."
    },
    {
      "domain_id": "everything",
      "field": "full_description",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "Everything clearly visible: colour, material, shape, pattern, distinctive details. The text the retailer search is built from."
    },
    {
      "domain_id": "everything",
      "field": "placement",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "foreground|midground|background|on-top-of|inside|standalone",
      "max_items": "",
      "purpose": "Where the object sits in the scene. The non-fashion equivalent of layer, and used the same way."
    },
    {
      "domain_id": "everything",
      "field": "covered_by",
      "type": "array",
      "is_list": true,
      "required": true,
      "enum_values": "",
      "max_items": 4,
      "purpose": "Names of the other listed objects that physically hide part of this one. Each becomes a deletion clause in the extraction prompt."
    },
    {
      "domain_id": "everything",
      "field": "covers",
      "type": "array",
      "is_list": true,
      "required": true,
      "enum_values": "",
      "max_items": 4,
      "purpose": "Names of the objects this one hides. Read back the other way to recover an occluder the reader left out of covered_by."
    },
    {
      "domain_id": "everything",
      "field": "visible_parts",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The parts the camera can actually see. The areas the rebuilt fabric or surface is copied from."
    },
    {
      "domain_id": "everything",
      "field": "hidden_parts",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The parts that are hidden and must be reconstructed. Naming them is what prevents an object-shaped hole."
    },
    {
      "domain_id": "everything",
      "field": "disambiguator",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "One noun phrase that points at this object and nothing else in the frame."
    },
    {
      "domain_id": "everything",
      "field": "details",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The object equivalent of hardware: visible fittings, controls and trims. Also an upper bound."
    },
    {
      "domain_id": "everything",
      "field": "material_finish",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "Material, texture and finish of the object, used the same way as fabric_finish."
    },
    {
      "domain_id": "everything",
      "field": "form",
      "type": "string",
      "is_list": false,
      "required": true,
      "enum_values": "",
      "max_items": "",
      "purpose": "The object's proportions and shape, used the same way as silhouette."
    }
  ]
}
