{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://target-revenue.example/schemas/extension_contract.schema.json", "title": "Monetization Extension Contract", "description": "Stage 0 schema per specs/TechnicalSpecificationDocument.md §3.3. Structural conformance only — the semantic rule that allocation.rule may not redefine core terms is enforced in code (src/target_revenue/validation.py), not expressible in JSON Schema alone.", "type": "object", "required": [ "id", "version", "value", "pricing", "allocation", "recognition", "reversal", "evidence", "status" ], "additionalProperties": false, "properties": { "id": { "type": "string", "pattern": "^trsl:extension:[a-zA-Z0-9._-]+$" }, "version": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)*$" }, "value": { "type": "object", "required": ["description"], "additionalProperties": false, "properties": { "description": { "type": "string", "minLength": 1 } } }, "pricing": { "type": "object", "required": ["method"], "additionalProperties": false, "properties": { "method": { "type": "string", "minLength": 1 } } }, "allocation": { "type": "object", "required": ["rule"], "additionalProperties": false, "properties": { "rule": { "type": "string", "minLength": 1 }, "default_rate": { "type": "number", "minimum": 0, "maximum": 1, "description": "Default development_allocation fraction, per canonical profile defaults (working default Q11)." } } }, "recognition": { "type": "object", "required": ["event"], "additionalProperties": false, "properties": { "event": { "type": "string", "enum": ["order", "invoice", "payment-settled", "delivery"], "description": "Working default Q10: payment-settled only for Stage 0 fold inputs." } } }, "reversal": { "type": "object", "required": ["rule"], "additionalProperties": false, "properties": { "rule": { "type": "string", "minLength": 1 } } }, "evidence": { "type": "object", "required": ["requirement"], "additionalProperties": false, "properties": { "requirement": { "type": "string", "minLength": 1 } } }, "status": { "type": "string", "enum": ["registered", "canonical", "deprecated"], "description": "Assigned by Trust Service / maintainer review, not the extension author. canonical promotion is a documented human action (SCOPE §4)." } } }