{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "name": "Building Designer",
  "description": "Parametric 3D fantasy building designer generating contiguous multi-page papercraft PDFs with alignment tabs, 300 DPI UV flatbed heightmaps, and CNC/laser vector paths.",
  "version": "1.0.0",
  "url": "https://build.bagsoffolding.com",
  "protocolVersion": "2024-11-05",
  "tools": [
    {
      "name": "generateBlueprint",
      "description": "Configures 3D parametric tabletop building geometry, dimensions, stories, roof pitches, and materials for physical papercraft or CNC fabrication.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "length": {
            "type": "number",
            "minimum": 1,
            "maximum": 10,
            "description": "Front wall and gable width in inches (1 to 10)."
          },
          "width": {
            "type": "number",
            "minimum": 1,
            "maximum": 10,
            "description": "Side wall length in inches (1 to 10)."
          },
          "stories": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5,
            "description": "Number of stories, 2 inches (600px) per story (1 to 5)."
          },
          "pitch": {
            "type": "number",
            "minimum": 0,
            "maximum": 24,
            "description": "Primary roof pitch in inches of rise per 12 inches of run (0 to 24)."
          },
          "overhang": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "Roof eave overhang beyond wall perimeter in inches (0 to 1)."
          },
          "roofType": {
            "type": "string",
            "enum": [
              "GABLE",
              "GAMBREL"
            ],
            "description": "Roof profile geometry ('GABLE' for triangular gable, 'GAMBREL' for double-slope barn)."
          },
          "roofMidpoint": {
            "type": "number",
            "minimum": 10,
            "maximum": 90,
            "description": "Gambrel roof slope transition midpoint percentage (10 to 90)."
          },
          "roofUpperPitch": {
            "type": "number",
            "minimum": -12,
            "maximum": 24,
            "description": "Gambrel upper roof pitch in rise/12 (-12 to 24)."
          },
          "roofFlare": {
            "type": "number",
            "minimum": 0,
            "maximum": 300,
            "description": "Break flare overhang in pixels (0 to 300)."
          },
          "wallMaterial": {
            "type": "string",
            "enum": [
              "STONE",
              "TIMBERFRAME",
              "FIELDSTONE",
              "WOOD",
              "BLOCK",
              "PLASTER",
              "WATTLE_DAUB",
              "BRICK",
              "ADOBE",
              "LOGS",
              "GLASS",
              "MARBLE",
              "IRON"
            ],
            "description": "Procedural wall masonry or siding material."
          },
          "wallToning": {
            "type": "string",
            "description": "Hex color code for wall color tinting (e.g. '#ffffff')."
          },
          "wallVariance": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "description": "Spatial color variance percentage across wall stones or bricks (0 to 100)."
          },
          "wallCurve": {
            "type": "number",
            "minimum": 10,
            "maximum": 50,
            "description": "Variance distribution curve factor (10 to 50 representing 1.0 to 5.0)."
          },
          "roofMaterial": {
            "type": "string",
            "enum": [
              "SHINGLE",
              "SLATE",
              "THATCH",
              "TERRACOTTA",
              "METAL",
              "MOSSY",
              "SOD",
              "WOOD_SHAKES",
              "CORRUGATED",
              "TENSILE",
              "STONE",
              "TIMBERFRAME",
              "FIELDSTONE",
              "WOOD",
              "BLOCK",
              "PLASTER",
              "WATTLE_DAUB",
              "BRICK",
              "ADOBE",
              "LOGS",
              "GLASS",
              "MARBLE",
              "IRON"
            ],
            "description": "Roofing surface material."
          },
          "roofToning": {
            "type": "string",
            "description": "Hex color code for roof surface tinting."
          },
          "roofVariance": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "description": "Spatial color variance percentage across roof shingles or tiles (0 to 100)."
          },
          "roofCurve": {
            "type": "number",
            "minimum": 10,
            "maximum": 50,
            "description": "Roof variance distribution curve factor (10 to 50)."
          },
          "papercraft": {
            "type": "boolean",
            "description": "Whether to generate contiguous fold-out papercraft layout with tabs (true) or discrete panels (false)."
          },
          "visualStyle": {
            "type": "string",
            "enum": [
              "Realistic",
              "Game",
              "Drawing"
            ],
            "description": "Global visual rendering style ('Realistic', 'Game', or 'Drawing')."
          }
        },
        "required": []
      }
    },
    {
      "name": "getBuildingMaterials",
      "description": "Returns the complete catalog of available procedural masonry, siding, and roofing materials.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "calculateTerrainPrice",
      "description": "Calculates the printable exterior surface area (walls, gables, roofs in sq in) and physical UV printing fabrication cost ($1.00/sq in) based on building dimensions.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "length": {
            "type": "number",
            "description": "Front wall length in inches."
          },
          "width": {
            "type": "number",
            "description": "Side wall width in inches."
          },
          "stories": {
            "type": "integer",
            "description": "Number of stories (2 inches per story)."
          },
          "pitch": {
            "type": "number",
            "description": "Roof pitch in inches of rise per 12 inches of run."
          },
          "overhang": {
            "type": "number",
            "description": "Roof overhang in inches."
          },
          "roofType": {
            "type": "string",
            "enum": [
              "GABLE",
              "GAMBREL"
            ],
            "description": "Roof profile geometry."
          }
        }
      }
    },
    {
      "name": "loadTemplateDesign",
      "description": "Loads a curated architectural preset template into the designer (Tudor Tavern, Gothic Ruin, Stone Cottage).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "template": {
            "type": "string",
            "enum": [
              "TUDOR_TAVERN",
              "GOTHIC_RUIN",
              "STONE_COTTAGE"
            ],
            "description": "Name of the curated building template."
          }
        },
        "required": [
          "template"
        ]
      }
    },
    {
      "name": "exportPapercraftPdf",
      "description": "Generates a multi-page printable PDF layout with corner-seam alignment tabs for physical tabletop fabrication.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "paperSize": {
            "type": "string",
            "enum": [
              "Letter",
              "Ledger",
              "A4",
              "A5",
              "12x12"
            ],
            "description": "Target paper sheet size (default: 'Ledger')."
          }
        }
      }
    }
  ]
}