{"version":"2026.07.21.5","contract":{"framework":"QMF","version":"4.0.0","name":"quizzman-payments","layers":{"foundation":"src/foundation","runtime":"src/runtime","components":"src/components","modules":"src/modules"},"modules":[{"id":"auth","path":"auth","manifest":"manifest.json","enabled":true,"lazy":false},{"id":"telemetry","path":"telemetry","manifest":"manifest.json","enabled":true,"lazy":false},{"id":"shell","path":"shell","manifest":"manifest.json","enabled":true,"lazy":false},{"id":"packages","path":"packages","manifest":"manifest.json","enabled":true,"lazy":false},{"id":"content","path":"content","manifest":"manifest.json","enabled":true,"lazy":true},{"id":"register","path":"register","manifest":"manifest.json","enabled":true,"lazy":true},{"id":"terms","path":"terms","manifest":"manifest.json","enabled":true,"lazy":true},{"id":"history","path":"history","manifest":"manifest.json","enabled":true,"lazy":true}],"eventBus":"typed","manifest":"v1","language":"js","router":null,"componentModel":"imperative","adapters":{"react":null,"vue":null,"svelte":null},"ai":{"strictConvention":true,"requireManifest":true,"allowImperativeDOM":true,"allowMagicEvents":false,"requireSchemaBeforeWrite":true},"build":{"target":"es2020","cdn":true,"sri":true},"inspect":{"enabled":true,"exposeGlobal":true}},"nodes":[{"id":"auth","path":"auth","lazy":false,"enabled":true,"manifest":{"name":"auth","version":"1.0.0","description":"Quizzman IdSys session for Payments.","layer":"module","dependencies":[],"services":[{"id":"session","token":"svc:auth.session","file":"service.js","singleton":true}],"events":{"produces":[{"name":"auth.session.changed","version":1,"schema":"AuthSessionChangedPayload"}],"consumes":[]},"states":[{"id":"auth","file":"state.js","schema":"StateSchema","scope":"module"}],"permissions":["auth:session"],"exports":{"plugin":"module.js","public":[]},"configSchema":"ConfigSchema","lifecycle":["onInit","onMount","onConnect","onReady","onDestroy"],"entry":"module.js","files":{"module":"module.js","config":"config.js","state":"state.js","service":"service.js","events":"events.js","view":"view.js","manifest":"manifest.json"}}},{"id":"telemetry","path":"telemetry","lazy":false,"enabled":true,"manifest":{"name":"telemetry","version":"1.0.0","description":"Device profile and behavior logging for Payments.","layer":"module","dependencies":[{"name":"auth","version":"^1.0.0","optional":false}],"services":[{"id":"logger","token":"svc:telemetry.logger","file":"service.js","singleton":true}],"events":{"produces":[{"name":"telemetry.event.recorded","version":1,"schema":"TelemetryEventRecordedPayload"}],"consumes":[{"name":"auth.session.changed","version":1,"schema":"AuthSessionChangedPayload"},{"name":"app.route.changed","version":1,"schema":"AppRouteChangedPayload"},{"name":"packages.plan.selected","version":1,"schema":"PackagesPlanSelectedPayload"}]},"states":[{"id":"telemetry","file":"state.js","schema":"StateSchema","scope":"module"}],"permissions":["telemetry:write"],"exports":{"plugin":"module.js","public":[]},"configSchema":"ConfigSchema","lifecycle":["onInit","onMount","onConnect","onReady","onDestroy"],"entry":"module.js","files":{"module":"module.js","config":"config.js","state":"state.js","service":"service.js","events":"events.js","view":"view.js","manifest":"manifest.json"}}},{"id":"shell","path":"shell","lazy":false,"enabled":true,"manifest":{"name":"shell","version":"1.0.0","description":"Payments SaaS chrome and section router.","layer":"module","dependencies":[{"name":"auth","version":"^1.0.0","optional":false}],"services":[{"id":"router","token":"svc:shell.router","file":"service.js","singleton":true}],"events":{"produces":[{"name":"app.navigate","version":1,"schema":"AppNavigatePayload"},{"name":"app.route.changed","version":1,"schema":"AppRouteChangedPayload"}],"consumes":[{"name":"auth.session.changed","version":1,"schema":"AuthSessionChangedPayload"},{"name":"app.navigate","version":1,"schema":"AppNavigatePayload"}]},"states":[{"id":"shell","file":"state.js","schema":"StateSchema","scope":"module"}],"permissions":["shell:navigate"],"exports":{"plugin":"module.js","public":["styles"]},"configSchema":"ConfigSchema","lifecycle":["onInit","onMount","onConnect","onReady","onDestroy"],"entry":"module.js","files":{"module":"module.js","config":"config.js","state":"state.js","service":"service.js","events":"events.js","view":"view.js","manifest":"manifest.json"}}},{"id":"packages","path":"packages","lazy":false,"enabled":true,"manifest":{"name":"packages","version":"1.0.0","description":"Membership package catalog and purchase entry.","layer":"module","dependencies":[{"name":"auth","version":"^1.0.0","optional":false},{"name":"shell","version":"^1.0.0","optional":false}],"services":[{"id":"catalog","token":"svc:packages.catalog","file":"service.js","singleton":true}],"events":{"produces":[{"name":"packages.plan.selected","version":1,"schema":"PackagesPlanSelectedPayload"}],"consumes":[{"name":"app.route.changed","version":1,"schema":"AppRouteChangedPayload"},{"name":"auth.session.changed","version":1,"schema":"AuthSessionChangedPayload"}]},"states":[{"id":"packages","file":"state.js","schema":"StateSchema","scope":"module"}],"permissions":["packages:read","packages:purchase"],"exports":{"plugin":"module.js","public":[]},"configSchema":"ConfigSchema","lifecycle":["onInit","onMount","onConnect","onReady","onDestroy"],"entry":"module.js","files":{"module":"module.js","config":"config.js","state":"state.js","service":"service.js","events":"events.js","view":"view.js","manifest":"manifest.json"}}},{"id":"content","path":"content","lazy":true,"enabled":true,"manifest":{"name":"content","version":"1.0.0","description":"Membership content overview.","layer":"module","dependencies":[{"name":"shell","version":"^1.0.0","optional":false}],"services":[],"events":{"produces":[],"consumes":[{"name":"app.route.changed","version":1,"schema":"AppRouteChangedPayload"}]},"states":[{"id":"content","file":"state.js","schema":"StateSchema","scope":"module"}],"permissions":["content:read"],"exports":{"plugin":"module.js","public":[]},"configSchema":"ConfigSchema","lifecycle":["onInit","onMount","onConnect","onDestroy"],"entry":"module.js","files":{"module":"module.js","config":"config.js","state":"state.js","service":"service.js","events":"events.js","view":"view.js","manifest":"manifest.json"}}},{"id":"register","path":"register","lazy":true,"enabled":true,"manifest":{"name":"register","version":"1.0.0","description":"Registration entry for Payments membership.","layer":"module","dependencies":[{"name":"auth","version":"^1.0.0","optional":false},{"name":"shell","version":"^1.0.0","optional":false}],"services":[],"events":{"produces":[],"consumes":[{"name":"app.route.changed","version":1,"schema":"AppRouteChangedPayload"},{"name":"auth.session.changed","version":1,"schema":"AuthSessionChangedPayload"}]},"states":[{"id":"register","file":"state.js","schema":"StateSchema","scope":"module"}],"permissions":["register:view"],"exports":{"plugin":"module.js","public":[]},"configSchema":"ConfigSchema","lifecycle":["onInit","onMount","onConnect","onDestroy"],"entry":"module.js","files":{"module":"module.js","config":"config.js","state":"state.js","service":"service.js","events":"events.js","view":"view.js","manifest":"manifest.json"}}},{"id":"terms","path":"terms","lazy":true,"enabled":true,"manifest":{"name":"terms","version":"1.0.0","description":"Payment terms and policies.","layer":"module","dependencies":[{"name":"shell","version":"^1.0.0","optional":false}],"services":[],"events":{"produces":[],"consumes":[{"name":"app.route.changed","version":1,"schema":"AppRouteChangedPayload"}]},"states":[{"id":"terms","file":"state.js","schema":"StateSchema","scope":"module"}],"permissions":["terms:read"],"exports":{"plugin":"module.js","public":[]},"configSchema":"ConfigSchema","lifecycle":["onInit","onMount","onConnect","onDestroy"],"entry":"module.js","files":{"module":"module.js","config":"config.js","state":"state.js","service":"service.js","events":"events.js","view":"view.js","manifest":"manifest.json"}}},{"id":"history","path":"history","lazy":true,"enabled":true,"manifest":{"name":"history","version":"1.0.0","description":"User payment transaction history.","layer":"module","dependencies":[{"name":"auth","version":"^1.0.0","optional":false},{"name":"shell","version":"^1.0.0","optional":false}],"services":[{"id":"history","token":"svc:history.api","file":"service.js","singleton":true}],"events":{"produces":[],"consumes":[{"name":"app.route.changed","version":1,"schema":"AppRouteChangedPayload"},{"name":"auth.session.changed","version":1,"schema":"AuthSessionChangedPayload"}]},"states":[{"id":"history","file":"state.js","schema":"StateSchema","scope":"module"}],"permissions":["history:read"],"exports":{"plugin":"module.js","public":[]},"configSchema":"ConfigSchema","lifecycle":["onInit","onMount","onConnect","onDestroy"],"entry":"module.js","files":{"module":"module.js","config":"config.js","state":"state.js","service":"service.js","events":"events.js","view":"view.js","manifest":"manifest.json"}}}],"order":["auth","telemetry","shell","packages","content","register","terms","history"]}