diff --git a/PackageTemplate/uninstall.xml b/PackageTemplate/uninstall.xml
new file mode 100644
index 0000000..3044649
--- /dev/null
+++ b/PackageTemplate/uninstall.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PackageTemplate/uninstall/02-01-2147483507 PLSLWebServiceOperationType_uninstall.del b/PackageTemplate/uninstall/02-01-2147483507 PLSLWebServiceOperationType_uninstall.del
new file mode 100644
index 0000000..746bb9b
--- /dev/null
+++ b/PackageTemplate/uninstall/02-01-2147483507 PLSLWebServiceOperationType_uninstall.del
@@ -0,0 +1,24 @@
+
+
+
+ b3193051-6fe6-cdd2-7d76-08da9bbec2b67660e907-769c-e711-a182-f079595b3ec7
+ 04d0755f-27dd-c4ac-2785-08dac16666617660e907-769c-e711-a182-f079595b3ec7
+ f977a1d8-f21c-c1bc-4ea0-08dac09d3c997660e907-769c-e711-a182-f079595b3ec7
+ 6cec89ab-b843-cd6b-d6b5-08db99ad32ee7660e907-769c-e711-a182-f079595b3ec7
+ ef14b892-628c-c1c1-801f-08db99ad32e97660e907-769c-e711-a182-f079595b3ec7
+ 06747fe1-8113-c51f-4969-08db99ad32f17660e907-769c-e711-a182-f079595b3ec7
+ 8e1a4dc1-4b8d-4f97-9f58-101d95a004057660e907-769c-e711-a182-f079595b3ec7
+ 750c8dc4-ada0-c1b0-c877-08da9bbec2e37660e907-769c-e711-a182-f079595b3ec7
+ 94d0317f-a8db-caf0-a353-08da9bbec2dc7660e907-769c-e711-a182-f079595b3ec7
+ 163e04c2-8b5c-c0e6-0535-08da9bbec2df7660e907-769c-e711-a182-f079595b3ec7
+ 8e1a4dc1-4b8d-4f97-9f58-101d95a004017660e907-769c-e711-a182-f079595b3ec7
+ 99eef84e-a303-c248-36c5-08ded882fc6c7660e907-769c-e711-a182-f079595b3ec7
+ 290c8d51-b8d4-ce74-50c5-08ded882fc727660e907-769c-e711-a182-f079595b3ec7
+ 8e1a4dc1-4b8d-4f97-9f58-101d95a004037660e907-769c-e711-a182-f079595b3ec7
+ 8e1a4dc1-4b8d-4f97-9f58-101d95a004027660e907-769c-e711-a182-f079595b3ec7
+ c5dd653a-54d8-c430-c9df-08ded882fc797660e907-769c-e711-a182-f079595b3ec7
+ 8e1a4dc1-4b8d-4f97-9f58-101d95a004047660e907-769c-e711-a182-f079595b3ec7
+ 9df9d16f-1a00-cc19-1727-08dac09d3c087660e907-769c-e711-a182-f079595b3ec7
+ 14366b3c-b79d-cfe3-ded3-08da9bbec2d77660e907-769c-e711-a182-f079595b3ec7
+
+
diff --git a/PackageTemplate/uninstall/02-01-2147483517 PDRActionType_uninstall.del b/PackageTemplate/uninstall/02-01-2147483517 PDRActionType_uninstall.del
new file mode 100644
index 0000000..ab94b50
--- /dev/null
+++ b/PackageTemplate/uninstall/02-01-2147483517 PDRActionType_uninstall.del
@@ -0,0 +1,8 @@
+
+
+
+ 4dde7c2d-cd60-ed11-3d85-00155d010a040fa6b97f-c362-e511-7882-bc5ff41a70c0
+ 4909f7dc-cc60-ed11-3d85-00155d010a040fa6b97f-c362-e511-7882-bc5ff41a70c0
+ 7e1ec8aa-ca0b-ccbc-8788-08dac19c50720fa6b97f-c362-e511-7882-bc5ff41a70c0
+
+
diff --git a/PackageTemplate/uninstall/02-01-2147483527 PDRDataQueryType_uninstall.del b/PackageTemplate/uninstall/02-01-2147483527 PDRDataQueryType_uninstall.del
new file mode 100644
index 0000000..903cc59
--- /dev/null
+++ b/PackageTemplate/uninstall/02-01-2147483527 PDRDataQueryType_uninstall.del
@@ -0,0 +1,7 @@
+
+
+
+ e05d0e51-2842-c9f8-702a-08dad14d2725e35932d0-de1f-e511-9282-60d819b5ce8f
+ c2d85fab-6d02-f111-1d86-00155d320605e35932d0-de1f-e511-9282-60d819b5ce8f
+
+
diff --git a/PackageTemplate/uninstall/02-01-2147483537 PDRNavigationItemType_uninstall.del b/PackageTemplate/uninstall/02-01-2147483537 PDRNavigationItemType_uninstall.del
new file mode 100644
index 0000000..040100e
--- /dev/null
+++ b/PackageTemplate/uninstall/02-01-2147483537 PDRNavigationItemType_uninstall.del
@@ -0,0 +1,6 @@
+
+
+
+ 9de10416-2ba7-c5c7-2568-08dad14d28327480d43f-a42f-e511-14a9-00248cfe5192
+
+
diff --git a/PackageTemplate/uninstall/02-01-2147483547 SPSQuickCallType_uninstall.del b/PackageTemplate/uninstall/02-01-2147483547 SPSQuickCallType_uninstall.del
new file mode 100644
index 0000000..e822cf6
--- /dev/null
+++ b/PackageTemplate/uninstall/02-01-2147483547 SPSQuickCallType_uninstall.del
@@ -0,0 +1,6 @@
+
+
+
+ 535345b3-52e7-cfe7-5366-08dc32b8babe95b83c0d-e703-4a17-997b-abdb91cda1a2
+
+
diff --git a/PackageTemplate/uninstall/02-01-2147483557 SPSSecurityTypeRole_uninstall.del b/PackageTemplate/uninstall/02-01-2147483557 SPSSecurityTypeRole_uninstall.del
new file mode 100644
index 0000000..f586863
--- /dev/null
+++ b/PackageTemplate/uninstall/02-01-2147483557 SPSSecurityTypeRole_uninstall.del
@@ -0,0 +1,6 @@
+
+
+
+ c7256b64-a01b-cab5-22af-08dc6dac0948f64d3d1d-e2ab-4a43-a453-52caff9b0ccd
+
+
diff --git a/PackageTemplate/uninstall/02-01-2147483567 PLSLServiceTypeWebAPI_uninstall.del b/PackageTemplate/uninstall/02-01-2147483567 PLSLServiceTypeWebAPI_uninstall.del
new file mode 100644
index 0000000..b3a1b03
--- /dev/null
+++ b/PackageTemplate/uninstall/02-01-2147483567 PLSLServiceTypeWebAPI_uninstall.del
@@ -0,0 +1,6 @@
+
+
+
+ bf852c75-cc05-cce1-2592-08da956d1e03a861b74e-5621-e511-d09e-00248cfe5192
+
+
diff --git a/PackageTemplate/uninstall/02-01-2147483598 PDRLocalizationStringClass_uninstall.post b/PackageTemplate/uninstall/02-01-2147483598 PDRLocalizationStringClass_uninstall.post
new file mode 100644
index 0000000..9381e29
--- /dev/null
+++ b/PackageTemplate/uninstall/02-01-2147483598 PDRLocalizationStringClass_uninstall.post
@@ -0,0 +1,2 @@
+DELETE FROM [PDRLocalizationStringClass-CI] WHERE OWNER = 'b14b7013-493b-8684-5d28-6a30fdd7a86b'
+DELETE FROM [PDRLocalizationStringClass] WHERE ID = 'b14b7013-493b-8684-5d28-6a30fdd7a86b'
diff --git a/PackageTemplate/uninstall/02-01-2147483647 UnregisterInstallScripts_Sobu.post b/PackageTemplate/uninstall/02-01-2147483647 UnregisterInstallScripts_Sobu.post
new file mode 100644
index 0000000..bffad5c
--- /dev/null
+++ b/PackageTemplate/uninstall/02-01-2147483647 UnregisterInstallScripts_Sobu.post
@@ -0,0 +1,46 @@
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 10 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_0010_Navigation_C4IT_Addon_Administration.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 20 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_0020_Navigation_C4IT_Addon_Assets.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 30 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_0030_Navigation_C4IT_Addon_ServiceDesk.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 40 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_0040_Navigation_C4IT_Addon_ServiceCatalog.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 50 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_02-01-0050 PLSLServiceTypeWebAPI.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 60 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_getdirectlinkcreateticket.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 70 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_getdirectlinkf4sd.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 80 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_getlog.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 90 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_getticketdetails.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 100 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_gettickethistory.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 110 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_getticketlist.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 120 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_isalive.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 130 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_setdebugmode.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 140 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_getmyrolememberships.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 150 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_getpickup.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 160 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_getrolememberships.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 161 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_getticketoverviewcounts.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 162 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_getticketoverviewcountsbyroles.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 163 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_getticketoverviewrelations.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 164 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_getticketlistforuser.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 165 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_getticketoverviewcountsforuser.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 166 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_getticketoverviewcountsbyrolesforuser.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 167 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_getticketoverviewrelationsforuser.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 168 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_getrolemembershipsforuser.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 170 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_02-01-0150 PDRActionType.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 180 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_02-01-0160 PDRActionType.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 190 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_02-01-0170 PDRActionType.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 200 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_02-01-0180 PDRLocalizationStringClass.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 210 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_SPSActivityIncidentPickupEntry.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 220 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_SPSJournalEntryPickupType.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 250 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_02-01-0080 C4IT_F4SDConfigurationType.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 260 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_C4IT F4SD Cockpit Users.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 270 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_02-01-0030 PDRDataQueryType.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 280 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_C4IT - F4SD - Quick Calls.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 290 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_02-01-0040 PDRContentWidgetTemplateType_C4IT F4SD Configuration Content Widget Liste.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 300 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_02-01-0040 PDRContentWidgetTypeList_C4IT F4SD Configuration Content Widget Liste.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 310 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_02-01-0070 PDRNavigationItemType.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 320 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_02-01-0050 PDRContentWidgetTemplateType_C4IT F4SD Configuration Content Widget Schnellansicht.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 330 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_02-01-0050 PDRContentWidgetTemplateViewType_C4IT F4SD Configuration Content Widget Schnellansicht.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 340 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_02-01-0050 PDRContentWidgetTypeObjectDetails_C4IT F4SD Configuration Content Widget Schnellansicht.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 350 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_F4SD Incident Quickcall.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 360 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_Fragments.GetList_Audience.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 370 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_Objects.GetObject_Audience.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 380 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_Objects.UpdateObject_Audience.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 390 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_Ticket.Create_Audience.dat'
+/*1.4*/DELETE FROM SchemaScripts WHERE Major = 2 AND Minor = 1 AND Build = 400 AND Type = 'dat' AND Name = '6673a25d-33d6-4072-91d9-abed4be1a966_Ticket.Transform_Audience.dat'
diff --git a/PackageTemplate/uninstall_data.xml b/PackageTemplate/uninstall_data.xml
new file mode 100644
index 0000000..47c8530
--- /dev/null
+++ b/PackageTemplate/uninstall_data.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/docs/matrix42-26-1-extension-migration.md b/docs/matrix42-26-1-extension-migration.md
index f00dbef..c457c85 100644
--- a/docs/matrix42-26-1-extension-migration.md
+++ b/docs/matrix42-26-1-extension-migration.md
@@ -1,8 +1,8 @@
# Matrix42 26.1 Legacy Extension Migration
-Diese Notizen dokumentieren die bisherigen Learnings aus der Migration einer alten Matrix42 Extension inklusive Custom Web Service auf eine Matrix42 26.1 Sandboxed Extension.
-
-Die parallele Pflege der Legacy- und Sandbox-Varianten sowie der manuelle TFS-Rueckweg sind in `docs/legacy-sandbox-development.md` beschrieben.
+Diese Notizen dokumentieren die bisherigen Learnings aus der Migration einer alten Matrix42 Extension inklusive Custom Web Service auf eine Matrix42 26.1 Sandboxed Extension.
+
+Die parallele Pflege der Legacy- und Sandbox-Varianten sowie der manuelle TFS-Rueckweg sind in `docs/legacy-sandbox-development.md` beschrieben.
Die Anleitung ist bewusst als wiederverwendbare Checkliste fuer weitere Legacy-Pakete formuliert. Sie trennt zwischen belastbaren Ergebnissen, verworfenen Zwischenansaetzen und Punkten, die bei jeder Extension erneut geprueft werden muessen.
@@ -101,8 +101,23 @@ Das neue Paket basiert auf einem `PackageTemplate` mit:
- `package.json`
- `install.xml`
- `install/...`
+- `uninstall.xml`
+- `uninstall/...`
+- `uninstall_data.xml`
- `BasePackage/Assemblies` als Build-Ziel fuer Assemblies
+### Deinstallation
+
+Eine Sandboxed Extension unterstuetzt die Matrix42-Paketdeinstallation nur, wenn das Paket eigene Uninstall-Skripte mitliefert. Fuer dieses Paket gilt:
+
+- `uninstall.xml` entfernt den WebAPI-Service, alle eigenen Webservice-Operationen, Actions, Data Queries, die F4SD-Navigation, den F4SD-Quick-Call, die F4SD-Rolle und die eigene Lokalisierung.
+- Die vier globalen C4IT-Navigationseintraege werden nicht entfernt, weil sie von weiteren C4IT-Paketen gemeinsam verwendet werden koennen.
+- Schema, Pickup-Werte, Konfigurationseintrag, Dataset-Views und Previews bleiben als Konfigurationsdaten bestehen. Deshalb ist `uninstall_data.xml` absichtlich leer.
+- Der abschliessende Post-Schritt entfernt die `dat`-Eintraege dieses Pakets aus `SchemaScripts`, damit eine spaetere Neuinstallation die Installationsskripte erneut ausfuehren kann.
+- Jede `.del`-Datei verwendet nur eine aus dem Installationsobjekt oder einem Matrix42-Herstellerpaket verifizierte Kombination aus `ObjectId` und `TypeId`. Typ-IDs duerfen nicht geraten werden.
+
+Beim Hinzufuegen eines paket-eigenen Objekts muss immer geprueft werden, ob auch `uninstall.xml`, eine passende `.del`-Datei und `UnregisterInstallScripts_Sobu.post` erweitert werden muessen.
+
Beim Portieren eines Legacy-Pakets:
1. Altes Paket entpacken.