{
  "type": "sample",
  "slug": "sample-service-workshop",
  "version": "1.0.0",
  "contract": 1,
  "name": "Wheel & Spoke Workshop",
  "description": "Service workshop. Workshop bookkeeping example; customer-owned property is not inventory, and job cards, parts custody and workshop scheduling are not implemented.",
  "author": "PHP Ledger",
  "licence": "CC0-1.0",
  "homepage": "https://phpledger.com/directory/sample-service-workshop/",
  "requires": {
    "core": "1.0.0",
    "inventory": "1.0.0",
    "purchasing": "1.0.0"
  },
  "sample": {
    "id": "service-workshop",
    "version": "1.0.0",
    "name": "Wheel & Spoke Workshop",
    "business": "Service workshop",
    "source_count": 85,
    "journal_count": 83,
    "draft_count": 3,
    "status": "preview_only",
    "capability_note": "Workshop bookkeeping example; customer-owned property is not inventory, and job cards, parts custody and workshop scheduling are not implemented.",
    "scenario": {
      "id": "job-card",
      "title": "Keep customer property separate from workshop stock",
      "goal": "Follow parts, labour, customer-owned property and settlement examples without treating a job card as a posted module.",
      "steps": [
        "Review the opening workshop stock and the separate customer-owned bicycle reference.",
        "Trace a parts purchase and a labour/service sale through the ledger.",
        "Review the customer receipt, supplier payment and returned part.",
        "Confirm that customer-owned property does not enter the inventory valuation."
      ],
      "checks": [
        "Customer-owned property is excluded from stock balances and valuation.",
        "The pack does not implement job cards, custody, scheduling or work-in-progress costing.",
        "Parts and service income remain distinguishable in the teaching scenario."
      ]
    },
    "file": "service-workshop-1.0.0.json",
    "sha256": "8d8aa2dd5c4ea227ac29d8597cccc51711ffc9ac165a6846d75e82abfeeb6d2f"
  },
  "files": {
    "pack.json": "8d8aa2dd5c4ea227ac29d8597cccc51711ffc9ac165a6846d75e82abfeeb6d2f",
    "structure.json": "548b3e8c6a30b929a2980f3d57e8e8795dc23ca780578d6777a7086e867ad0ed"
  }
}
