fix(modules): Car Wash depends on parking only — the discount engine is core, not the validation module
Build & push images / images (push) Successful in 2m51s

A site entitled to parking,carwash had the wash silently dropped as dependency-broken.
The validation program routes (compose/read) leave the validation module gate; the
merchant scan routes (mine/lookup/apply/void) stay behind it.

Claude-Session: https://claude.ai/code/session_01FWncR69HgGPuei1dLrW3cU
This commit is contained in:
2026-09-06 10:40:01 +02:00
parent acde3bba5b
commit 2aa1045ddc
5 changed files with 55 additions and 20 deletions
+5 -4
View File
@@ -1881,12 +1881,13 @@ export const MODULES: readonly ModuleManifest[] = [
jobs: [{ id: "merchant", permissions: ["validation:create"] }],
},
{
// The pilot module. Depends on parking (the wash sits inside the park; the ticket
// IS the customer identity) and on validation (the sponsorship engine: a completed
// wash applies the site's "carwash" validation program to the session).
// The pilot module. Depends on parking only (the wash sits inside the park; the
// ticket IS the customer identity). The parking-discount ENGINE (validation programs +
// applyValidation) is CORE — the `validation` module is just the merchant's scan
// screen — so a site can run Car Wash without any merchant validation (2026-09-06).
id: "carwash",
required: false,
dependsOn: ["parking", "validation"],
dependsOn: ["parking"],
resources: ["carwash"],
ledgerEventTypes: ["carwash_order", "carwash_payment"],
// Money taken AT THE BAY lands on the wash operator's own till, never the booth's.