=== META ===
{
  "id": "GTPX-VALIDATION-MODEL",
  "title": "GTPX Validation Model",
  "version": "0.1.0",
  "status": "draft",
  "updated": "2026-04-25",
  "authority": "07_validation/GTPX-VALIDATION-MODEL.gtpx",
  "type": "validation_model",
  "project": "GTPX",
  "depends_on": [
    "03_language/GTPX-SYNTAX.gtpx",
    "03_language/GTPX-SEMANTICS.gtpx",
    "04_contract/GTPX-CONTRACT-CORE.gtpx",
    "06_protocol/GTPX-REQUEST-MODEL.gtpx",
    "06_protocol/GTPX-RESPONSE-MODEL.gtpx"
  ]
}

=== DATA ===
{
  "purpose": "Defines how GTPX validates requests and responses before execution and acceptance.",

  "validation_policy": {
    "validation_is_mandatory": true,
    "validation_precedes_execution": true,
    "failed_validation_blocks_execution": true,
    "partial_validation_is_forbidden": true
  },

  "validation_layers": [
    "structure_validation",
    "contract_validation",
    "completeness_validation",
    "source_validation",
    "hash_validation"
  ],

  "layer_definitions": {
    "structure_validation": "Checks if the message follows defined syntax and structure.",
    "contract_validation": "Checks if the request respects the contract constraints.",
    "completeness_validation": "Checks if all required data is present.",
    "source_validation": "Checks if sources are declared and verified.",
    "hash_validation": "Checks if payload integrity is valid."
  },

  "validation_outcomes": [
    "valid",
    "invalid",
    "blocked"
  ],

  "outcome_definitions": {
    "valid": "All validation layers passed.",
    "invalid": "At least one validation layer failed.",
    "blocked": "Validation cannot proceed due to missing data."
  }
}

=== RULES ===
{
  "all_validation_layers_must_be_executed": true,
  "validation_result_must_be_explicit": true,
  "invalid_or_blocked_must_stop_execution": true,
  "validation_must_be_traceable": true
}

=== STATUS ===
{
  "state": "draft",
  "open_questions": [
    "Confirm if validation order must be strictly enforced or parallelizable.",
    "Confirm if validation results must include detailed error mapping."
  ],
  "next_step": "Create and populate 07_validation/GTPX-ERROR-MODEL.gtpx."
}