{
  "example_id": "manufacturing--tooling-service-prepayments",
  "ledger_model": "deposit",
  "entry_parameter_rules": {
    "tooling_service_prepayments_fund": {
      "positive_integer_parameters": ["amount"]
    },
    "tooling_service_prepayments_reserve": {
      "positive_integer_parameters": ["amount"]
    },
    "tooling_service_prepayments_release": {
      "positive_integer_parameters": ["amount"]
    },
    "tooling_service_prepayments_complete": {
      "positive_integer_parameters": ["amount"]
    },
    "tooling_service_prepayments_credit_service": {
      "positive_integer_parameters": ["amount"]
    },
    "tooling_service_prepayments_reserve_refund": {
      "positive_integer_parameters": ["amount"]
    },
    "tooling_service_prepayments_refund_settled": {
      "positive_integer_parameters": ["amount"]
    },
    "tooling_service_prepayments_refund_failed": {
      "positive_integer_parameters": ["amount"]
    }
  },
  "application_obligations": [
    "Authenticate and authorize every source, case and payee; bind them to one confirmed tenant and test ledger.",
    "Use opaque identifiers; never put patient, claimant or other sensitive details in account paths.",
    "Enforce positive/nonnegative integer rules before posting; the schema alone does not reject every negative parameter.",
    "Keep one immutable command record and deterministic idempotency key per business operation; reject key reuse with changed payload.",
    "Match callbacks to the exact case, source, payee, reservation and provider sub-operation; a balance condition is not identity authorization.",
    "Validate accepted service, compensation, refund and fee amounts against domain records; terminal outcomes must not be reopened.",
    "For partial outcomes, store each exact confirmed external sub-operation and ensure its amount is consumed at most once.",
    "Persist intent/outbox before effects; unknown provider outcome stays reserved until reconciled. Never release funds merely because a request timed out.",
    "Use only confirmed incoming cash for fund; record outgoing cash only after confirmed settlement.",
    "Reconcile the manually modeled cash account to external payment records. These schemas have no linked-account reconciliation integration."
  ],
  "domain_trigger": "A buyer prepays a defined tooling service milestone",
  "domain_boundary": "Tooling ownership and depreciation are not modeled"
}
