{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://api.kamsoft.pl/schemas/canonical-eod/PostingInstructionLine.schema.json",
  "title": "PostingInstructionLine",
  "description": "Pozycja instrukcji ksiegowania zgodna semantycznie z DocumentPosition (accounting-item, vat-summary).",
  "version": "2.0.0-draft",
  "type": "object",
  "properties": {
    "positionNo": {
      "type": "integer",
      "minimum": 1,
      "description": "Numer pozycji (od 1)."
    },
    "code": {
      "$ref": "CodeableConcept.schema.json",
      "description": "Typ pozycji (np. accounting-item, vat-summary)."
    },
    "value": {
      "type": "array",
      "items": {
        "$ref": "ValueItem.schema.json"
      },
      "description": "Lista wartości pozycji. Każdy element (ValueItem) niesie opcjonalny type oraz dokładnie jeden wariant: quantity, money, string, integer, boolean, codeableConcept lub reference."
    },
    "allocation": {
      "$ref": "AllocationItem.schema.json",
      "description": "Alokacja pozycji."
    },
    "purchaseVatDeduction": {
      "$ref": "CodeableConcept.schema.json",
      "description": "Tylko vat-summary: typ odliczenia VAT zakupu - §7.3."
    },
    "vatRate": {
      "$ref": "CodeableConcept.schema.json",
      "description": "Tylko vat-summary: stawka VAT (https://api-erp.kamsoft.pl/ns/vat-rate)."
    },
    "valueString": {
      "type": "string",
      "description": "Wariant 3 (migracja): kody alokacji lub @symbol nosnika kosztow (opcjonalnie z wagami)."
    },
    "accountingVariant": {
      "$ref": "Reference.schema.json",
      "description": "Wariant dekretacji na poziomie pozycji."
    }
  }
}