diff --git a/devTools/types/FC/facilities.d.ts b/devTools/types/FC/facilities.d.ts
index 0e884609c141ffce5f35457119301563662d5295..b1c568ea241c5d8048afaf635fa86a60259dcc5d 100644
--- a/devTools/types/FC/facilities.d.ts
+++ b/devTools/types/FC/facilities.d.ts
@@ -39,6 +39,67 @@ declare namespace FC {
 		nodes?: Array<string|HTMLElement|DocumentFragment>;
 	}
 
+	interface IFacilityAssignment {
+		/** The name of the assignment. */
+		position: string;
+		/** The assignment type. */
+		assignment: Assignment;
+		/** Whether the assigned slaves engage in sex with the public. */
+		publicSexUse: boolean;
+		/** Whether fuckdolls can work here. */
+		fuckdollAccepted: boolean;
+		/** Whether slaves assigned here can work at another assignment at the same time. */
+		partTime?: boolean;
+	}
+
+	interface IManagerAssignment {
+		/** The name of the assignment. */
+		position: string;
+		/** The assignment name's abbreviated form, if any. */
+		positionAbbreviation?: string;
+		/** The assignment type. */
+		assignment: Assignment;
+		/** A list of careers that count towards past experience. */
+		careers: string[];
+		/** Which of a slave's manager skills is affected. */
+		skill: string;
+		/** Whether the assigned slaves engage in sex with the public. */
+		publicSexUse: boolean;
+		/** Whether fuckdolls can work here. */
+		fuckdollAccepted: boolean;
+		/** Whether broodmothers can work here. */
+		broodmotherAccepted: boolean;
+		/** If slaves assigned here must be able to walk. */
+		shouldWalk: boolean;
+		/** If slaves assigned here must be able to hold items. */
+		shouldHold: boolean;
+		/** If slaves assigned here must be able to see. */
+		shouldSee: boolean;
+		/** If slaves assigned here must be able to hear. */
+		shouldHear: boolean;
+		/** If slaves assigned here must be able to talk. */
+		shouldTalk: boolean;
+		/** If slaves assigned here must have cognitive function. */
+		shouldThink: boolean;
+		/** The minimum required devotion level to be assigned here. */
+		requiredDevotion: number;
+	}
+
+	interface FacilityFramework {
+		/** The variable name of the facility. */
+		baseName: string;
+		/** The generic form of the facility. */
+		genericName: string|null;
+		/** An object listing all the available positions in the facility. */
+		jobs: Record<string, IFacilityAssignment>;
+		/** The default job in the facility. */
+		defaultJob: string;
+		/** Properties pertaining to the facility's manager. */
+		manager: IManagerAssignment;
+		/** Whether the facility can use FS decorations. */
+		decorated: boolean;
+	}
+
 	namespace Facilities {
 		export type Facility = InstanceType<typeof App.Facilities.Facility>;
 		export type Animal = InstanceType<typeof App.Entity.Animal>;
diff --git a/src/facilities/arcade/arcadeFramework.js b/src/facilities/arcade/arcadeFramework.js
index 4093d972395e50c7181ea436ee24ac4f157c2aff..e1d08b73707c7347e73406ac3f61435396fca612 100644
--- a/src/facilities/arcade/arcadeFramework.js
+++ b/src/facilities/arcade/arcadeFramework.js
@@ -1,3 +1,4 @@
+/** @type {FC.FacilityFramework} */
 App.Data.Facilities.arcade = {
 	baseName: "arcade",
 	genericName: null,
diff --git a/src/facilities/armory/armoryFramework.js b/src/facilities/armory/armoryFramework.js
index a1ed3c9055918920b2043292a3ca990b5942e940..e5dfab7527cd2b97706b41e97d55924fc63469d7 100644
--- a/src/facilities/armory/armoryFramework.js
+++ b/src/facilities/armory/armoryFramework.js
@@ -1,3 +1,4 @@
+/** @type {FC.FacilityFramework} */
 App.Data.Facilities.armory = {
 	baseName: "dojo",
 	genericName: "Armory",
diff --git a/src/facilities/brothel/brothelFramework.js b/src/facilities/brothel/brothelFramework.js
index b50d706ae25df7d2bd508becc0b027976ab51aee..920452717a7e78a2dab7c6a3374d1f4b00c163a4 100644
--- a/src/facilities/brothel/brothelFramework.js
+++ b/src/facilities/brothel/brothelFramework.js
@@ -1,3 +1,4 @@
+/** @type {FC.FacilityFramework} */
 App.Data.Facilities.brothel = {
 	baseName: "brothel",
 	genericName: null,
diff --git a/src/facilities/cellblock/cellblockFramework.js b/src/facilities/cellblock/cellblockFramework.js
index 999da56441c4333d71e8a57be0fdec024505bbe7..f24e87f5034b1d1f962b7c89664250b38b028260 100644
--- a/src/facilities/cellblock/cellblockFramework.js
+++ b/src/facilities/cellblock/cellblockFramework.js
@@ -1,3 +1,4 @@
+/** @type {FC.FacilityFramework} */
 App.Data.Facilities.cellblock = {
 	baseName: "cellblock",
 	genericName: null,
diff --git a/src/facilities/clinic/clinicFramework.js b/src/facilities/clinic/clinicFramework.js
index dbdde301ccfaae7ce7f3ad2f810862a83a48e022..b55c9b8c15db4b681463bc97d155bcdf3ee35f50 100644
--- a/src/facilities/clinic/clinicFramework.js
+++ b/src/facilities/clinic/clinicFramework.js
@@ -1,3 +1,4 @@
+/** @type {FC.FacilityFramework} */
 App.Data.Facilities.clinic = {
 	baseName: "clinic",
 	genericName: null,
diff --git a/src/facilities/club/clubFramework.js b/src/facilities/club/clubFramework.js
index 19bb8d05833876586882ba767e0f60968580b8a6..ac5ae912fe437c4242efe411daeedd2b84302ec3 100644
--- a/src/facilities/club/clubFramework.js
+++ b/src/facilities/club/clubFramework.js
@@ -1,3 +1,4 @@
+/** @type {FC.FacilityFramework} */
 App.Data.Facilities.club = {
 	baseName: "club",
 	genericName: null,
diff --git a/src/facilities/dairy/dairyFramework.js b/src/facilities/dairy/dairyFramework.js
index 3c3b1db0d8054ae929590e721fe46151f87aa6c8..f50004d6d362455064c5e334d3abb730e39a164e 100644
--- a/src/facilities/dairy/dairyFramework.js
+++ b/src/facilities/dairy/dairyFramework.js
@@ -1,3 +1,4 @@
+/** @type {FC.FacilityFramework} */
 App.Data.Facilities.dairy = {
 	baseName: "dairy",
 	genericName: null,
diff --git a/src/facilities/farmyard/farmyardFramework.js b/src/facilities/farmyard/farmyardFramework.js
index 399caad3194f222d414b4d7d0866f8bc75f9375a..5c700f61b4e11719a24b98b2ee10df0a4fcb9e41 100644
--- a/src/facilities/farmyard/farmyardFramework.js
+++ b/src/facilities/farmyard/farmyardFramework.js
@@ -1,3 +1,4 @@
+/** @type {FC.FacilityFramework} */
 App.Data.Facilities.farmyard = {
 	baseName: "farmyard",
 	genericName: null,
diff --git a/src/facilities/headGirlSuite/headGirlSuiteFramework.js b/src/facilities/headGirlSuite/headGirlSuiteFramework.js
index ae9d465fd8b0f4adcd058cbb7f45e03c076500d2..3010a1ccd761a2e7a03b6bfd0bef60f0a2d7c460 100644
--- a/src/facilities/headGirlSuite/headGirlSuiteFramework.js
+++ b/src/facilities/headGirlSuite/headGirlSuiteFramework.js
@@ -1,3 +1,4 @@
+/** @type {FC.FacilityFramework} */
 App.Data.Facilities.headGirlSuite = {
 	baseName: "HGSuite",
 	genericName: null,
diff --git a/src/facilities/incubator/incubatorFramework.js b/src/facilities/incubator/incubatorFramework.js
index dce45c6cd6c235338f01d2d59d97953f0ded7dcb..126f3d74648f907b54e098bc2667d716f5affa16 100644
--- a/src/facilities/incubator/incubatorFramework.js
+++ b/src/facilities/incubator/incubatorFramework.js
@@ -1,3 +1,4 @@
+/** @type {FC.FacilityFramework} */
 App.Data.Facilities.incubator = {
 	baseName: "incubator",
 	genericName: null,
diff --git a/src/facilities/masterSuite/masterSuiteFramework.js b/src/facilities/masterSuite/masterSuiteFramework.js
index 83e67a773242e968831fc29ed8c173bd852b533e..67e0e8537cd36fe13ed65449b056f1bc654860a1 100644
--- a/src/facilities/masterSuite/masterSuiteFramework.js
+++ b/src/facilities/masterSuite/masterSuiteFramework.js
@@ -1,3 +1,4 @@
+/** @type {FC.FacilityFramework} */
 App.Data.Facilities.masterSuite = {
 	baseName: "masterSuite",
 	genericName: "Master Suite",
diff --git a/src/facilities/nursery/nurseryFramework.js b/src/facilities/nursery/nurseryFramework.js
index 94597390d5e89097835c89ea7548d6fcbb570ac2..68e36ecc27fe40c4e0531e768916fa8c52253d2f 100644
--- a/src/facilities/nursery/nurseryFramework.js
+++ b/src/facilities/nursery/nurseryFramework.js
@@ -1,3 +1,4 @@
+/** @type {FC.FacilityFramework} */
 App.Data.Facilities.nursery = {
 	baseName: "nursery",
 	genericName: null,
diff --git a/src/facilities/penthouse/penthouseFramework.js b/src/facilities/penthouse/penthouseFramework.js
index ee9be3de8a40e2c19d9e6dbcf2bc800c4f822241..f90b7bf650939e51ad0cdbd93a13f92b318a3519 100644
--- a/src/facilities/penthouse/penthouseFramework.js
+++ b/src/facilities/penthouse/penthouseFramework.js
@@ -1,3 +1,4 @@
+/** @type {FC.FacilityFramework} */
 App.Data.Facilities.penthouse = {
 	baseName: "penthouse",
 	genericName: "Penthouse",
diff --git a/src/facilities/pit/pitFramework.js b/src/facilities/pit/pitFramework.js
index ffb7a1954f45fc8c5a9222b5b663b002b2b4d967..a12fec5369e9f943ef387a3473d7e06a9d9264a4 100644
--- a/src/facilities/pit/pitFramework.js
+++ b/src/facilities/pit/pitFramework.js
@@ -1,3 +1,4 @@
+/** @type {FC.FacilityFramework} */
 App.Data.Facilities.pit = {
 	baseName: "pit",
 	genericName: null,
diff --git a/src/facilities/schoolroom/schoolroomFramework.js b/src/facilities/schoolroom/schoolroomFramework.js
index eee251f1307d71a2b5f3941312e86cf3ce33ff1e..f0f1ec16173e5f227dbdcb90c8abfd11b0a3adae 100644
--- a/src/facilities/schoolroom/schoolroomFramework.js
+++ b/src/facilities/schoolroom/schoolroomFramework.js
@@ -1,3 +1,4 @@
+/** @type {FC.FacilityFramework} */
 App.Data.Facilities.schoolroom = {
 	baseName: "schoolroom",
 	genericName: null,
diff --git a/src/facilities/servantsQuarters/servantsQuartersFramework.js b/src/facilities/servantsQuarters/servantsQuartersFramework.js
index 948cfa531c7c424e0d0ef737760e5ceb28e8b969..54a43e534ab9f2154ce25e320dd72c586c9dcc0b 100644
--- a/src/facilities/servantsQuarters/servantsQuartersFramework.js
+++ b/src/facilities/servantsQuarters/servantsQuartersFramework.js
@@ -1,3 +1,4 @@
+/** @type {FC.FacilityFramework} */
 App.Data.Facilities.servantsQuarters = {
 	baseName: "servantsQuarters",
 	genericName: "Servants' Quarters",
diff --git a/src/facilities/spa/spaFramework.js b/src/facilities/spa/spaFramework.js
index 95012872750b1a9f1bd59dcdcf13595504f43099..0310f8141b693ec3b1c9a7f22b76ce301e14dac0 100644
--- a/src/facilities/spa/spaFramework.js
+++ b/src/facilities/spa/spaFramework.js
@@ -1,3 +1,4 @@
+/** @type {FC.FacilityFramework} */
 App.Data.Facilities.spa = {
 	baseName: "spa",
 	genericName: null,