← Files VeraARCHIVED FILE
modules/bandi-agevolazioni/schemas/application_workbench.schema.json
11.5 KB · Oct 4, 2026 · 12:28 UTC
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://mparanza.com/schemas/bandi-agevolazioni/application-workbench-1.2.json",
"title": "Source-backed grant application workbench",
"type": "object",
"additionalProperties": false,
"required": ["schema_version", "plugin", "run_id", "case_summary", "requirements", "facts", "assessments", "document_checklist", "expenses", "form_fields", "narratives", "consistency_checks", "issues", "authority_simulation", "dossier"],
"properties": {
"schema_version": {"const": "1.2"},
"plugin": {"const": "bandi-agevolazioni"},
"run_id": {"$ref": "#/$defs/id"},
"case_summary": {"type": "string"},
"requirements": {"type": "array", "items": {"$ref": "#/$defs/requirement"}},
"facts": {"type": "array", "items": {"$ref": "#/$defs/fact"}},
"assessments": {"type": "array", "items": {"$ref": "#/$defs/assessment"}},
"document_checklist": {"type": "array", "items": {"$ref": "#/$defs/checklistItem"}},
"expenses": {"type": "array", "items": {"$ref": "#/$defs/expense"}},
"form_fields": {"type": "array", "items": {"$ref": "#/$defs/formField"}},
"narratives": {"type": "array", "items": {"$ref": "#/$defs/narrative"}},
"consistency_checks": {"type": "array", "items": {"$ref": "#/$defs/consistencyCheck"}},
"issues": {"type": "array", "items": {"$ref": "#/$defs/issue"}},
"authority_simulation": {"$ref": "#/$defs/authoritySimulation"},
"dossier": {
"type": "object",
"additionalProperties": false,
"required": ["disposition", "ready_to_file", "limitations"],
"properties": {
"disposition": {"enum": ["review_required", "ready_for_authorized_review", "not_ready_missing", "not_ready_verify", "not_eligible_or_excluded", "not_recommended_professional_judgement", "superseded"]},
"ready_to_file": {"const": false},
"limitations": {"type": "array", "items": {"type": "string"}}
}
}
},
"$defs": {
"id": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,79}$"},
"idList": {"type": "array", "uniqueItems": true, "items": {"$ref": "#/$defs/id"}},
"readiness": {"enum": ["ready", "missing", "verify", "not_applicable"]},
"outcome": {"enum": ["satisfied", "not_satisfied", "uncertain", "not_applicable", "not_assessed"]},
"reviewStatus": {"enum": ["proposed", "confirmed", "rejected", "blocked"]},
"sourceRef": {
"type": "object",
"additionalProperties": false,
"required": ["source_id", "locator", "excerpt", "excerpt_sha256"],
"properties": {
"source_id": {"$ref": "#/$defs/id"},
"locator": {"type": "string", "minLength": 1},
"excerpt": {"type": "string", "minLength": 1},
"excerpt_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}
}
},
"requirement": {
"type": "object",
"additionalProperties": false,
"required": ["requirement_id", "category", "statement", "source_refs", "applicability", "expected_evidence", "review_status"],
"properties": {
"requirement_id": {"$ref": "#/$defs/id"},
"category": {"enum": ["eligibility", "exclusion", "cost", "document", "deadline", "procedure", "form", "narrative"]},
"statement": {"type": "string", "minLength": 1},
"source_refs": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/sourceRef"}},
"applicability": {"type": "string", "minLength": 1},
"expected_evidence": {"type": "array", "minItems": 1, "items": {"type": "string", "minLength": 1}},
"review_status": {"$ref": "#/$defs/reviewStatus"}
}
},
"fact": {
"type": "object",
"additionalProperties": false,
"required": ["fact_id", "field_code", "value", "as_of", "source_ids", "kind", "review_status"],
"properties": {
"fact_id": {"$ref": "#/$defs/id"},
"field_code": {"type": "string", "minLength": 1},
"value": {},
"as_of": {"type": ["string", "null"], "format": "date"},
"source_ids": {"$ref": "#/$defs/idList"},
"kind": {"enum": ["document_observation", "user_assertion", "model_inference", "professional_judgement"]},
"review_status": {"$ref": "#/$defs/reviewStatus"}
}
},
"assessment": {
"type": "object",
"additionalProperties": false,
"required": ["assessment_id", "requirement_id", "fact_ids", "readiness", "outcome", "rationale", "evaluation_method", "review_status"],
"properties": {
"assessment_id": {"$ref": "#/$defs/id"},
"requirement_id": {"$ref": "#/$defs/id"},
"fact_ids": {"$ref": "#/$defs/idList"},
"readiness": {"$ref": "#/$defs/readiness"},
"outcome": {"$ref": "#/$defs/outcome"},
"rationale": {"type": "string", "minLength": 1},
"evaluation_method": {"enum": ["model_led", "deterministic", "hybrid"]},
"deterministic_rule": {"anyOf": [{"$ref": "#/$defs/deterministicRule"}, {"type": "null"}]},
"review_status": {"$ref": "#/$defs/reviewStatus"}
}
},
"checklistItem": {
"type": "object",
"additionalProperties": false,
"required": ["document_id", "title", "requirement_ids", "material_source_ids", "readiness", "rationale", "review_status"],
"properties": {
"document_id": {"$ref": "#/$defs/id"},
"title": {"type": "string", "minLength": 1},
"requirement_ids": {"$ref": "#/$defs/idList"},
"material_source_ids": {"$ref": "#/$defs/idList"},
"readiness": {"$ref": "#/$defs/readiness"},
"rationale": {"type": "string", "minLength": 1},
"review_status": {"$ref": "#/$defs/reviewStatus"}
}
},
"expense": {
"type": "object",
"additionalProperties": false,
"required": ["expense_id", "description", "amount", "currency", "requirement_ids", "source_ids", "readiness", "outcome", "rationale", "review_status"],
"properties": {
"expense_id": {"$ref": "#/$defs/id"},
"description": {"type": "string", "minLength": 1},
"amount": {"type": "string", "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"},
"currency": {"type": "string", "pattern": "^[A-Z]{3}$"},
"requirement_ids": {"$ref": "#/$defs/idList"},
"source_ids": {"$ref": "#/$defs/idList"},
"readiness": {"$ref": "#/$defs/readiness"},
"outcome": {"enum": ["eligible", "ineligible", "partially_eligible", "uncertain", "not_assessed"]},
"rationale": {"type": "string", "minLength": 1},
"review_status": {"$ref": "#/$defs/reviewStatus"}
}
},
"formField": {
"type": "object",
"additionalProperties": false,
"required": ["field_id", "label", "requirement_ids", "fact_ids", "proposed_value", "readiness", "rationale", "manual_only", "declaration_control", "signature_control", "submission_control", "review_status"],
"properties": {
"field_id": {"$ref": "#/$defs/id"},
"label": {"type": "string", "minLength": 1},
"requirement_ids": {"$ref": "#/$defs/idList"},
"fact_ids": {"$ref": "#/$defs/idList"},
"proposed_value": {},
"readiness": {"$ref": "#/$defs/readiness"},
"rationale": {"type": "string", "minLength": 1},
"manual_only": {"type": "boolean"},
"declaration_control": {"type": "boolean"},
"signature_control": {"type": "boolean"},
"submission_control": {"type": "boolean"},
"review_status": {"$ref": "#/$defs/reviewStatus"}
}
},
"narrative": {
"type": "object",
"additionalProperties": false,
"required": ["narrative_id", "prompt", "draft", "requirement_ids", "fact_ids", "readiness", "rationale", "review_status"],
"properties": {
"narrative_id": {"$ref": "#/$defs/id"},
"prompt": {"type": "string", "minLength": 1},
"draft": {"type": "string"},
"requirement_ids": {"$ref": "#/$defs/idList"},
"fact_ids": {"$ref": "#/$defs/idList"},
"readiness": {"$ref": "#/$defs/readiness"},
"rationale": {"type": "string", "minLength": 1},
"review_status": {"$ref": "#/$defs/reviewStatus"}
}
},
"deterministicRule": {
"type": "object",
"additionalProperties": false,
"required": ["rule_id", "version", "reason", "inputs", "result", "outcome_map"],
"properties": {
"rule_id": {"enum": ["exact_decimal_compare", "exact_date_compare"]},
"version": {"const": "1"},
"reason": {"type": "string", "minLength": 1},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": ["left", "operator", "right"],
"properties": {
"left": {"type": "string", "minLength": 1},
"operator": {"enum": ["<", "<=", "==", ">=", ">"]},
"right": {"type": "string", "minLength": 1}
}
},
"result": {"type": "boolean"},
"outcome_map": {
"type": "object",
"additionalProperties": false,
"required": ["true", "false"],
"properties": {
"true": {"$ref": "#/$defs/outcome"},
"false": {"$ref": "#/$defs/outcome"}
}
}
}
},
"consistencyCheck": {
"type": "object",
"additionalProperties": false,
"required": ["check_id", "question", "fact_ids", "source_ids", "outcome", "rationale", "review_status"],
"properties": {
"check_id": {"$ref": "#/$defs/id"},
"question": {"type": "string", "minLength": 1},
"fact_ids": {"$ref": "#/$defs/idList"},
"source_ids": {"$ref": "#/$defs/idList"},
"outcome": {"enum": ["consistent", "conflict", "verify", "not_applicable"]},
"rationale": {"type": "string", "minLength": 1},
"review_status": {"$ref": "#/$defs/reviewStatus"}
}
},
"authoritySimulationCheck": {
"type": "object",
"additionalProperties": false,
"required": ["check_id", "question", "related_ids", "outcome", "rationale", "review_status"],
"properties": {
"check_id": {"$ref": "#/$defs/id"},
"question": {"type": "string", "minLength": 1},
"related_ids": {"$ref": "#/$defs/idList"},
"outcome": {"enum": ["pass", "fail", "verify", "not_applicable"]},
"rationale": {"type": "string", "minLength": 1},
"review_status": {"$ref": "#/$defs/reviewStatus"}
}
},
"authoritySimulation": {
"type": "object",
"additionalProperties": false,
"required": ["status", "reviewer_perspective", "overall_outcome", "checks"],
"properties": {
"status": {"enum": ["not_run", "proposed", "reviewed", "returned"]},
"reviewer_perspective": {"type": "string"},
"overall_outcome": {"enum": ["not_run", "pass", "fail", "verify"]},
"checks": {"type": "array", "items": {"$ref": "#/$defs/authoritySimulationCheck"}}
}
},
"issue": {
"type": "object",
"additionalProperties": false,
"required": ["issue_id", "category", "severity", "detail", "related_ids", "status", "review_status"],
"properties": {
"issue_id": {"$ref": "#/$defs/id"},
"category": {"enum": ["missing_information", "source_conflict", "fact_conflict", "eligibility", "exclusion", "cost", "document", "form", "narrative", "portal", "other"]},
"severity": {"enum": ["informational", "review_required", "blocking"]},
"detail": {"type": "string", "minLength": 1},
"related_ids": {"$ref": "#/$defs/idList"},
"status": {"enum": ["open", "resolved", "accepted", "superseded"]},
"review_status": {"$ref": "#/$defs/reviewStatus"}
}
}
}
}
SHA-256: 34009ea04a75d93c004cd56c393856e309486151f38b47d87a2fc97607601664