{"ok":true,"commandType":"delete-item-package","module":"Stock","mode":"write","summary":"Delete an unreferenced item package or preview early checks; native maintenance2 PASS.","payloadSchema":{"packageCode":"required Package identity","reason":"required Business reason","confirmDelete":"optional Explicit true confirmation required for actual deletion; may be omitted when validateOnly:true","validateOnly":"optional True runs early reference/usage checks without deleting; incomplete preview, not proof of readiness to delete"},"examplePayload":{"packageCode":"PKG-API","reason":"Retire unused package","validateOnly":true},"examples":[],"payloadEnums":{},"requiredPayloadFields":["packageCode","reason"],"conditionalPayloadRules":{},"notes":"Static Item Package contract, not native persistence proof. Parent native connector owns strict field validation: Master/fields map known columns with support checks and readback verification; unknown/unsupported fields must be rejected, never silently ignored. Installed SDK support and Save/readback must be verified separately. Referenced packages are blocked from deletion. Early guards use recorded SoldQty/PurchasedQty/OpeningQty usage and GetPackageTransaction(code,string.Empty); this inquiry is permission-filtered, so an empty result is not proof of no references. Do not rely on the Master UsedQty getter: it throws for a missing column in TSM. Parent SDK IL inspection proves native DeleteData checks 22 tables including SO, PO, QT, ADVQT and consignment before its transaction/write, without inquiry permission filters. There is no reusable read-only helper for those comprehensive checks; actual native Delete performs them. reason is required; confirmDelete:true is required only for actual deletion. validateOnly:true checks without deleting or saving and may omit confirmDelete; preview returns saved:false, deleted:false, referenceCheckComplete:false, readyToDelete:false, nativeDeleteChecksReferences:true. No connector-owned SQL was added. Native maintenance2 PASS: unused package IPT0C160407583AA deleted with absence proof; used package IPT0C160407583AB and SO KHSO2606/0339 preserved after delete refusal. Native absence readback remains required for future deletions. Prefer update-item-package with isActive:false. Successful actual delete returns saved:true, deleted:true, verified:true, validateOnly:false, referenceCheckComplete:true, readyToDelete:false, nativeDeleteChecksReferences:true. readyToDelete stays false because the deletion has already completed; preview also returns verified:false and validateOnly:true.","nativePayload":{"commandType":"delete-item-package","title":"Item Package contract","supported":true,"schemaOnly":true,"required":["packageCode","reason"],"fields":{"packageCode":{"type":"string","description":"Package identity","minLength":1},"reason":{"type":"string","description":"Business reason","minLength":1},"confirmDelete":{"type":"boolean","enum":[true],"description":"Explicit true confirmation required for actual deletion; may be omitted when validateOnly:true"},"validateOnly":{"type":"boolean","description":"True runs early reference/usage checks without deleting; incomplete preview, not proof of readiness to delete"}},"example":{"packageCode":"PKG-API","reason":"Retire unused package","validateOnly":true},"notes":["Static Item Package contract, not native persistence proof. Parent native connector owns strict field validation: Master/fields map known columns with support checks and readback verification; unknown/unsupported fields must be rejected, never silently ignored. Installed SDK support and Save/readback must be verified separately. Referenced packages are blocked from deletion. Early guards use recorded SoldQty/PurchasedQty/OpeningQty usage and GetPackageTransaction(code,string.Empty); this inquiry is permission-filtered, so an empty result is not proof of no references. Do not rely on the Master UsedQty getter: it throws for a missing column in TSM. Parent SDK IL inspection proves native DeleteData checks 22 tables including SO, PO, QT, ADVQT and consignment before its transaction/write, without inquiry permission filters. There is no reusable read-only helper for those comprehensive checks; actual native Delete performs them. reason is required; confirmDelete:true is required only for actual deletion. validateOnly:true checks without deleting or saving and may omit confirmDelete; preview returns saved:false, deleted:false, referenceCheckComplete:false, readyToDelete:false, nativeDeleteChecksReferences:true. No connector-owned SQL was added. Native maintenance2 PASS: unused package IPT0C160407583AA deleted with absence proof; used package IPT0C160407583AB and SO KHSO2606/0339 preserved after delete refusal. Native absence readback remains required for future deletions. Prefer update-item-package with isActive:false. Successful actual delete returns saved:true, deleted:true, verified:true, validateOnly:false, referenceCheckComplete:true, readyToDelete:false, nativeDeleteChecksReferences:true. readyToDelete stays false because the deletion has already completed; preview also returns verified:false and validateOnly:true.","supported indicates local handler schema availability; schemaOnly is deliberate and does not certify all fields, SDK versions or deployed connectors. Native maintenance2 PASS: create/edit/append/component-delete/replace/deactivate/reactivate, duplicate-add rejection, used-package delete refusal and unused-package delete with absence proof. Void stays guarded. Empty tax-code clearing: TSM native save/reload verified, edge2 PASS."]}}