{
  "generated": "2026-11-14T10:13:15.620040+00:00",
  "site": "https://craftplusplus.com",
  "git": {
    "branch": "master",
    "commit": "481e3d9",
    "subject": "Fix csproj warning by adding EnableWindowsTargeting and escape ampersand",
    "clone": "https://craftplusplus.com/git/craft.git"
  },
  "release": {
    "application": "Craft++",
    "version": "1.0.86",
    "minimumSupportedVersion": "0.1.0",
    "title": "Craft++ update available",
    "message": "A newer Craft++ version is available.",
    "platforms": [
      "win"
    ],
    "runtime": "win-x64",
    "downloadUrl": "https://craftplusplus.com/updateddata/CraftPlusPlus-1.0.86-win-x64.zip",
    "updateArchiveUrl": "https://craftplusplus.com/updateddata/CraftPlusPlus-1.0.86-win-x64.zip",
    "updateArchiveSha256": "25b7ba8e1bae11eb3485a9f2eae82ea4632d6624bd0dc73ca5d42fd0c486c9cd",
    "releaseNotesUrl": "https://craftplusplus.com/updateddata/1.0.86-notes.html",
    "publishedUtc": "2026-11-10T15:46:52Z"
  },
  "totals": {
    "files": 359,
    "lines": 98718,
    "programs": 13,
    "docs": 27,
    "scripts": 8,
    "sources": 283
  },
  "endpoints": {
    "site": "https://craftplusplus.com/",
    "download": "https://craftplusplus.com/download.html",
    "hub": "https://craftplusplus.com/hub/",
    "hub_api_games": "https://craftplusplus.com/hub/api/games",
    "update_feed": "https://craftplusplus.com/updateddata/version.json",
    "source": "https://craftplusplus.com/src/",
    "git": "https://craftplusplus.com/git/craft.git"
  },
  "programs": [
    {
      "name": "codelanguage",
      "path": "codelanguage/codelanguage.csproj",
      "dir": "codelanguage",
      "role": "Dream Maker, Dream Daemon, Dream Seeker & Pager \u2014 the WPF IDE, DM-language compiler, interpreter and game runtime",
      "lines": 92040,
      "readme": "codelanguage/README.md",
      "files": 327
    },
    {
      "name": "CraftPlusPlus.HubSite",
      "path": "codelanguage/CraftPlusPlus.HubSite/CraftPlusPlus.HubSite.csproj",
      "dir": "codelanguage/CraftPlusPlus.HubSite",
      "role": "The Hub: public game directory, accounts, live world heartbeats, comments and groups",
      "lines": 1014,
      "readme": "codelanguage/CraftPlusPlus.HubSite/README.md",
      "files": 5
    },
    {
      "name": "CraftUpdateInstaller",
      "path": "codelanguage/UpdateInstaller/CraftUpdateInstaller.csproj",
      "dir": "codelanguage/UpdateInstaller",
      "role": "Update installer applied automatically by the in-app updater",
      "lines": 281,
      "readme": null,
      "files": 3
    },
    {
      "name": "RemoteUpdater",
      "path": "codelanguage/RemoteUpdater/RemoteUpdater.csproj",
      "dir": "codelanguage/RemoteUpdater",
      "role": "Standalone remote-update helper process",
      "lines": 121,
      "readme": null,
      "files": 3
    },
    {
      "name": "BuildUploadLauncher",
      "path": "codelanguage/BuildUploadLauncher/BuildUploadLauncher.csproj",
      "dir": "codelanguage/BuildUploadLauncher",
      "role": "Launcher that runs the release build and uploads artifacts",
      "lines": 218,
      "readme": null,
      "files": 6
    },
    {
      "name": "CraftPlusPlus.Tests",
      "path": "codelanguage/CraftPlusPlus.Tests/CraftPlusPlus.Tests.csproj",
      "dir": "codelanguage/CraftPlusPlus.Tests",
      "role": "Main test suite: compiler, IDE, hub, services",
      "lines": 21639,
      "readme": null,
      "files": 86
    },
    {
      "name": "CompilerValidation",
      "path": "codelanguage/CraftPlusPlus.Tests/CompilerValidation/CompilerValidation.csproj",
      "dir": "codelanguage/CraftPlusPlus.Tests/CompilerValidation",
      "role": "Front-end compilation validation suite",
      "lines": 29,
      "readme": null,
      "files": 2
    },
    {
      "name": "RuntimeValidation",
      "path": "codelanguage/CraftPlusPlus.Tests/RuntimeValidation/RuntimeValidation.csproj",
      "dir": "codelanguage/CraftPlusPlus.Tests/RuntimeValidation",
      "role": "Runtime and interpreter behavior validation",
      "lines": 2067,
      "readme": null,
      "files": 10
    },
    {
      "name": "CraftPlusPlus.Windows.Tests",
      "path": "codelanguage/CraftPlusPlus.Windows.Tests/CraftPlusPlus.Windows.Tests.csproj",
      "dir": "codelanguage/CraftPlusPlus.Windows.Tests",
      "role": "Windows-only WPF document-workflow tests",
      "lines": 89,
      "readme": null,
      "files": 2
    },
    {
      "name": "ByondReferenceIngestion",
      "path": "tools/ByondReferenceIngestion/ByondReferenceIngestion.csproj",
      "dir": "tools/ByondReferenceIngestion",
      "role": "Ingests BYOND reference material into parity datasets",
      "lines": 403,
      "readme": null,
      "files": 2
    },
    {
      "name": "ParityCoverageDashboard",
      "path": "tools/ParityCoverageDashboard/ParityCoverageDashboard.csproj",
      "dir": "tools/ParityCoverageDashboard",
      "role": "Dashboard over BYOND API parity coverage",
      "lines": 77,
      "readme": null,
      "files": 2
    },
    {
      "name": "ByondDifferentialHarness",
      "path": "tools/ByondDifferentialHarness/ByondDifferentialHarness.csproj",
      "dir": "tools/ByondDifferentialHarness",
      "role": "Differential harness comparing Craft++ against BYOND",
      "lines": 399,
      "readme": null,
      "files": 2
    },
    {
      "name": "DebugTest",
      "path": "codelanguage/DebugTest/DebugTest.csproj",
      "dir": "codelanguage/DebugTest",
      "role": "Scratch project for manual debugging",
      "lines": 49,
      "readme": null,
      "files": 2
    }
  ],
  "docs": [
    {
      "path": "AGENTS.md",
      "name": "AGENTS",
      "area": "(root)",
      "lines": 43
    },
    {
      "path": "codelanguage/AUDIT.md",
      "name": "AUDIT",
      "area": "codelanguage",
      "lines": 144
    },
    {
      "path": "codelanguage/BYOND_COMPATIBILITY.md",
      "name": "BYOND_COMPATIBILITY",
      "area": "codelanguage",
      "lines": 57
    },
    {
      "path": "codelanguage/BYOND_DM_PARITY_MATRIX.md",
      "name": "BYOND_DM_PARITY_MATRIX",
      "area": "codelanguage",
      "lines": 606
    },
    {
      "path": "codelanguage/BYOND_INTERFACE_EDITOR_50_PHASES.md",
      "name": "BYOND_INTERFACE_EDITOR_50_PHASES",
      "area": "codelanguage",
      "lines": 61
    },
    {
      "path": "codelanguage/BYOND_PARITY_RESEARCH.md",
      "name": "BYOND_PARITY_RESEARCH",
      "area": "codelanguage",
      "lines": 65
    },
    {
      "path": "codelanguage/BYOND_Workflow_Research.md",
      "name": "BYOND_Workflow_Research",
      "area": "codelanguage",
      "lines": 638
    },
    {
      "path": "codelanguage/CRAFT++_vs_BYOND_COMPARISON.md",
      "name": "CRAFT++_vs_BYOND_COMPARISON",
      "area": "codelanguage",
      "lines": 710
    },
    {
      "path": "codelanguage/DEVELOPMENT.md",
      "name": "DEVELOPMENT",
      "area": "codelanguage",
      "lines": 195
    },
    {
      "path": "codelanguage/FEATURES_TO_ADD.md",
      "name": "FEATURES_TO_ADD",
      "area": "codelanguage",
      "lines": 45
    },
    {
      "path": "codelanguage/IMPLEMENTATION_ROADMAP.md",
      "name": "IMPLEMENTATION_ROADMAP",
      "area": "codelanguage",
      "lines": 977
    },
    {
      "path": "codelanguage/INTERFACE_EDITOR_CRASH_AUDIT.md",
      "name": "INTERFACE_EDITOR_CRASH_AUDIT",
      "area": "codelanguage",
      "lines": 87
    },
    {
      "path": "codelanguage/LANGUAGE_CONFORMANCE_REPORT.md",
      "name": "LANGUAGE_CONFORMANCE_REPORT",
      "area": "codelanguage",
      "lines": 164
    },
    {
      "path": "codelanguage/LANGUAGE_FUNCTIONAL_AUDIT.md",
      "name": "LANGUAGE_FUNCTIONAL_AUDIT",
      "area": "codelanguage",
      "lines": 336
    },
    {
      "path": "codelanguage/ONLINE_UPDATE_CHECK.md",
      "name": "ONLINE_UPDATE_CHECK",
      "area": "codelanguage",
      "lines": 40
    },
    {
      "path": "codelanguage/PHASE1_COMPLETION_REPORT.md",
      "name": "PHASE1_COMPLETION_REPORT",
      "area": "codelanguage",
      "lines": 236
    },
    {
      "path": "codelanguage/PHASE2_COMPLETION_REPORT.md",
      "name": "PHASE2_COMPLETION_REPORT",
      "area": "codelanguage",
      "lines": 311
    },
    {
      "path": "codelanguage/PHASE3_COMPLETION_REPORT.md",
      "name": "PHASE3_COMPLETION_REPORT",
      "area": "codelanguage",
      "lines": 273
    },
    {
      "path": "codelanguage/PHASE4_NETWORKING_PLAN.md",
      "name": "PHASE4_NETWORKING_PLAN",
      "area": "codelanguage",
      "lines": 564
    },
    {
      "path": "codelanguage/PHASE5_COMPLETE.md",
      "name": "PHASE5_COMPLETE",
      "area": "codelanguage",
      "lines": 250
    },
    {
      "path": "codelanguage/PHASE5_IMPLEMENTATION.md",
      "name": "PHASE5_IMPLEMENTATION",
      "area": "codelanguage",
      "lines": 172
    },
    {
      "path": "codelanguage/PHASES5-10_ROADMAP.md",
      "name": "PHASES5-10_ROADMAP",
      "area": "codelanguage",
      "lines": 511
    },
    {
      "path": "codelanguage/PRODUCTION_FLOW_PARITY_RESEARCH.md",
      "name": "PRODUCTION_FLOW_PARITY_RESEARCH",
      "area": "codelanguage",
      "lines": 424
    },
    {
      "path": "codelanguage/PROJECT_STATUS_AND_SUMMARY.md",
      "name": "PROJECT_STATUS_AND_SUMMARY",
      "area": "codelanguage",
      "lines": 531
    },
    {
      "path": "codelanguage/README.md",
      "name": "README",
      "area": "codelanguage",
      "lines": 200
    },
    {
      "path": "codelanguage/CraftPlusPlus.HubSite/README.md",
      "name": "README",
      "area": "codelanguage",
      "lines": 53
    },
    {
      "path": "codelanguage/RELEASE_PIPELINE.md",
      "name": "RELEASE_PIPELINE",
      "area": "codelanguage",
      "lines": 54
    }
  ],
  "scripts": [
    {
      "path": "build-release.sh",
      "name": "build-release.sh",
      "lines": 7
    },
    {
      "path": "build_and_upload.sh",
      "name": "build_and_upload.sh",
      "lines": 310
    },
    {
      "path": "codelanguage/rebuild_all.bat",
      "name": "rebuild_all.bat",
      "lines": 51
    },
    {
      "path": "installer/build-installer.ps1",
      "name": "build-installer.ps1",
      "lines": 67
    },
    {
      "path": "installer/build-release.ps1",
      "name": "build-release.ps1",
      "lines": 68
    },
    {
      "path": "installer/build-update.ps1",
      "name": "build-update.ps1",
      "lines": 90
    },
    {
      "path": "runver.bat",
      "name": "runver.bat",
      "lines": 2
    },
    {
      "path": "upload_update_if_newer.sh",
      "name": "upload_update_if_newer.sh",
      "lines": 148
    }
  ],
  "news": [
    {
      "hash": "481e3d9",
      "date": "2026-10-31",
      "subject": "Fix csproj warning by adding EnableWindowsTargeting and escape ampersand"
    },
    {
      "hash": "c4ecfdf",
      "date": "2026-10-31",
      "subject": "Add BuildUploadLauncher WPF app: builds release pipeline and uploads artifact via env var URL"
    },
    {
      "hash": "87b009c",
      "date": "2026-10-31",
      "subject": "Add EnsureFullParity method and CLI flag --parity-check for full BYOND API parity verification"
    },
    {
      "hash": "c56d770",
      "date": "2026-10-31",
      "subject": "Refactor update launch into ApplicationUpdateService.LaunchInstaller and clean ApplicationUpdateCoordinator"
    },
    {
      "hash": "f2f823a",
      "date": "2026-10-31",
      "subject": "Refactor update flow: centralize installer launch in ApplicationUpdateService and simplify ApplicationUpdateCoordinator"
    },
    {
      "hash": "6a84287",
      "date": "2026-10-31",
      "subject": "Initial clean commit \u2013 source files only, generated artifacts ignored"
    }
  ]
}