automapper-validation 0.11.0

AHB condition expression parsing, evaluation, and EDIFACT validation
Documentation
{
  "generated_at": "2026-04-22T18:10:21Z",
  "ahb_file": "INVOIC_AHB_1_0b_20260401.xml",
  "format_version": "FV2610",
  "conditions": {
    "2000": {
      "confidence": "high",
      "reasoning": "Cardinality annotation stating the segment group must appear exactly once. This is a structural constraint enforced by the AHB schema itself, not a runtime boolean predicate. Treated equivalently to a Hinweis — always returns True unconditionally.",
      "description_hash": "66c9ffaa",
      "is_external": false
    },
    "56": {
      "confidence": "high",
      "reasoning": "DTM+137 is the message date/time qualifier. Checking >= 2023-01-01 00:00 German local time using string comparison on format 303 (CCYYMMDDHHMM). January 1 is in winter time so local and UTC+1 offset does not affect the CCYYMMDDHHMM comparison at day granularity for this threshold.",
      "description_hash": "2813cc32",
      "is_external": false
    },
    "5": {
      "confidence": "high",
      "reasoning": "NAD+MR has the party qualifier at elements[0][0]. DE3207 (country name code) is at elements[8][0] in the standard EDIFACT NAD structure (3035+C082+C058+C080+C059+3164+3229+3251+3207). Invert has_qualified_value for 'DE' to get '!= DE'.",
      "description_hash": "1b50faaa",
      "is_external": false
    },
    "6": {
      "confidence": "high",
      "reasoning": "NAD+MR has the party qualifier at elements[0][0]. DE3207 (country name code) is at elements[8][0] in the standard EDIFACT NAD structure. Direct has_qualified_value check for 'DE'.",
      "description_hash": "4c5ee8c4",
      "is_external": false
    },
    "90": {
      "confidence": "medium",
      "reasoning": "Der Wert targets the current field value. Uses format_check to prefer ctx.resolved_value (tree-based path) with string comparison on the first 12 characters (CCYYMMDDHHMM) to handle potential timezone suffixes. January 1 is in CET (UTC+1) so local 00:00 is the threshold. Confidence medium because the fallback segment tag 'DTM' and element position 0/1 are assumed from INVOIC context.",
      "description_hash": "3dd2987e",
      "is_external": false
    },
    "527": {
      "confidence": "high",
      "reasoning": "Informational Hinweis annotating that the VAT/tax number to use is the one previously exchanged via PARTIN message. Not a boolean predicate — always applies unconditionally.",
      "description_hash": "e1e2b37e",
      "is_external": false
    },
    "903": {
      "confidence": "high",
      "reasoning": "Format: Möglicher Wert: 1 constrains the current field to exactly the value '1'. Uses ctx.resolved_value for tree-based validation. Falls back to Unknown since the target segment is unspecified in the condition text and a wrong-segment fallback would be worse than Unknown.",
      "description_hash": "ef3b7862",
      "is_external": false
    }
  }
}