{
  "version": 1,
  "tool": "blanket-layout",
  "metadata": {
    "name": "blanket-layout",
    "terms": "US"
  },
  "params": {
    "width": 24,
    "height": 12,
    "rounds": 5,
    "repeat": 4,
    "stitch": "sc",
    "motif": "diamond",
    "colors": [
      "#596E93",
      "#D3A164",
      "#D9D2BC"
    ],
    "terms": "US",
    "gauge": 20,
    "swatchArea": 100,
    "swatchLength": 25,
    "ballLength": 120,
    "waste": 10,
    "eyeGap": 6,
    "layoutStyle": "mixed",
    "columns": 4,
    "layoutRows": 4,
    "blockSize": 10,
    "borderWidth": 2
  },
  "rows": [
    {
      "number": 1,
      "count": 10,
      "unit": "separate motifs",
      "text": "Choose and swatch separate square motif patterns. Block to the measured sizes before joining: #1 square, column 1, row 1, 20 × 20 cm, yarn slot 1; #2 square, column 3, row 3, 20 × 20 cm, yarn slot 2; #3 square, column 3, row 1, 10 × 10 cm, yarn slot 3; #4 square, column 4, row 1, 10 × 10 cm, yarn slot 1; #5 square, column 3, row 2, 10 × 10 cm, yarn slot 1; #6 square, column 4, row 2, 10 × 10 cm, yarn slot 2; #7 square, column 1, row 3, 10 × 10 cm, yarn slot 3; #8 square, column 2, row 3, 10 × 10 cm, yarn slot 1; #9 square, column 1, row 4, 10 × 10 cm, yarn slot 1; #10 square, column 2, row 4, 10 × 10 cm, yarn slot 2. A large square spans two base units along each edge; match its edge insertion points to the combined two small edges, accounting for the central join. Color totals: slot 1: 5; slot 2: 3; slot 3: 2."
    },
    {
      "number": 2,
      "count": 16,
      "unit": "shared edge segments",
      "text": "Lay out the numbered pieces with the face up as in the map. Sew or slip-stitch the following pairwise edges once each, without tightening the fabric: #1 ↔ #3 (10 cm); #3 ↔ #4 (10 cm); #3 ↔ #5 (10 cm); #4 ↔ #6 (10 cm); #1 ↔ #7 (10 cm); #1 ↔ #5 (10 cm); #1 ↔ #8 (10 cm); #5 ↔ #6 (10 cm); #2 ↔ #5 (10 cm); #2 ↔ #6 (10 cm); #7 ↔ #8 (10 cm); #7 ↔ #9 (10 cm); #2 ↔ #8 (10 cm); #8 ↔ #10 (10 cm); #9 ↔ #10 (10 cm); #2 ↔ #10 (10 cm). The recorded endpoints in the saved layout are centimeter coordinates from the upper-left. Total interior join length is 160 cm. At a T-junction, match the marked midpoint of the large edge to the meeting small-block corners; do not force one small edge to cover the whole large side."
    },
    {
      "number": 3,
      "count": 16,
      "unit": "exposed base edge segments",
      "text": "Weave seam tails on the reverse. Check the exposed boundary: 16 base edge segments, total length 160 cm before any border. The center envelope is 40 × 40 cm. Recheck both diagonals and measure the relaxed joined rectangle before planning border stitch counts. Finish and wash according to the yarn instructions, then record actual dimensions."
    },
    {
      "number": 4,
      "count": 4,
      "unit": "planned rectangle corners",
      "text": "Plan a nominal 2 cm border outside each edge of the measured rectangular center. The geometric estimate is 44 × 44 cm. Swatch the border separately, derive pickup and corner stitch counts from the actual joined edges and measure its finished width. This layout supplies no universal border round count or guaranteed gauge."
    }
  ],
  "grid": [
    [
      0,
      0,
      2,
      0
    ],
    [
      0,
      0,
      0,
      1
    ],
    [
      2,
      0,
      1,
      1
    ],
    [
      0,
      1,
      1,
      1
    ]
  ],
  "dimensions": "40 × 40 cm center envelope; 10 motifs; 16 shared segments",
  "materials": [
    "Yarn suitable for a practice swatch",
    "Matching crochet hook",
    "Tapestry needle; scissors; stitch markers"
  ],
  "notes": [
    "Measured assembly planner: layout shapes and colors refer to complete separately crocheted motifs, not stitch cells. No foundation, turning chain or motif stitch pattern is generated.",
    "Coordinates and seam lengths use blocked motif measurements and assume joins add no width. Test the actual join and adjust the measured plan if it does.",
    "Hexagon size is point-to-point width; its flat-to-flat height is width × √3/2. Mixed-size squares must match both physical lengths and actual edge insertion counts."
  ],
  "repeatUnit": 4,
  "colors": [
    "#596E93",
    "#D3A164",
    "#D9D2BC"
  ],
  "layoutPlan": {
    "style": "mixed",
    "columns": 4,
    "rows": 4,
    "baseSize": 10,
    "border": 2,
    "pieces": [
      {
        "id": 1,
        "shape": "square",
        "column": 0,
        "row": 0,
        "color": 0,
        "x": 0,
        "y": 0,
        "width": 20,
        "height": 20,
        "units": 2
      },
      {
        "id": 2,
        "shape": "square",
        "column": 2,
        "row": 2,
        "color": 1,
        "x": 20,
        "y": 20,
        "width": 20,
        "height": 20,
        "units": 2
      },
      {
        "id": 3,
        "shape": "square",
        "column": 2,
        "row": 0,
        "color": 2,
        "x": 20,
        "y": 0,
        "width": 10,
        "height": 10,
        "units": 1
      },
      {
        "id": 4,
        "shape": "square",
        "column": 3,
        "row": 0,
        "color": 0,
        "x": 30,
        "y": 0,
        "width": 10,
        "height": 10,
        "units": 1
      },
      {
        "id": 5,
        "shape": "square",
        "column": 2,
        "row": 1,
        "color": 0,
        "x": 20,
        "y": 10,
        "width": 10,
        "height": 10,
        "units": 1
      },
      {
        "id": 6,
        "shape": "square",
        "column": 3,
        "row": 1,
        "color": 1,
        "x": 30,
        "y": 10,
        "width": 10,
        "height": 10,
        "units": 1
      },
      {
        "id": 7,
        "shape": "square",
        "column": 0,
        "row": 2,
        "color": 2,
        "x": 0,
        "y": 20,
        "width": 10,
        "height": 10,
        "units": 1
      },
      {
        "id": 8,
        "shape": "square",
        "column": 1,
        "row": 2,
        "color": 0,
        "x": 10,
        "y": 20,
        "width": 10,
        "height": 10,
        "units": 1
      },
      {
        "id": 9,
        "shape": "square",
        "column": 0,
        "row": 3,
        "color": 0,
        "x": 0,
        "y": 30,
        "width": 10,
        "height": 10,
        "units": 1
      },
      {
        "id": 10,
        "shape": "square",
        "column": 1,
        "row": 3,
        "color": 1,
        "x": 10,
        "y": 30,
        "width": 10,
        "height": 10,
        "units": 1
      }
    ],
    "seams": [
      {
        "a": 1,
        "b": 3,
        "from": [
          20,
          0
        ],
        "to": [
          20,
          10
        ],
        "length": 10
      },
      {
        "a": 3,
        "b": 4,
        "from": [
          30,
          0
        ],
        "to": [
          30,
          10
        ],
        "length": 10
      },
      {
        "a": 3,
        "b": 5,
        "from": [
          20,
          10
        ],
        "to": [
          30,
          10
        ],
        "length": 10
      },
      {
        "a": 4,
        "b": 6,
        "from": [
          30,
          10
        ],
        "to": [
          40,
          10
        ],
        "length": 10
      },
      {
        "a": 1,
        "b": 7,
        "from": [
          0,
          20
        ],
        "to": [
          10,
          20
        ],
        "length": 10
      },
      {
        "a": 1,
        "b": 5,
        "from": [
          20,
          10
        ],
        "to": [
          20,
          20
        ],
        "length": 10
      },
      {
        "a": 1,
        "b": 8,
        "from": [
          10,
          20
        ],
        "to": [
          20,
          20
        ],
        "length": 10
      },
      {
        "a": 5,
        "b": 6,
        "from": [
          30,
          10
        ],
        "to": [
          30,
          20
        ],
        "length": 10
      },
      {
        "a": 2,
        "b": 5,
        "from": [
          20,
          20
        ],
        "to": [
          30,
          20
        ],
        "length": 10
      },
      {
        "a": 2,
        "b": 6,
        "from": [
          30,
          20
        ],
        "to": [
          40,
          20
        ],
        "length": 10
      },
      {
        "a": 7,
        "b": 8,
        "from": [
          10,
          20
        ],
        "to": [
          10,
          30
        ],
        "length": 10
      },
      {
        "a": 7,
        "b": 9,
        "from": [
          0,
          30
        ],
        "to": [
          10,
          30
        ],
        "length": 10
      },
      {
        "a": 2,
        "b": 8,
        "from": [
          20,
          20
        ],
        "to": [
          20,
          30
        ],
        "length": 10
      },
      {
        "a": 8,
        "b": 10,
        "from": [
          10,
          30
        ],
        "to": [
          20,
          30
        ],
        "length": 10
      },
      {
        "a": 9,
        "b": 10,
        "from": [
          10,
          30
        ],
        "to": [
          10,
          40
        ],
        "length": 10
      },
      {
        "a": 2,
        "b": 10,
        "from": [
          20,
          30
        ],
        "to": [
          20,
          40
        ],
        "length": 10
      }
    ],
    "outerEdges": [
      {
        "piece": 1,
        "from": [
          0,
          0
        ],
        "to": [
          0,
          10
        ],
        "length": 10
      },
      {
        "piece": 1,
        "from": [
          0,
          0
        ],
        "to": [
          10,
          0
        ],
        "length": 10
      },
      {
        "piece": 1,
        "from": [
          10,
          0
        ],
        "to": [
          20,
          0
        ],
        "length": 10
      },
      {
        "piece": 3,
        "from": [
          20,
          0
        ],
        "to": [
          30,
          0
        ],
        "length": 10
      },
      {
        "piece": 4,
        "from": [
          30,
          0
        ],
        "to": [
          40,
          0
        ],
        "length": 10
      },
      {
        "piece": 4,
        "from": [
          40,
          0
        ],
        "to": [
          40,
          10
        ],
        "length": 10
      },
      {
        "piece": 1,
        "from": [
          0,
          10
        ],
        "to": [
          0,
          20
        ],
        "length": 10
      },
      {
        "piece": 6,
        "from": [
          40,
          10
        ],
        "to": [
          40,
          20
        ],
        "length": 10
      },
      {
        "piece": 7,
        "from": [
          0,
          20
        ],
        "to": [
          0,
          30
        ],
        "length": 10
      },
      {
        "piece": 2,
        "from": [
          40,
          20
        ],
        "to": [
          40,
          30
        ],
        "length": 10
      },
      {
        "piece": 9,
        "from": [
          0,
          30
        ],
        "to": [
          0,
          40
        ],
        "length": 10
      },
      {
        "piece": 9,
        "from": [
          0,
          40
        ],
        "to": [
          10,
          40
        ],
        "length": 10
      },
      {
        "piece": 10,
        "from": [
          10,
          40
        ],
        "to": [
          20,
          40
        ],
        "length": 10
      },
      {
        "piece": 2,
        "from": [
          20,
          40
        ],
        "to": [
          30,
          40
        ],
        "length": 10
      },
      {
        "piece": 2,
        "from": [
          40,
          30
        ],
        "to": [
          40,
          40
        ],
        "length": 10
      },
      {
        "piece": 2,
        "from": [
          30,
          40
        ],
        "to": [
          40,
          40
        ],
        "length": 10
      }
    ],
    "owner": [
      [
        1,
        1,
        3,
        4
      ],
      [
        1,
        1,
        5,
        6
      ],
      [
        7,
        8,
        2,
        2
      ],
      [
        9,
        10,
        2,
        2
      ]
    ],
    "width": 40,
    "height": 40,
    "seamLength": 160,
    "outerLength": 160,
    "finishedWidth": 44,
    "finishedHeight": 44
  }
}