{
  "id": "square-bill-format-comparison-v1",
  "generatedDate": "2026-11-01",
  "generatedAt": "2026-11-01T01:01:01.701Z",
  "applicationVersion": "0.1.0",
  "manufacturingSourceSha256": "1d0a833416c925300d837dd957db86dd09810f4b566867f690b12cc9a4c12cdc",
  "presetId": "crank_square",
  "inputs": {
    "design": {
      "name": "Public square-bill crankbait format sample",
      "presetId": "crank_square",
      "construction": "hard",
      "body": {
        "length": 60,
        "height": 24,
        "width": 17,
        "maxDepthPos": 0.38,
        "noseBluntness": 0.85,
        "tailDepth": 0.3,
        "tailWidth": 0.32,
        "dorsalBias": 0.15,
        "flatSide": 0.25,
        "noseDrop": -0.08,
        "noseCupDepth": 0
      },
      "lip": {
        "enabled": true,
        "shape": "square",
        "length": 11,
        "width": 15,
        "thickness": 1,
        "angle": 70,
        "rootStation": 5,
        "rootHeight": -0.8,
        "material": "PCB_FR4"
      },
      "lineTie": {
        "mount": "nose",
        "lipFraction": 0,
        "station": 2,
        "heightFraction": -0.3,
        "lateralOffset": 0
      },
      "shell": {
        "hollow": true,
        "wallThickness": 1.2,
        "material": "ASA",
        "coating": "EPOXY",
        "coatingThickness": 0.15
      },
      "ballast": [
        {
          "id": "b1",
          "material": "TUNGSTEN",
          "diameter": 5.5,
          "station": 19,
          "heightFraction": -1,
          "count": 1
        }
      ],
      "rattles": [
        {
          "id": "r1",
          "station": 34,
          "heightFraction": 0,
          "ballDiameter": 4,
          "material": "STEEL",
          "count": 2
        }
      ],
      "hooks": [
        {
          "id": "h1",
          "station": 24,
          "position": "belly",
          "type": "TREBLE",
          "size": 6,
          "splitRing": 2
        },
        {
          "id": "h2",
          "station": 60,
          "position": "tail",
          "type": "TREBLE",
          "size": 6,
          "splitRing": 2
        }
      ],
      "joints": {
        "segments": 2,
        "positions": [
          0.6
        ],
        "gap": 1.2,
        "maxAngle": 30,
        "style": "pin_hinge",
        "pinDiameter": 1.2
      },
      "soft": {
        "material": "PLASTISOL_MEDIUM",
        "saltPercent": 8,
        "tail": "paddle",
        "paddleHeight": 14,
        "paddleWidth": 12,
        "paddleThickness": 3,
        "stemLength": 10,
        "stemThickness": 4.5,
        "paddleAngle": 0,
        "rig": "jighead",
        "rigWeight": 5,
        "rigMaterial": "TUNGSTEN",
        "hookSize": -1,
        "simSegments": 10
      }
    },
    "print": {
      "hardMode": "split_halves",
      "clearance": 0.25,
      "alignmentPins": true,
      "throughWire": true,
      "wireDiameter": 1,
      "moldMargin": 10,
      "layerHeight": 0.16,
      "plateSize": 256
    },
    "geometryQuality": "render"
  },
  "meshUnit": "mm",
  "threeMf": {
    "declaredUnit": "millimeter",
    "creationDate": "2026-11-01",
    "objectCount": 3,
    "buildItemCount": 3,
    "entries": [
      "[Content_Types].xml",
      "_rels/.rels",
      "3D/3dmodel.model"
    ],
    "hasPerTrianglePainting": false,
    "hasPrinterProfile": false,
    "hasSlicedToolpath": false
  },
  "stlZip": {
    "entries": [
      "01_body_L.stl",
      "02_body_R.stl",
      "03_lip.stl",
      "BUILD.md",
      "lip_1to1.svg"
    ],
    "partFileCount": 3,
    "unitNote": "STL has no standardized unit field; these coordinates must be imported as millimeters."
  },
  "parts": [
    {
      "id": "body_L",
      "name": "Body, left half",
      "quantity": 1,
      "stlFile": "01_body_L.stl",
      "dimensionsMm": [
        59.9866,
        23.9984,
        8.4994
      ],
      "stlTriangles": 14790,
      "threeMfTriangles": 14806,
      "threeMfObjectId": 2,
      "stlBytes": 739584,
      "stlSha256": "0ffdf2cd780e0a7ea07e47f1998662818a7a0cd305dcdd916d6c6e25ae42f6e5"
    },
    {
      "id": "body_R",
      "name": "Body, right half",
      "quantity": 1,
      "stlFile": "02_body_R.stl",
      "dimensionsMm": [
        59.9866,
        23.9984,
        8.4994
      ],
      "stlTriangles": 14838,
      "threeMfTriangles": 14846,
      "threeMfObjectId": 3,
      "stlBytes": 741984,
      "stlSha256": "0c6699665b5e52a675c5bb3bc6b5f90741c30da662c93ff23b2694d30a21eb8d"
    },
    {
      "id": "lip",
      "name": "Bill",
      "quantity": 1,
      "stlFile": "03_lip.stl",
      "dimensionsMm": [
        15.4583,
        14.7071,
        1
      ],
      "stlTriangles": 146,
      "threeMfTriangles": 146,
      "threeMfObjectId": 4,
      "stlBytes": 7384,
      "stlSha256": "76341c1533ed1ade744360039ed601ebddfbf182373c9544700c5020caef2556"
    }
  ],
  "files": [
    {
      "name": "square-bill.stl.zip",
      "mediaType": "application/zip",
      "bytes": 613945,
      "sha256": "907d18489aea2dc4c543f101388574691a8689879974e19e69722c1084d40ea7"
    },
    {
      "name": "square-bill.3mf",
      "mediaType": "model/3mf",
      "bytes": 333929,
      "sha256": "f5ac917b03fdf96f45d5c57147e119e157c004aa5f8222a529d5f10f948182a7"
    },
    {
      "name": "square-bill.lure.json",
      "mediaType": "application/json",
      "bytes": 2589,
      "sha256": "6f4c4066d7715b9c7fe1ee9233672e9dfc4a599112725acd176ca120b567df98"
    }
  ],
  "warnings": [
    "After correcting for the print settings (actual hardware (through-wire) +0.18 g, internal structure (weight bosses, wire keel, pin bosses and joint blocks) +0.73 g, alignment pins +0.04 g, bill tab +0.06 g), the predicted weight is 11.3 g, net buoyancy +1.94 g (floating); the design mass model predicts 10.3 g, net buoyancy +2.95 g (floating). Build-sheet predictions, weigh-in targets and QA use the corrected values."
  ],
  "verification": {
    "packageStructure": true,
    "binaryStlLengths": true,
    "unitAndObjectCounts": true,
    "slicerImport": "not performed",
    "physicalPrint": "not performed",
    "waterTest": "not performed"
  },
  "limitations": [
    "A real software export from a bundled public preset, not a physically validated lure.",
    "Standard 3MF with part display colors; not the separate multi-color 3MF beta export.",
    "No printer, filament, temperature, support, infill profile or G-code is included.",
    "STL and 3MF are manufacturing meshes; preserve the editable design JSON separately."
  ]
}
