93 lines
2.7 KiB
JSON
93 lines
2.7 KiB
JSON
|
|
{
|
||
|
|
"$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)."
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|