target-revenue/schemas/conversion_attestation.schema.json

53 lines
1.8 KiB
JSON
Raw Normal View History

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://target-revenue.example/schemas/conversion_attestation.schema.json",
"title": "Conversion Attestation",
"description": "Stage 0 schema per specs/TechnicalSpecificationDocument.md §3.5. Evidence of conversion only — never a precondition for conversion status (PRD FR-7/G6, working default Q13). Tooling must be able to recompute conversion from the Phase Manifest and Target Ledger alone, without this document.",
"type": "object",
"required": [
"phase",
"milestone_release",
"conversion_timestamp",
"future_license",
"final_development_credit",
"final_remission_credit",
"final_outstanding_target",
"ledger_checkpoint"
],
"additionalProperties": false,
"properties": {
"phase": {
"type": "string",
"pattern": "^trsl:phase:[a-zA-Z0-9._-]+$"
},
"milestone_release": {
"type": "string",
"description": "Must match phase.milestone_release.name in the Phase Manifest."
},
"conversion_timestamp": {
"type": "string",
"format": "date-time",
"description": "The moment the ledger fold first reaches Outstanding Target = 0."
},
"future_license": {
"type": "string",
"enum": ["MIT", "Apache-2.0"]
},
"final_development_credit": { "type": "number", "minimum": 0 },
"final_remission_credit": { "type": "number", "minimum": 0 },
"final_outstanding_target": {
"type": "number",
"const": 0,
"description": "MUST equal 0."
},
"ledger_checkpoint": {
"type": "string",
"description": "Points to the last ledger entry id or hash included in the fold."
},
"signature": {
"type": "string",
"description": "Ed25519 signature over the canonical serialization. Optional for Stage 0 fixtures."
}
}
}