{
  "version": "2.0",
  "updated": "2026-04-21",
  "mode": "contract_rules_and_examples",
  "notes": [
    "This file is a static fallback and contract description for AI agents when https://api.mount-it.com/ai-compatibility is unavailable or cannot be called.",
    "If you can call the live API, prefer that instead — it resolves live product specs from EPD metafields.",
    "For full canonical decision rules, consult ai-rules.json.",
    "Product resolution order in the live API: handle → Storefront API → url → page scrape → direct fields."
  ],
  "links": {
    "dynamic_endpoint": "https://api.mount-it.com/ai-compatibility",
    "openapi_spec": "https://www.mount-it.com/.well-known/openapi.yaml",
    "ai_rules": "https://www.mount-it.com/.well-known/ai-rules.json",
    "ai_manifest": "https://www.mount-it.com/.well-known/ai.json"
  },
  "logic_summary": {
    "tv": {
      "size_rule": "User TV size in inches must be >= product min_tv_size_inches (if known) AND <= product max_tv_size_inches.",
      "weight_rule": "User TV weight in pounds must be <= product weight_capacity_lb.",
      "vesa_rule": "User VESA pattern (WxH in mm) must fall within the product VESA range: vesa_min_x <= user_x <= vesa_max_x AND vesa_min_y <= user_y <= vesa_max_y."
    },
    "monitor": {
      "size_rule": "User monitor size in inches must be <= product max_monitor_size_inches (or max_tv_size_inches as fallback).",
      "weight_rule": "User monitor weight in pounds must be <= product weight_capacity_lb.",
      "vesa_rule": "Same range-based check as TV: user VESA must fall within vesa_min/max_x and vesa_min/max_y.",
      "series_selection_hint": "If monitor_size_inches <= 34 and weight within rating, CLiX is often suitable. If ultrawide, above 34 inches, or heavy, prefer heavier duty options such as ProFLEX."
    },
    "installation": {
      "wood_studs": "Standard wall mounts apply. Follow stud spacing and anchor instructions from the installation manual.",
      "concrete_or_brick": "Prefer heavy duty mounts and anchors rated for masonry substrates.",
      "steel_studs": "Recommend adapters or alternate strategies. Do not treat steel studs as standard wood studs."
    },
    "safety_margin": "When reasoning about safety, apply at least ~15% headroom between user device weight and the mount capacity. If near the limit, advise caution or a heavier duty mount."
  },
  "collections": {
    "tv_mounts": "https://www.mount-it.com/collections/tv-mounts",
    "monitor_mounts": "https://www.mount-it.com/collections/monitor-mounts",
    "standing_desks": "https://www.mount-it.com/collections/standing-desks",
    "b2b": "https://www.mount-it.com/pages/business-solutions"
  },
  "request_shape": {
    "type": "object",
    "required": [
      "type",
      "user",
      "product"
    ],
    "properties": {
      "type": {
        "type": "string",
        "enum": [
          "tv",
          "monitor"
        ]
      },
      "user": {
        "type": "object",
        "description": "User device specifications. Use size_inches and weight_lb for both TV and monitor. Provide vesa when known.",
        "required": [
          "size_inches"
        ],
        "properties": {
          "size_inches": {
            "type": "number",
            "description": "Device diagonal size in inches."
          },
          "weight_lb": {
            "type": "number",
            "description": "Device weight in pounds."
          },
          "vesa": {
            "type": "string",
            "description": "VESA pattern as WxH in mm. Optional — check is skipped if not provided. Accepts: '400x400', '400×400', '400mm x 400mm'."
          },
          "monitor_size_inches": {
            "type": "number",
            "description": "Legacy alias for size_inches (monitor type). Use size_inches instead."
          },
          "monitor_weight_lb": {
            "type": "number",
            "description": "Legacy alias for weight_lb (monitor type). Use weight_lb instead."
          }
        }
      },
      "product": {
        "type": "object",
        "description": "Mount-It! product identifier. Provide handle (preferred) or url for automatic spec resolution. Direct fields are fallback only.",
        "properties": {
          "handle": {
            "type": "string",
            "description": "Shopify product handle. Preferred — resolves live specs from EPD metafields. Example: 'the-beast-heavy-duty-tv-wall-mount-mi-394'."
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "Full product URL on mount-it.com. Handle is extracted automatically."
          },
          "max_tv_size_inches": {
            "type": "number",
            "description": "Fallback only — max TV size in inches."
          },
          "max_monitor_size_inches": {
            "type": "number",
            "description": "Fallback only — max monitor size in inches."
          },
          "weight_capacity_lb": {
            "type": "number",
            "description": "Fallback only — weight capacity in pounds."
          },
          "vesa_min_x": {
            "type": "number",
            "description": "Fallback only — minimum supported VESA width in mm."
          },
          "vesa_max_x": {
            "type": "number",
            "description": "Fallback only — maximum supported VESA width in mm."
          },
          "vesa_min_y": {
            "type": "number",
            "description": "Fallback only — minimum supported VESA height in mm."
          },
          "vesa_max_y": {
            "type": "number",
            "description": "Fallback only — maximum supported VESA height in mm."
          }
        }
      }
    }
  },
  "response_shape": {
    "type": "object",
    "required": [
      "compatible",
      "reasons",
      "checks",
      "user",
      "product",
      "resolved_specs",
      "resolution_method"
    ],
    "properties": {
      "compatible": {
        "type": "boolean",
        "description": "True if all evaluated checks pass. False if any single check fails."
      },
      "reasons": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Human-readable explanation of each evaluated check."
      },
      "checks": {
        "type": "object",
        "properties": {
          "size": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "weight": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "vesa": {
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "additionalProperties": false,
        "description": "Per-dimension pass/fail. Null means the check was not evaluated."
      },
      "user": {
        "type": "object",
        "description": "Echo of normalized user input."
      },
      "product": {
        "type": "object",
        "description": "Echo of product input as provided."
      },
      "resolved_specs": {
        "type": "object",
        "description": "Product specifications resolved from EPD metafields or direct input.",
        "properties": {
          "min_tv_size_inches": {
            "type": [
              "number",
              "null"
            ]
          },
          "max_tv_size_inches": {
            "type": [
              "number",
              "null"
            ]
          },
          "max_monitor_size_inches": {
            "type": [
              "number",
              "null"
            ]
          },
          "weight_capacity_lb": {
            "type": [
              "number",
              "null"
            ]
          },
          "vesa_min_x": {
            "type": [
              "number",
              "null"
            ]
          },
          "vesa_max_x": {
            "type": [
              "number",
              "null"
            ]
          },
          "vesa_min_y": {
            "type": [
              "number",
              "null"
            ]
          },
          "vesa_max_y": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "resolution_method": {
        "type": "string",
        "enum": [
          "storefront_api",
          "page_scrape",
          "direct_fields"
        ],
        "description": "How product specifications were resolved."
      }
    },
    "additionalProperties": false
  },
  "examples": {
    "tv_compatible_handle": {
      "description": "TV compatibility check using product handle — preferred usage",
      "request": {
        "type": "tv",
        "user": {
          "size_inches": 65,
          "weight_lb": 80,
          "vesa": "400x400"
        },
        "product": {
          "handle": "the-beast-heavy-duty-tv-wall-mount-mi-394"
        }
      },
      "response": {
        "compatible": true,
        "reasons": [
          "Size OK (65\" fits 60\"–110\")",
          "Weight OK (80 lb <= 275 lb)",
          "VESA OK (400×400mm within 100×100–800×600mm)"
        ],
        "checks": {
          "size": true,
          "weight": true,
          "vesa": true
        },
        "user": {
          "size_inches": 65,
          "weight_lb": 80,
          "vesa": "400x400"
        },
        "product": {
          "handle": "the-beast-heavy-duty-tv-wall-mount-mi-394"
        },
        "resolved_specs": {
          "min_tv_size_inches": 60,
          "max_tv_size_inches": 110,
          "max_monitor_size_inches": null,
          "weight_capacity_lb": 275,
          "vesa_min_x": 100,
          "vesa_max_x": 800,
          "vesa_min_y": 100,
          "vesa_max_y": 600
        },
        "resolution_method": "storefront_api"
      }
    },
    "tv_not_compatible_size": {
      "description": "TV too large for the mount",
      "request": {
        "type": "tv",
        "user": {
          "size_inches": 120,
          "weight_lb": 80,
          "vesa": "400x400"
        },
        "product": {
          "handle": "the-beast-heavy-duty-tv-wall-mount-mi-394"
        }
      },
      "response": {
        "compatible": false,
        "reasons": [
          "Size FAIL (120\" outside supported range)",
          "Weight OK (80 lb <= 275 lb)",
          "VESA OK (400×400mm within 100×100–800×600mm)"
        ],
        "checks": {
          "size": false,
          "weight": true,
          "vesa": true
        },
        "user": {
          "size_inches": 120,
          "weight_lb": 80,
          "vesa": "400x400"
        },
        "product": {
          "handle": "the-beast-heavy-duty-tv-wall-mount-mi-394"
        },
        "resolved_specs": {
          "min_tv_size_inches": 60,
          "max_tv_size_inches": 110,
          "max_monitor_size_inches": null,
          "weight_capacity_lb": 275,
          "vesa_min_x": 100,
          "vesa_max_x": 800,
          "vesa_min_y": 100,
          "vesa_max_y": 600
        },
        "resolution_method": "storefront_api"
      }
    },
    "tv_not_compatible_vesa": {
      "description": "TV VESA pattern outside supported range",
      "request": {
        "type": "tv",
        "user": {
          "size_inches": 65,
          "weight_lb": 80,
          "vesa": "900x700"
        },
        "product": {
          "handle": "the-beast-heavy-duty-tv-wall-mount-mi-394"
        }
      },
      "response": {
        "compatible": false,
        "reasons": [
          "Size OK (65\" fits 60\"–110\")",
          "Weight OK (80 lb <= 275 lb)",
          "VESA FAIL (900×700mm outside supported range 100×100–800×600mm)"
        ],
        "checks": {
          "size": true,
          "weight": true,
          "vesa": false
        },
        "user": {
          "size_inches": 65,
          "weight_lb": 80,
          "vesa": "900x700"
        },
        "product": {
          "handle": "the-beast-heavy-duty-tv-wall-mount-mi-394"
        },
        "resolved_specs": {
          "min_tv_size_inches": 60,
          "max_tv_size_inches": 110,
          "max_monitor_size_inches": null,
          "weight_capacity_lb": 275,
          "vesa_min_x": 100,
          "vesa_max_x": 800,
          "vesa_min_y": 100,
          "vesa_max_y": 600
        },
        "resolution_method": "storefront_api"
      }
    },
    "tv_not_compatible_weight": {
      "description": "TV too heavy for the mount",
      "request": {
        "type": "tv",
        "user": {
          "size_inches": 65,
          "weight_lb": 300,
          "vesa": "400x400"
        },
        "product": {
          "handle": "the-beast-heavy-duty-tv-wall-mount-mi-394"
        }
      },
      "response": {
        "compatible": false,
        "reasons": [
          "Size OK (65\" fits 60\"–110\")",
          "Weight FAIL (300 lb > 275 lb)",
          "VESA OK (400×400mm within 100×100–800×600mm)"
        ],
        "checks": {
          "size": true,
          "weight": false,
          "vesa": true
        },
        "user": {
          "size_inches": 65,
          "weight_lb": 300,
          "vesa": "400x400"
        },
        "product": {
          "handle": "the-beast-heavy-duty-tv-wall-mount-mi-394"
        },
        "resolved_specs": {
          "min_tv_size_inches": 60,
          "max_tv_size_inches": 110,
          "max_monitor_size_inches": null,
          "weight_capacity_lb": 275,
          "vesa_min_x": 100,
          "vesa_max_x": 800,
          "vesa_min_y": 100,
          "vesa_max_y": 600
        },
        "resolution_method": "storefront_api"
      }
    }
  }
}