{
  "format": "pulp",
  "version": 1,
  "name": "Service Agreement",
  "published": false,
  "publishMajor": 1,
  "publishMinor": 0,
  "publishedBy": "",
  "publishedAt": null,
  "theme": "paper",
  "scale": 100,
  "blocks": [
    {
      "id": "saTitle", "type": "title", "text": "Service Agreement", "indent": 0,
      "showLogo": false, "logo": "",
      "showColumns": true,
      "col1": "Example Studio Ltd\n12 Sample Street\nSpringfield 0000\nhello@example.com",
      "col2": "Agreement no. SA-0001\nDate: 2026/10/01\nPage 1 of 1"
    },
    {
      "id": "saParties", "type": "form", "title": "Parties", "text": "", "cols": 2, "formStyle": "table", "indent": 0,
      "fields": [
        { "id": "saP1", "label": "Provider", "value": "Example Studio Ltd", "fieldType": "text", "options": [], "width": "compact" },
        { "id": "saP2", "label": "Registration no.", "value": "0000/000000/00", "fieldType": "text", "options": [], "width": "compact" },
        { "id": "saP3", "label": "Client", "value": "Sample Client (Pty) Ltd", "fieldType": "text", "options": [], "width": "compact" },
        { "id": "saP4", "label": "Contact person", "value": "Jordan Doe", "fieldType": "text", "options": [], "width": "compact" },
        { "id": "saP5", "label": "Start date", "value": "2026-11-01", "fieldType": "date", "options": [], "width": "compact" },
        { "id": "saP6", "label": "Term (months)", "value": "12", "fieldType": "number", "options": [], "width": "compact" },
        { "id": "saP7", "label": "Client address", "value": "34 Example Avenue\nRiverside 0001", "fieldType": "multiline", "options": [], "width": "fill" }
      ]
    },

    { "id": "saH1", "type": "heading", "headingStyle": "h1", "text": "1. Services", "indent": 0 },
    { "id": "saS1", "type": "paragraph", "listMode": "number", "text": "The Provider will deliver the services listed in the fee schedule below with reasonable skill and care.", "indent": 1 },
    { "id": "saS2", "type": "paragraph", "listMode": "number", "text": "Changes to the scope must be agreed in writing by both parties before work begins.", "indent": 1 },

    { "id": "saH2", "type": "heading", "headingStyle": "h1", "text": "2. Fees and payment", "indent": 0 },
    {
      "id": "saFees", "type": "table", "title": "Fee schedule", "text": "", "indent": 0,
      "columns": [
        { "id": "saColItem", "name": "Service", "type": "text", "sum": false, "decimals": 2, "options": [], "formula": null },
        {
          "id": "saColFreq", "name": "Billing", "type": "select", "sum": false, "decimals": 2, "formula": null,
          "options": [
            { "id": "saOptOnce", "label": "Once-off", "color": "#9b6dd0" },
            { "id": "saOptMonth", "label": "Monthly", "color": "#4a90d9" }
          ]
        },
        { "id": "saColAmt", "name": "Amount", "type": "decimal", "sum": true, "decimals": 2, "options": [], "formula": null }
      ],
      "rows": [
        { "id": "saR1", "cells": { "saColItem": "Discovery workshop", "saColFreq": "saOptOnce", "saColAmt": "4500" } },
        { "id": "saR2", "cells": { "saColItem": "Website hosting and maintenance", "saColFreq": "saOptMonth", "saColAmt": "1200" } },
        { "id": "saR3", "cells": { "saColItem": "Content updates (up to 4 hours)", "saColFreq": "saOptMonth", "saColAmt": "1800" } }
      ]
    },
    { "id": "saPay", "type": "paragraph", "listMode": "number", "text": "Invoices are payable within 30 days of the invoice date. Amounts exclude tax.", "indent": 1 },
    { "id": "saPay2", "type": "paragraph", "listMode": "number", "text": "Late payments may incur interest at the prime rate plus 2%.", "indent": 1 },

    { "id": "saH3", "type": "heading", "headingStyle": "h1", "text": "3. Termination", "indent": 0 },
    { "id": "saT1", "type": "paragraph", "listMode": "number", "text": "Either party may end this agreement with 30 days' written notice.", "indent": 1 },
    { "id": "saT2", "type": "paragraph", "listMode": "number", "text": "Fees for services already delivered remain payable after termination.", "indent": 1 },

    { "id": "saWarn", "type": "callout", "variant": "warning", "title": "", "text": "This is a sample layout, not legal advice. Have a qualified person review any agreement before you use it.", "indent": 0 },

    { "id": "saH4", "type": "heading", "headingStyle": "h1", "text": "4. Signatures", "indent": 0 },
    { "id": "saSig1", "type": "signature", "text": "For the Provider", "witnesses": false, "indent": 0 },
    { "id": "saSig2", "type": "signature", "text": "For the Client", "witnesses": true, "indent": 0 }
  ],
  "auditLog": [],
  "modified": 1791180000000
}
