Bläddra i källkod

Merge branch 'nicaea' into types-linting

Leszek Wiesner 4 år sedan
förälder
incheckning
d8d7a46cc4
81 ändrade filer med 15858 tillägg och 1054 borttagningar
  1. 766 0
      devops/vstore/classes.json
  2. 12694 0
      devops/vstore/entities.json
  3. 1 1
      node/src/chain_spec.rs
  4. 1 1
      package.json
  5. 8 1
      pioneer/packages/app-js/src/Playground.tsx
  6. 2 2
      pioneer/packages/joy-election/src/Applicant.tsx
  7. 2 2
      pioneer/packages/joy-election/src/ApplyForm.tsx
  8. 206 85
      pioneer/packages/joy-proposals/src/Proposal/Body.tsx
  9. 2 12
      pioneer/packages/joy-proposals/src/Proposal/ChooseProposalType.tsx
  10. 5 3
      pioneer/packages/joy-proposals/src/Proposal/Details.tsx
  11. 1 2
      pioneer/packages/joy-proposals/src/Proposal/ProposalTypePreview.tsx
  12. 10 5
      pioneer/packages/joy-proposals/src/forms/AddWorkingGroupOpeningForm.tsx
  13. 118 0
      pioneer/packages/joy-proposals/src/forms/BeginReviewLeaderApplicationsForm.tsx
  14. 102 0
      pioneer/packages/joy-proposals/src/forms/DecreaseWorkingGroupLeadStakeForm.tsx
  15. 0 88
      pioneer/packages/joy-proposals/src/forms/EvictStorageProviderForm.tsx
  16. 232 0
      pioneer/packages/joy-proposals/src/forms/FillWorkingGroupLeaderOpeningForm.tsx
  17. 82 11
      pioneer/packages/joy-proposals/src/forms/FormFields.tsx
  18. 5 6
      pioneer/packages/joy-proposals/src/forms/GenericProposalForm.tsx
  19. 47 14
      pioneer/packages/joy-proposals/src/forms/GenericWorkingGroupProposalForm.tsx
  20. 2 2
      pioneer/packages/joy-proposals/src/forms/MintCapacityForm.tsx
  21. 2 2
      pioneer/packages/joy-proposals/src/forms/RuntimeUpgradeForm.tsx
  22. 4 3
      pioneer/packages/joy-proposals/src/forms/SetContentWorkingGroupLeadForm.tsx
  23. 2 9
      pioneer/packages/joy-proposals/src/forms/SetCouncilParamsForm.tsx
  24. 3 3
      pioneer/packages/joy-proposals/src/forms/SetMaxValidatorCountForm.tsx
  25. 0 256
      pioneer/packages/joy-proposals/src/forms/SetStorageRoleParamsForm.tsx
  26. 93 0
      pioneer/packages/joy-proposals/src/forms/SetWorkingGroupLeadRewardForm.tsx
  27. 86 0
      pioneer/packages/joy-proposals/src/forms/SetWorkingGroupMintCapacityForm.tsx
  28. 2 2
      pioneer/packages/joy-proposals/src/forms/SignalForm.tsx
  29. 101 0
      pioneer/packages/joy-proposals/src/forms/SlashWorkingGroupLeadStakeForm.tsx
  30. 2 3
      pioneer/packages/joy-proposals/src/forms/SpendingProposalForm.tsx
  31. 125 0
      pioneer/packages/joy-proposals/src/forms/TerminateWorkingGroupLeaderForm.tsx
  32. 4 4
      pioneer/packages/joy-proposals/src/forms/errorHandling.ts
  33. 7 2
      pioneer/packages/joy-proposals/src/forms/index.ts
  34. 25 5
      pioneer/packages/joy-proposals/src/index.tsx
  35. 0 6
      pioneer/packages/joy-proposals/src/stories/ProposalForms.stories.tsx
  36. 3 3
      pioneer/packages/joy-proposals/src/stories/data/ProposalTypesInfo.mock.ts
  37. 163 185
      pioneer/packages/joy-proposals/src/validationSchema.ts
  38. 19 20
      pioneer/packages/joy-roles/src/classifiers.ts
  39. 4 0
      pioneer/packages/joy-roles/src/tabs/MyRoles.tsx
  40. 18 8
      pioneer/packages/joy-utils/src/MemberProfilePreview.tsx
  41. 99 14
      pioneer/packages/joy-utils/src/consts/proposals.ts
  42. 2 2
      pioneer/packages/joy-utils/src/consts/workingGroups.ts
  43. 22 0
      pioneer/packages/joy-utils/src/functions/format.ts
  44. 3 3
      pioneer/packages/joy-utils/src/index.ts
  45. 102 0
      pioneer/packages/joy-utils/src/react/components/working-groups/ApplicationDetails.tsx
  46. 56 0
      pioneer/packages/joy-utils/src/react/components/working-groups/LeadInfo.tsx
  47. 22 3
      pioneer/packages/joy-utils/src/react/hooks/usePromise.tsx
  48. 12 0
      pioneer/packages/joy-utils/src/transport/base.ts
  49. 8 9
      pioneer/packages/joy-utils/src/transport/proposals.ts
  50. 140 15
      pioneer/packages/joy-utils/src/transport/workingGroups.ts
  51. 10 2
      pioneer/packages/joy-utils/src/types/proposals.ts
  52. 29 2
      pioneer/packages/joy-utils/src/types/workingGroups.ts
  53. 1 0
      storage-node/.prettierignore
  54. 3 4
      storage-node/.travis.yml
  55. 70 70
      storage-node/LICENSE.md
  56. 31 14
      storage-node/README.md
  57. 10 10
      storage-node/docs/json-signing.md
  58. 1 1
      storage-node/package.json
  59. 1 1
      storage-node/packages/cli/README.md
  60. 6 1
      storage-node/packages/cli/src/cli.ts
  61. 129 38
      storage-node/packages/cli/src/commands/dev.ts
  62. 1 3
      storage-node/packages/cli/tsconfig.json
  63. 6 13
      storage-node/packages/colossus/README.md
  64. 1 1
      storage-node/packages/colossus/api-base.yml
  65. 12 6
      storage-node/packages/colossus/bin/cli.js
  66. 10 9
      storage-node/packages/discovery/README.md
  67. 0 2
      storage-node/packages/helios/README.md
  68. 1 2
      storage-node/packages/runtime-api/README.md
  69. 1 1
      storage-node/packages/runtime-api/index.js
  70. 6 1
      storage-node/packages/runtime-api/test/data/edwards.json
  71. 6 1
      storage-node/packages/runtime-api/test/data/edwards_unlocked.json
  72. 6 1
      storage-node/packages/runtime-api/test/data/schnorr.json
  73. 5 6
      storage-node/packages/util/README.md
  74. 2 2
      storage-node/scripts/compose/devchain-and-ipfs-node/docker-compose.yaml
  75. 4 3
      storage-node/scripts/run-dev-instance.sh
  76. 3 6
      storage-node/tsconfig.json
  77. 8 1
      types/src/common.ts
  78. 2 2
      types/src/council/index.ts
  79. 14 25
      types/src/hiring/index.ts
  80. 51 32
      types/src/index.ts
  81. 13 2
      types/src/working-group/index.ts

+ 766 - 0
devops/vstore/classes.json

@@ -0,0 +1,766 @@
+[
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "createClass",
+		"args": [
+			"0x4d65646961204f626a656374",
+			"0x436c61737320666f72207265736f6c76696e67206120636f6e74656e7420656e7469747920746f20616e2061637475616c206d656469612066696c65206f72206c696e6b2e",
+			{
+				"entity_permissions": { "update": [0, 1, 2], "maintainer_has_all_permissions": true },
+				"entities_can_be_created": true,
+				"add_schemas": [0],
+				"create_entities": [0, 1, 2],
+				"reference_constraint": { "NoConstraint": null },
+				"admins": [0],
+				"last_permissions_update": 0
+			}
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "createClass",
+		"args": [
+			"0x4c616e6775616765",
+			"0x436c61737320666f722073657474696e67206c616e67756167652e",
+			{
+				"entity_permissions": { "update": [0], "maintainer_has_all_permissions": true },
+				"entities_can_be_created": true,
+				"add_schemas": [0],
+				"create_entities": [0],
+				"reference_constraint": { "NoConstraint": null },
+				"admins": [0],
+				"last_permissions_update": 0
+			}
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "createClass",
+		"args": [
+			"0x436f6e74656e74204c6963656e7365",
+			"0x436c61737320666f722073706563696679696e6720746865206c6963656e736520756e64657220776869636820636f6e74656e74206973207075626c69736865642e",
+			{
+				"entity_permissions": { "update": [0], "maintainer_has_all_permissions": true },
+				"entities_can_be_created": true,
+				"add_schemas": [0],
+				"create_entities": [0],
+				"reference_constraint": { "NoConstraint": null },
+				"admins": [0],
+				"last_permissions_update": 0
+			}
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "createClass",
+		"args": [
+			"0x5075626c69636174696f6e20537461747573",
+			"0x436c61737320666f722073657474696e6720746865207075626c69636174696f6e20737461747573206f66206120636f6e74656e7420656e746974792e",
+			{
+				"entity_permissions": { "update": [0], "maintainer_has_all_permissions": true },
+				"entities_can_be_created": true,
+				"add_schemas": [0],
+				"create_entities": [0],
+				"reference_constraint": { "NoConstraint": null },
+				"admins": [0],
+				"last_permissions_update": 0
+			}
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "createClass",
+		"args": [
+			"0x4375726174696f6e20537461747573",
+			"0x436c61737320666f722063757261746f727320746f2073657420746865207075626c69636174696f6e20737461747573206f66206120636f6e74656e7420656e746974792e",
+			{
+				"entity_permissions": { "update": [0], "maintainer_has_all_permissions": true },
+				"entities_can_be_created": true,
+				"add_schemas": [0],
+				"create_entities": [0],
+				"reference_constraint": { "NoConstraint": null },
+				"admins": [0],
+				"last_permissions_update": 0
+			}
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "createClass",
+		"args": [
+			"0x466561747572656420436f6e74656e74",
+			"0x436c61737320666f722073657474696e6720666561747572656420636f6e74656e74206f6e2074686520706c6174666f726d2e",
+			{
+				"entity_permissions": { "update": [0], "maintainer_has_all_permissions": true },
+				"entities_can_be_created": true,
+				"add_schemas": [0],
+				"create_entities": [0],
+				"reference_constraint": { "NoConstraint": null },
+				"admins": [0],
+				"last_permissions_update": 0
+			}
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "createClass",
+		"args": [
+			"0x566964656f",
+			"0x436c61737320666f722067656e6572616c20766964656f73206e6f742061737369676e61626c6520746f2061206d6f726520737065636966696320766964656f20636f6e74656e7420747970652e",
+			{
+				"entity_permissions": { "update": [0, 1, 2], "maintainer_has_all_permissions": true },
+				"entities_can_be_created": true,
+				"add_schemas": [0],
+				"create_entities": [0, 1, 2],
+				"reference_constraint": { "NoConstraint": null },
+				"admins": [0],
+				"last_permissions_update": 0
+			}
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "createClass",
+		"args": [
+			"0x566964656f2043617465676f7279",
+			"0x436c61737320666f722073657474696e67207468652063617465676f727920666f7220766964656f7320696e2074686520566964656f20636c6173732e",
+			{
+				"entity_permissions": { "update": [0], "maintainer_has_all_permissions": true },
+				"entities_can_be_created": true,
+				"add_schemas": [0],
+				"create_entities": [0],
+				"reference_constraint": { "NoConstraint": null },
+				"admins": [0],
+				"last_permissions_update": 0
+			}
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "createClass",
+		"args": [
+			"0x4d7573696320416c62756d",
+			"0x416e20616c62756d206973206120636f6c6c656374696f6e206f6620747261636b73206f7220617564696f207265636f7264696e67732e20557375616c6c7920627920612073696e676c6520617274697374206f722067726f75702e",
+			{
+				"entity_permissions": { "update": [0, 1, 2], "maintainer_has_all_permissions": true },
+				"entities_can_be_created": true,
+				"add_schemas": [0],
+				"create_entities": [0, 1, 2],
+				"reference_constraint": { "NoConstraint": null },
+				"admins": [0],
+				"last_permissions_update": 0
+			}
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "createClass",
+		"args": [
+			"0x4d757369632047656e7265",
+			"0x436c61737320666f722073657474696e67207468652067656e726520666f72206d757369632e",
+			{
+				"entity_permissions": { "update": [0], "maintainer_has_all_permissions": true },
+				"entities_can_be_created": true,
+				"add_schemas": [0],
+				"create_entities": [0],
+				"reference_constraint": { "NoConstraint": null },
+				"admins": [0],
+				"last_permissions_update": 0
+			}
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "createClass",
+		"args": [
+			"0x4d75736963204d6f6f64",
+			"0x436c61737320666f722073657474696e6720746865206d6f6f647320666f72206d757369632e",
+			{
+				"entity_permissions": { "update": [0], "maintainer_has_all_permissions": true },
+				"entities_can_be_created": true,
+				"add_schemas": [0],
+				"create_entities": [0],
+				"reference_constraint": { "NoConstraint": null },
+				"admins": [0],
+				"last_permissions_update": 0
+			}
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "createClass",
+		"args": [
+			"0x4d75736963205468656d65",
+			"0x436c61737320666f722073657474696e6720746865207468656d657320666f72206d757369632e",
+			{
+				"entity_permissions": { "update": [0], "maintainer_has_all_permissions": true },
+				"entities_can_be_created": true,
+				"add_schemas": [0],
+				"create_entities": [0],
+				"reference_constraint": { "NoConstraint": null },
+				"admins": [0],
+				"last_permissions_update": 0
+			}
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "createClass",
+		"args": [
+			"0x4d7573696320547261636b",
+			"0x4120747261636b20697320616e20696e646976696475616c20736f6e67206f7220696e737472756d656e74616c207265636f7264696e672e",
+			{
+				"entity_permissions": { "update": [0, 1, 2], "maintainer_has_all_permissions": true },
+				"entities_can_be_created": true,
+				"add_schemas": [0],
+				"create_entities": [0, 1, 2],
+				"reference_constraint": { "NoConstraint": null },
+				"admins": [0],
+				"last_permissions_update": 0
+			}
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "addClassSchema",
+		"args": [
+			0,
+			1,
+			[],
+			[
+				{
+					"prop_type": { "Text": 48 },
+					"required": true,
+					"name": "Value",
+					"description": "ContentId of object in the data directory"
+				},
+				{
+					"prop_type": { "Uint64": null },
+					"required": false,
+					"name": "Channel Id",
+					"description": "Id of the channel this media object is published under."
+				}
+			]
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "addClassSchema",
+		"args": [
+			0,
+			2,
+			[],
+			[
+				{
+					"prop_type": { "Text": 2 },
+					"required": true,
+					"name": "Value",
+					"description": "Language code following the ISO 639-1 two letter standard."
+				}
+			]
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "addClassSchema",
+		"args": [
+			0,
+			3,
+			[],
+			[
+				{
+					"prop_type": { "Text": 255 },
+					"required": true,
+					"name": "Value",
+					"description": "The license of which the content is originally published under."
+				}
+			]
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "addClassSchema",
+		"args": [
+			0,
+			4,
+			[],
+			[
+				{
+					"prop_type": { "Text": 50 },
+					"required": true,
+					"name": "Value",
+					"description": "The publication status of the content in the content directory."
+				}
+			]
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "addClassSchema",
+		"args": [
+			0,
+			5,
+			[],
+			[
+				{
+					"prop_type": { "Text": 255 },
+					"required": true,
+					"name": "Value",
+					"description": "The curator publication status of the content in the content directory."
+				}
+			]
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "addClassSchema",
+		"args": [
+			0,
+			6,
+			[],
+			[
+				{
+					"prop_type": { "Internal": 7 },
+					"required": false,
+					"name": "Top Video",
+					"description": "The video that has the most prominent position(s) on the platform."
+				},
+				{
+					"prop_type": { "InternalVec": [12, 7] },
+					"required": false,
+					"name": "Featured Videos",
+					"description": "Videos featured in the Video tab."
+				},
+				{
+					"prop_type": { "InternalVec": [12, 9] },
+					"required": false,
+					"name": "Featured Albums",
+					"description": "Music albums featured in the Music tab."
+				}
+			]
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "addClassSchema",
+		"args": [
+			0,
+			7,
+			[],
+			[
+				{
+					"prop_type": { "Text": 255 },
+					"required": true,
+					"name": "Title",
+					"description": "The title of the video"
+				},
+				{
+					"prop_type": { "Text": 255 },
+					"required": true,
+					"name": "Thumbnail",
+					"description": "URL to video thumbnail: NOTE: Should be an https link to an image of ratio 16:9, ideally 1280 pixels wide by 720 pixels tall, with a minimum width of 640 pixels, in JPEG or PNG format."
+				},
+				{
+					"prop_type": { "Text": 4000 },
+					"required": true,
+					"name": "Description",
+					"description": "Information about the video."
+				},
+				{
+					"prop_type": { "Internal": 2 },
+					"required": true,
+					"name": "Language",
+					"description": "The main language used in the video."
+				},
+				{
+					"prop_type": { "Int64": null },
+					"required": true,
+					"name": "First Released",
+					"description": "When the video was first released"
+				},
+				{
+					"prop_type": { "Internal": 8 },
+					"required": false,
+					"name": "Category",
+					"description": "The category of the video."
+				},
+				{
+					"prop_type": { "TextVec": [5, 255] },
+					"required": false,
+					"name": "Links",
+					"description": "Links to the creators pages."
+				},
+				{
+					"prop_type": { "Internal": 1 },
+					"required": false,
+					"name": "Object",
+					"description": "The entityId of the object in the data directory."
+				},
+				{
+					"prop_type": { "Internal": 4 },
+					"required": true,
+					"name": "Publication Status",
+					"description": "The publication status of the video."
+				},
+				{
+					"prop_type": { "Internal": 5 },
+					"required": false,
+					"name": "Curation Status",
+					"description": "The publication status of the video set by the a content curator on the platform."
+				},
+				{
+					"prop_type": { "Bool": null },
+					"required": true,
+					"name": "Explicit",
+					"description": "Indicates whether the video contains explicit material."
+				},
+				{
+					"prop_type": { "Internal": 3 },
+					"required": true,
+					"name": "License",
+					"description": "The license of which the video is released under."
+				},
+				{
+					"prop_type": { "Text": 255 },
+					"required": false,
+					"name": "Attribution",
+					"description": "If the License requires attribution, add this here."
+				},
+				{
+					"prop_type": { "Uint64": null },
+					"required": false,
+					"name": "Channel Id",
+					"description": "Id of the channel this video is published under."
+				}
+			]
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "addClassSchema",
+		"args": [
+			0,
+			8,
+			[],
+			[
+				{
+					"prop_type": { "Text": 255 },
+					"required": true,
+					"name": "Value",
+					"description": "Categories for videos."
+				}
+			]
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "addClassSchema",
+		"args": [
+			0,
+			9,
+			[],
+			[
+				{
+					"prop_type": { "Text": 255 },
+					"required": true,
+					"name": "Title",
+					"description": "The title of the album"
+				},
+				{
+					"prop_type": { "Text": 255 },
+					"required": true,
+					"name": "Artist",
+					"description": "The artist, composer, band or group that published the album."
+				},
+				{
+					"prop_type": { "Text": 255 },
+					"required": true,
+					"name": "Thumbnail",
+					"description": "URL to album cover art thumbnail: NOTE: Should be an https link to a square image, between 1400x1400 and 3000x3000 pixels, in JPEG or PNG format."
+				},
+				{
+					"prop_type": { "Text": 4000 },
+					"required": true,
+					"name": "Description",
+					"description": "Information about the album and artist."
+				},
+				{
+					"prop_type": { "Int64": null },
+					"required": true,
+					"name": "First Released",
+					"description": "When the album was first released"
+				},
+				{
+					"prop_type": { "InternalVec": [3, 10] },
+					"required": false,
+					"name": "Genre",
+					"description": "The genre(s) of the album."
+				},
+				{
+					"prop_type": { "InternalVec": [3, 11] },
+					"required": false,
+					"name": "Mood",
+					"description": "The mood(s) of the album."
+				},
+				{
+					"prop_type": { "InternalVec": [3, 12] },
+					"required": false,
+					"name": "Theme",
+					"description": "The theme(s) of the album."
+				},
+				{
+					"prop_type": { "InternalVec": [100, 13] },
+					"required": false,
+					"name": "Tracks",
+					"description": "The tracks of the album."
+				},
+				{
+					"prop_type": { "Internal": 2 },
+					"required": false,
+					"name": "Language",
+					"description": "The language of the song lyrics in the album."
+				},
+				{
+					"prop_type": { "TextVec": [5, 255] },
+					"required": false,
+					"name": "Links",
+					"description": "Links to the artist or album site, or social media pages."
+				},
+				{
+					"prop_type": { "Text": 255 },
+					"required": false,
+					"name": "Lyrics",
+					"description": "Link to the album tracks lyrics."
+				},
+				{
+					"prop_type": { "Text": 255 },
+					"required": false,
+					"name": "Composer or songwriter",
+					"description": "The composer(s) and/or songwriter(s) of the album."
+				},
+				{
+					"prop_type": { "TextVec": [5, 255] },
+					"required": false,
+					"name": "Reviews",
+					"description": "Links to reviews of the album."
+				},
+				{
+					"prop_type": { "Internal": 4 },
+					"required": true,
+					"name": "Publication Status",
+					"description": "The publication status of the album."
+				},
+				{
+					"prop_type": { "Internal": 5 },
+					"required": false,
+					"name": "Curation Status",
+					"description": "The publication status of the album set by the a content curator on the platform."
+				},
+				{
+					"prop_type": { "Bool": null },
+					"required": true,
+					"name": "Explicit",
+					"description": "Indicates whether the album contains explicit material."
+				},
+				{
+					"prop_type": { "Internal": 3 },
+					"required": true,
+					"name": "License",
+					"description": "The license of which the album is released under."
+				},
+				{
+					"prop_type": { "Text": 255 },
+					"required": false,
+					"name": "Attribution",
+					"description": "If the License requires attribution, add this here."
+				},
+				{
+					"prop_type": { "Uint64": null },
+					"required": false,
+					"name": "Channel Id",
+					"description": "Id of the channel this album is published under."
+				}
+			]
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "addClassSchema",
+		"args": [
+			0,
+			10,
+			[],
+			[{ "prop_type": { "Text": 100 }, "required": true, "name": "Value", "description": "Genres for music." }]
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "addClassSchema",
+		"args": [
+			0,
+			11,
+			[],
+			[{ "prop_type": { "Text": 100 }, "required": true, "name": "Value", "description": "Moods for music." }]
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "addClassSchema",
+		"args": [
+			0,
+			12,
+			[],
+			[{ "prop_type": { "Text": 100 }, "required": true, "name": "Value", "description": "Themes for music." }]
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "addClassSchema",
+		"args": [
+			0,
+			13,
+			[],
+			[
+				{
+					"prop_type": { "Text": 255 },
+					"required": true,
+					"name": "Title",
+					"description": "The title of the track"
+				},
+				{
+					"prop_type": { "Text": 255 },
+					"required": true,
+					"name": "Artist",
+					"description": "The artist, composer, band or group that published the track."
+				},
+				{
+					"prop_type": { "Text": 255 },
+					"required": true,
+					"name": "Thumbnail",
+					"description": "URL to track cover art: NOTE: Should be an https link to a square image, between 1400x1400 and 3000x3000 pixels, in JPEG or PNG format."
+				},
+				{
+					"prop_type": { "Text": 255 },
+					"required": false,
+					"name": "Description",
+					"description": "Information about the track."
+				},
+				{
+					"prop_type": { "Internal": 2 },
+					"required": false,
+					"name": "Language",
+					"description": "The language of the lyrics in the track."
+				},
+				{
+					"prop_type": { "Int64": null },
+					"required": true,
+					"name": "First Released",
+					"description": "When the track was first released"
+				},
+				{
+					"prop_type": { "Internal": 10 },
+					"required": false,
+					"name": "Genre",
+					"description": "The genre of the track."
+				},
+				{
+					"prop_type": { "Internal": 11 },
+					"required": false,
+					"name": "Mood",
+					"description": "The mood of the track."
+				},
+				{
+					"prop_type": { "Internal": 12 },
+					"required": false,
+					"name": "Theme",
+					"description": "The theme of the track."
+				},
+				{
+					"prop_type": { "TextVec": [5, 255] },
+					"required": false,
+					"name": "Links",
+					"description": "Links to the artist site or social media pages."
+				},
+				{
+					"prop_type": { "Text": 255 },
+					"required": false,
+					"name": "Composer or songwriter",
+					"description": "The composer(s) and/or songwriter(s) of the track."
+				},
+				{
+					"prop_type": { "Text": 255 },
+					"required": false,
+					"name": "Lyrics",
+					"description": "Link to the track lyrics."
+				},
+				{
+					"prop_type": { "Internal": 1 },
+					"required": false,
+					"name": "Object",
+					"description": "The entityId of the object in the data directory."
+				},
+				{
+					"prop_type": { "Internal": 4 },
+					"required": true,
+					"name": "Publication Status",
+					"description": "The publication status of the track."
+				},
+				{
+					"prop_type": { "Internal": 5 },
+					"required": false,
+					"name": "Curation Status",
+					"description": "The publication status of the track set by the a content curator on the platform."
+				},
+				{
+					"prop_type": { "Bool": null },
+					"required": true,
+					"name": "Explicit",
+					"description": "Indicates whether the track contains explicit material."
+				},
+				{
+					"prop_type": { "Internal": 3 },
+					"required": true,
+					"name": "License",
+					"description": "The license of which the track is released under."
+				},
+				{
+					"prop_type": { "Text": 255 },
+					"required": false,
+					"name": "Attribution",
+					"description": "If the License requires attribution, add this here."
+				},
+				{
+					"prop_type": { "Uint64": null },
+					"required": false,
+					"name": "Channel Id",
+					"description": "Id of the channel this track is published under."
+				}
+			]
+		]
+	}
+]

+ 12694 - 0
devops/vstore/entities.json

@@ -0,0 +1,12694 @@
+[
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "transaction",
+		"args": [
+			[
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 2 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 4 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 4 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 5 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 5 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 5 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 5 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 3 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 3 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 3 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 3 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 0 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "aa" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 1 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ab" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 2 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ae" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 3 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "af" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 4 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ak" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 5 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "am" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 6 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "an" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 7 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ar" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 8 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "as" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 9 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "av" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 10 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ay" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 11 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "az" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 12 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ba" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 13 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "be" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 14 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "bg" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 15 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "bh" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 16 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "bi" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 17 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "bm" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 18 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "bn" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 19 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "bo" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 20 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "br" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 21 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "bs" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 22 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ca" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 23 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ce" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 24 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ch" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 25 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "co" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 26 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "cr" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 27 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "cs" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 28 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "cu" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 29 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "cv" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 30 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "cy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 31 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "da" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 32 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "de" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 33 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "dv" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 34 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "dz" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 35 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ee" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 36 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "el" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 37 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "en" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 38 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "eo" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 39 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "es" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 40 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "et" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 41 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "eu" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 42 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "fa" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 43 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ff" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 44 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "fi" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 45 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "fj" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 46 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "fo" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 47 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "fr" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 48 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "fy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 49 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ga" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 50 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "gd" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 51 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "gl" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 52 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "gn" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 53 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "gu" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 54 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "gv" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 55 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ha" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 56 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "he" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 57 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "hi" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 58 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ho" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 59 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "hr" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 60 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ht" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 61 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "hu" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 62 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "hy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 63 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "hz" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 64 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ia" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 65 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "id" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 66 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ie" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 67 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ig" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 68 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ii" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 69 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ik" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 70 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "io" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 71 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "is" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 72 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "it" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 73 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "iu" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 74 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ja" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 75 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "jv" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 76 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ka" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 77 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "kg" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 78 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ki" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 79 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "kj" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 80 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "kk" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 81 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "kl" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 82 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "km" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 83 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "kn" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 84 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ko" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 85 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "kr" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 86 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ks" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 87 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ku" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 88 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "kv" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 89 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "kw" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 90 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ky" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 91 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "la" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 92 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "lb" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 93 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "lg" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 94 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "li" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 95 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ln" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 96 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "lo" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 97 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "lt" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 98 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "lu" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 99 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "lv" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 100 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "mg" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 101 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "mh" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 102 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "mi" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 103 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "mk" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 104 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ml" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 105 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "mn" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 106 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "mr" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 107 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ms" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 108 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "mt" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 109 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "my" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 110 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "na" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 111 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "nb" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 112 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "nd" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 113 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ne" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 114 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ng" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 115 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "nl" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 116 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "nn" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 117 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "no" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 118 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "nr" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 119 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "nv" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 120 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ny" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 121 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "oc" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 122 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "oj" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 123 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "om" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 124 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "or" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 125 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "os" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 126 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "pa" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 127 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "pi" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 128 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "pl" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 129 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ps" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 130 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "pt" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 131 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "qu" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 132 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "rm" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 133 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "rn" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 134 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ro" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 135 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ru" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 136 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "rw" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 137 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "sa" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 138 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "sc" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 139 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "sd" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 140 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "se" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 141 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "sg" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 142 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "si" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 143 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "sk" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 144 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "sl" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 145 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "sm" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 146 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "sn" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 147 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "so" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 148 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "sq" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 149 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "sr" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 150 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ss" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 151 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "st" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 152 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "su" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 153 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "sv" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 154 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "sw" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 155 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ta" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 156 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "te" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 157 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "tg" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 158 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "th" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 159 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ti" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 160 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "tk" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 161 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "tl" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 162 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "tn" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 163 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "to" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 164 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "tr" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 165 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ts" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 166 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "tt" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 167 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "tw" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 168 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ty" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 169 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ug" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 170 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "uk" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 171 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ur" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 172 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "uz" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 173 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "ve" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 174 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "vi" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 175 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "vo" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 176 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "wa" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 177 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "wo" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 178 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "xh" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 179 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "yi" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 180 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "yo" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 181 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "za" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 182 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "zh" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 183 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "zu" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 184 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Public" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 185 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Unlisted" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 186 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Edited" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 187 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Updated schema" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 188 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Under review" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 189 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Removed" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 190 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Public Domain" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 191 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Original content" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 192 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{
+									"in_class_index": 0,
+									"value": { "PropertyValue": { "Text": "Creative Commons (attribution required)" } }
+								}
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 193 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{
+									"in_class_index": 0,
+									"value": { "PropertyValue": { "Text": "Fair Use  (attribution required)" } }
+								}
+							]
+						}
+					}
+				}
+			]
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "transaction",
+		"args": [
+			[
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 8 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 8 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 8 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 8 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 8 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 8 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 8 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 8 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 8 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 8 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 8 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 8 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 8 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 8 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 8 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 0 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Film & Animation" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 1 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Autos & Vehicles" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 2 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Music" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 3 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Pets & Animals" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 4 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sports" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 5 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Travel & Events" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 6 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Gaming" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 7 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "People & Blogs" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 8 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Comedy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 9 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Entertainment" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 10 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "News & Politics" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 11 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Howto & Style" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 12 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Education" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 13 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{
+									"in_class_index": 0,
+									"value": { "PropertyValue": { "Text": "Science & Technology" } }
+								}
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 14 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{
+									"in_class_index": 0,
+									"value": { "PropertyValue": { "Text": "Nonprofits & Activism" } }
+								}
+							]
+						}
+					}
+				}
+			]
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "transaction",
+		"args": [
+			[
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 10 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 0 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Avant-Garde" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 1 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Blues" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 2 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Children's" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 3 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Classical" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 4 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Comedy/Spoken" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 5 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Country" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 6 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Easy Listening" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 7 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Electronic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 8 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Folk" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 9 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Holiday" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 10 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "International" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 11 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Jazz" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 12 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Latin" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 13 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "New Age" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 14 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Pop/Rock" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 15 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "R&B" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 16 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Rap" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 17 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Reggae" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 18 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Religious" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 19 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Stage & Screen" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 20 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Vocal" } } }
+							]
+						}
+					}
+				}
+			]
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "transaction",
+		"args": [
+			[
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 11 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 0 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Acerbic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 1 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Aggressive" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 2 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Agreeable" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 3 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Airy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 4 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Ambitious" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 5 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{
+									"in_class_index": 0,
+									"value": { "PropertyValue": { "Text": "Amiable/Good-Natured" } }
+								}
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 6 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Angry" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 7 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Angst-Ridden" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 8 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{
+									"in_class_index": 0,
+									"value": { "PropertyValue": { "Text": "Anguished/Distraught" } }
+								}
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 9 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Angular" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 10 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Animated" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 11 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Apocalyptic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 12 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Arid" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 13 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Athletic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 14 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Atmospheric" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 15 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Austere" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 16 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Autumnal" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 17 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Belligerent" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 18 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Benevolent" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 19 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Bitter" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 20 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Bittersweet" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 21 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Bleak" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 22 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Boisterous" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 23 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Bombastic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 24 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Brash" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 25 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Brassy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 26 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Bravado" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 27 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Bright" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 28 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Brittle" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 29 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Brooding" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 30 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Calm/Peaceful" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 31 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Campy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 32 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Capricious" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 33 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Carefree" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 34 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Cartoonish" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 35 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Cathartic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 36 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Celebratory" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 37 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Cerebral" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 38 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Cheerful" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 39 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Child-like" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 40 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Circular" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 41 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Clinical" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 42 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Cold" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 43 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Comic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 44 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Complex" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 45 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Concise" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 46 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Confident" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 47 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Confrontational" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 48 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Cosmopolitan" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 49 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Crunchy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 50 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Cynical/Sarcastic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 51 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Dark" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 52 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Declamatory" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 53 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Defiant" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 54 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Delicate" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 55 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Demonic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 56 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Desperate" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 57 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Detached" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 58 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Devotional" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 59 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Difficult" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 60 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Dignified/Noble" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 61 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Dramatic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 62 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Dreamy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 63 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Driving" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 64 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Druggy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 65 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Earnest" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 66 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Earthy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 67 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Ebullient" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 68 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Eccentric" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 69 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Ecstatic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 70 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Eerie" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 71 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Effervescent" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 72 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Elaborate" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 73 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Elegant" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 74 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Elegiac" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 75 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Energetic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 76 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Enigmatic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 77 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Epic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 78 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Erotic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 79 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Ethereal" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 80 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Euphoric" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 81 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Exciting" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 82 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Exotic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 83 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Explosive" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 84 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Extroverted" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 85 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Exuberant" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 86 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{
+									"in_class_index": 0,
+									"value": { "PropertyValue": { "Text": "Fantastic/Fantasy-like" } }
+								}
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 87 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Feral" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 88 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Feverish" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 89 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Fierce" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 90 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Fiery" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 91 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Flashy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 92 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Flowing" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 93 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Fractured" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 94 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Freewheeling" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 95 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Fun" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 96 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Funereal" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 97 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Gentle" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 98 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Giddy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 99 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Gleeful" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 100 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Gloomy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 101 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Graceful" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 102 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Greasy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 103 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Grim" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 104 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Gritty" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 105 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Gutsy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 106 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Happy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 107 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Harsh" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 108 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Hedonistic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 109 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Heroic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 110 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Hostile" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 111 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Humorous" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 112 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Hungry" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 113 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Hymn-like" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 114 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Hyper" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 115 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Hypnotic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 116 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Improvisatory" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 117 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Indulgent" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 118 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Innocent" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 119 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Insular" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 120 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Intense" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 121 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Intimate" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 122 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Introspective" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 123 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Ironic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 124 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Irreverent" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 125 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Jovial" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 126 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Joyous" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 127 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Kinetic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 128 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Knotty" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 129 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Laid-Back/Mellow" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 130 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Languid" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 131 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Lazy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 132 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Light" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 133 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Literate" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 134 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Lively" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 135 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Lonely" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 136 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Lush" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 137 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Lyrical" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 138 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Macabre" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 139 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Magical" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 140 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Majestic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 141 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Malevolent" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 142 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Manic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 143 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Marching" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 144 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Martial" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 145 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Meandering" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 146 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Mechanical" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 147 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Meditative" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 148 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Melancholy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 149 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Menacing" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 150 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Messy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 151 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Mighty" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 152 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Monastic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 153 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Monumental" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 154 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Motoric" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 155 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Mysterious" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 156 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Mystical" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 157 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Naive" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 158 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Narcotic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 159 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Narrative" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 160 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Negative" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 161 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Nervous/Jittery" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 162 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Nihilistic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 163 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Nocturnal" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 164 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Nostalgic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 165 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Ominous" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 166 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Optimistic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 167 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Opulent" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 168 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Organic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 169 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Ornate" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 170 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Outraged" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 171 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Outrageous" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 172 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Paranoid" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 173 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Passionate" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 174 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Pastoral" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 175 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Patriotic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 176 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Perky" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 177 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Philosophical" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 178 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Plain" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 179 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Plaintive" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 180 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Playful" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 181 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Poignant" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 182 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Positive" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 183 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Powerful" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 184 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Precious" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 185 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Provocative" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 186 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Pulsing" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 187 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Pure" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 188 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Quirky" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 189 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Rambunctious" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 190 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Ramshackle" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 191 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Raucous" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 192 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{
+									"in_class_index": 0,
+									"value": { "PropertyValue": { "Text": "Reassuring/Consoling" } }
+								}
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 193 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Rebellious" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 194 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Reckless" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 195 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Refined" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 196 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Reflective" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 197 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Regretful" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 198 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Relaxed" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 199 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Reserved" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 200 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Resolute" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 201 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Restrained" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 202 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Reverent" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 203 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Rhapsodic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 204 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Rollicking" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 205 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Romantic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 206 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Rousing" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 207 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Rowdy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 208 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Rustic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 209 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sacred" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 210 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sad" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 211 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sarcastic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 212 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sardonic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 213 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Satirical" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 214 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Savage" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 215 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Scary" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 216 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Scattered" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 217 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Searching" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 218 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Self-Conscious" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 219 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sensual" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 220 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sentimental" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 221 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Serious" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 222 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Severe" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 223 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sexual" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 224 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sexy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 225 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Shimmering" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 226 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Silly" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 227 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sleazy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 228 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Slick" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 229 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Smooth" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 230 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Snide" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 231 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Soft/Quiet" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 232 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Somber" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 233 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Soothing" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 234 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sophisticated" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 235 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Spacey" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 236 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sparkling" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 237 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sparse" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 238 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Spicy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 239 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Spiritual" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 240 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Spontaneous" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 241 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Spooky" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 242 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sprawling" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 243 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sprightly" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 244 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Springlike" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 245 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Stately" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 246 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Street-Smart" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 247 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Striding" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 248 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Strong" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 249 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Stylish" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 250 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Suffocating" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 251 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sugary" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 252 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Summery" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 253 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Suspenseful" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 254 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Swaggering" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 255 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sweet" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 256 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Swinging" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 257 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Technical" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 258 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Tender" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 259 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Tense/Anxious" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 260 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Theatrical" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 261 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Thoughtful" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 262 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Threatening" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 263 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Thrilling" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 264 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Thuggish" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 265 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Tragic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 266 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{
+									"in_class_index": 0,
+									"value": { "PropertyValue": { "Text": "Transparent/Translucent" } }
+								}
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 267 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Trashy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 268 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Trippy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 269 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Triumphant" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 270 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Tuneful" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 271 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Turbulent" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 272 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Uncompromising" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 273 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Understated" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 274 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Unsettling" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 275 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Uplifting" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 276 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Urgent" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 277 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Virile" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 278 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Visceral" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 279 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Volatile" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 280 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Vulgar" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 281 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Warm" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 282 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Weary" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 283 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Whimsical" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 284 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Wintry" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 285 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Wistful" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 286 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Witty" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 287 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Wry" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 288 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Yearning" } } }
+							]
+						}
+					}
+				}
+			]
+		]
+	},
+
+	{
+		"sectionName": "versionedStorePermissions",
+		"methodName": "transaction",
+		"args": [
+			[
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": { "CreateEntity": { "class_id": 12 } }
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 0 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Adventure" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 1 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Affection/Fondness" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 2 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Affirmation" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 3 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Anger/Hostility" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 4 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Animals" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 5 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Anniversary" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 6 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Argument" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 7 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "At the Beach" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 8 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "At the Office" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 9 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Autumn" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 10 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Award Winners" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 11 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Awareness" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 12 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Background Music" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 13 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Biographical" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 14 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Birth" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 15 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Birthday" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 16 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Breakup" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 17 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Cars" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 18 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Celebration" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 19 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Celebrities" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 20 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Children" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 21 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Christmas" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 22 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Christmas Party" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 23 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "City Life" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 24 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Classy Gatherings" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 25 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Club" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 26 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Comfort" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 27 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Conflict" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 28 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Cool & Cocky" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 29 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Country Life" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 30 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Crime" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 31 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "D-I-V-O-R-C-E" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 32 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Dance Party" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 33 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Day Driving" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 34 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Daydreaming" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 35 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Death" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 36 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Despair" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 37 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Destiny" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 38 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Dinner Ambiance" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 39 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Disappointment" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 40 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Dreaming" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 41 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Drinking" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 42 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Drugs" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 43 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Early Morning" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 44 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Easter" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 45 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Empowering" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 46 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Everyday Life" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 47 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Exercise/Workout" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 48 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Family" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 49 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Family Gatherings" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 50 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Fantasy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 51 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Fear" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 52 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Feeling Blue" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 53 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Flying" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 54 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Food/Eating" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 55 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Forgiveness" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 56 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Fourth of July" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 57 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Freedom" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 58 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Friendship" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 59 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Funeral" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 60 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Girls Night Out" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 61 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Good Times" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 62 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Goodbyes" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 63 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Graduation" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 64 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Guys Night Out" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 65 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Halloween" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 66 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Hanging Out" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 67 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Happiness" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 68 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Healing/Comfort" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 69 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Heartache" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 70 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Heartbreak" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 71 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "High School" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 72 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Historical Events" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 73 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Holidays" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 74 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Home" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 75 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Homecoming" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 76 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Hope" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 77 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Housework" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 78 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Illness" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 79 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "In Love" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 80 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Introspection" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 81 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Jealousy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 82 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Joy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 83 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Late Night" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 84 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Lifecycle" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 85 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Loneliness" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 86 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Long Walk" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 87 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Loss/Grief" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 88 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Lying" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 89 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Magic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 90 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Maverick" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 91 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Meditation" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 92 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Memorial" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 93 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Military" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 94 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Mischievous" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 95 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Monday Morning" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 96 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Money" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 97 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Moon" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 98 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Morning" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 99 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Motivation" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 100 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Music" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 101 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Myths & Legends" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 102 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Nature" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 103 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "New Love" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 104 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Night Driving" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 105 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Nighttime" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 106 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Open Road" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 107 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{
+									"in_class_index": 0,
+									"value": { "PropertyValue": { "Text": "Other Times & Places" } }
+								}
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 108 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Pain" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 109 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Parenthood" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 110 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Partying" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 111 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Passion" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 112 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Patriotism" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 113 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Peace" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 114 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Picnic" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 115 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Playful" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 116 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Poetry" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 117 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Politics/Society" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 118 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Pool Party" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 119 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Prom" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 120 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Promises" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 121 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Protest" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 122 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Rainy Day" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 123 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Reflection" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 124 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Regret" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 125 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Relationships" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 126 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Relaxation" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 127 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Religion" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 128 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Reminiscing" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 129 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Reunion" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 130 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Revolutionary" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 131 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Road Trip" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 132 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Romance" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 133 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Romantic Evening" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 134 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Scary Music" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 135 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "School" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 136 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Science" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 137 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "SciFi" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 138 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Seduction" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 139 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Separation" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 140 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sex" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 141 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Slow Dance" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 142 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Small Gathering" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 143 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Solitude" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 144 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sorrow" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 145 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sports" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 146 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Spring" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 147 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Starry Sky" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 148 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Starting Out" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 149 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Stay in Bed" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 150 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Storms" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 151 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Street Life" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 152 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Summer" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 153 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sun" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 154 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sunday Afternoon" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 155 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Sweet Dreams" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 156 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Teenagers" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 157 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Temptation" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 158 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "TGIF" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 159 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Thanksgiving" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 160 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "The Creative Side" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 161 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "The Great Outdoors" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 162 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Value" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 163 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Tragedy" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 164 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Travel" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 165 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Truth" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 166 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Vacation" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 167 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Victory" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 168 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Violence" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 169 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Visions" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 170 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "War" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 171 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Water" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 172 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Weather" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 173 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Wedding" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 174 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Winter" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 175 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Wisdom" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 176 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Word Play" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 177 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Work" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 178 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "World View" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 179 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Yearning" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 180 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Youth" } } }
+							]
+						}
+					}
+				},
+				{
+					"with_credential": 0,
+					"as_entity_maintainer": true,
+					"operation_type": {
+						"AddSchemaSupportToEntity": {
+							"entity_id": { "InternalEntityJustAdded": 181 },
+							"schema_id": 0,
+							"parametrized_property_values": [
+								{ "in_class_index": 0, "value": { "PropertyValue": { "Text": "Zeitgeist" } } }
+							]
+						}
+					}
+				}
+			]
+		]
+	}
+]

+ 1 - 1
node/src/chain_spec.rs

@@ -328,7 +328,7 @@ pub fn testnet_genesis(
             set_content_working_group_mint_capacity_proposal_grace_period: cpcp
                 .set_content_working_group_mint_capacity_proposal_grace_period,
             set_lead_proposal_voting_period: cpcp.set_lead_proposal_voting_period,
-            set_lead_proposal_grace_period: cpcp.set_lead_proposal_voting_period,
+            set_lead_proposal_grace_period: cpcp.set_lead_proposal_grace_period,
             spending_proposal_voting_period: cpcp.spending_proposal_voting_period,
             spending_proposal_grace_period: cpcp.spending_proposal_grace_period,
             add_working_group_opening_proposal_voting_period: cpcp

+ 1 - 1
package.json

@@ -7,7 +7,7 @@
     "test": "yarn && yarn workspaces run test",
     "test-migration": "yarn && yarn workspaces run test-migration",
     "postinstall": "yarn workspace @joystream/types build && yarn workspace storage-node run build",
-	"cargo-checks": "devops/git-hooks/pre-commit && devops/git-hooks/pre-push",
+    "cargo-checks": "devops/git-hooks/pre-commit && devops/git-hooks/pre-push",
     "cargo-build": "scripts/cargo-build.sh",
     "lint": "yarn workspaces run lint"
   },

+ 8 - 1
pioneer/packages/app-js/src/Playground.tsx

@@ -18,6 +18,7 @@ import uiKeyring from '@polkadot/ui-keyring';
 import * as types from '@polkadot/types';
 import * as util from '@polkadot/util';
 import * as hashing from '@polkadot/util-crypto';
+import * as joy_types from '@joystream/types';
 
 import makeWrapper from './snippets/wrapping';
 import allSnippets from './snippets';
@@ -39,6 +40,9 @@ interface Injected {
   types: typeof types;
   util: typeof util;
   window: null;
+  joy: {
+    types: typeof joy_types;
+  };
 }
 
 interface Props extends AppProps, I18nProps, RouteComponentProps<{}> {
@@ -195,7 +199,10 @@ function Playground ({ className, history, match: { params: { base64 } }, t }: P
         : null,
       types,
       util,
-      window: null
+      window: null,
+      joy: {
+        types: joy_types
+      }
     };
 
     await injectedRef.current.api.isReady;

+ 2 - 2
pioneer/packages/joy-election/src/Applicant.tsx

@@ -11,12 +11,12 @@ import CandidatePreview from './CandidatePreview';
 
 import translate from './translate';
 import { calcTotalStake } from '@polkadot/joy-utils/index';
-import { Stake } from '@joystream/types/council';
+import { ElectionStake } from '@joystream/types/council';
 
 type Props = ApiProps & I18nProps & {
   index: number;
   accountId: AccountId;
-  stake?: Stake;
+  stake?: ElectionStake;
 };
 
 class Applicant extends React.PureComponent<Props> {

+ 2 - 2
pioneer/packages/joy-election/src/ApplyForm.tsx

@@ -10,13 +10,13 @@ import { Balance } from '@polkadot/types/interfaces';
 import translate from './translate';
 import TxButton from '@polkadot/joy-utils/TxButton';
 import InputStake from '@polkadot/joy-utils/InputStake';
-import { Stake } from '@joystream/types/council';
+import { ElectionStake } from '@joystream/types/council';
 import { calcTotalStake, ZERO } from '@polkadot/joy-utils/index';
 import { MyAddressProps, withOnlyMembers } from '@polkadot/joy-utils/MyAccount';
 
 type Props = ApiProps & I18nProps & MyAddressProps & {
   minStake?: Balance;
-  alreadyStaked?: Stake;
+  alreadyStaked?: ElectionStake;
   myBalance?: Balance;
 };
 

+ 206 - 85
pioneer/packages/joy-proposals/src/Proposal/Body.tsx

@@ -1,4 +1,5 @@
 import React from 'react';
+import { Link } from 'react-router-dom';
 import { Card, Header, Button, Icon, Message } from 'semantic-ui-react';
 import { ProposalType } from '@polkadot/joy-utils/types/proposals';
 import { bytesToString } from '@polkadot/joy-utils/functions/misc';
@@ -6,20 +7,25 @@ import { blake2AsHex } from '@polkadot/util-crypto';
 import styled from 'styled-components';
 import AddressMini from '@polkadot/react-components/AddressMiniJoy';
 import TxButton from '@polkadot/joy-utils/TxButton';
-import { ProposalId } from '@joystream/types/proposals';
+import { ProposalId, TerminateRoleParameters } from '@joystream/types/proposals';
 import { MemberId, Profile } from '@joystream/types/members';
 import ProfilePreview from '@polkadot/joy-utils/MemberProfilePreview';
 import { useTransport, usePromise } from '@polkadot/joy-utils/react/hooks';
 import { Option, Bytes } from '@polkadot/types/';
+import { BlockNumber } from '@polkadot/types/interfaces';
 import { formatBalance } from '@polkadot/util';
 import { PromiseComponent } from '@polkadot/joy-utils/react/components';
 import ReactMarkdown from 'react-markdown';
-import { WorkingGroupOpeningPolicyCommitment } from '@joystream/types/working-group';
+import { WorkingGroupOpeningPolicyCommitment, RewardPolicy } from '@joystream/types/working-group';
 import {
   ActivateOpeningAt,
-  ActivateOpeningAtKeys
+  ActivateOpeningAtKeys,
+  StakingPolicy
 } from '@joystream/types/hiring';
-import { WorkingGroup } from '@joystream/types/common';
+import { WorkingGroup, WorkingGroupKey } from '@joystream/types/common';
+import { ApplicationsDetailsByOpening } from '@polkadot/joy-utils/react/components/working-groups/ApplicationDetails';
+import { LeadInfoFromId } from '@polkadot/joy-utils/react/components/working-groups/LeadInfo';
+import { formatReward } from '@polkadot/joy-utils/functions/format';
 
 type BodyProps = {
   title: string;
@@ -81,91 +87,202 @@ const ParsedHRT = styled.pre`
   white-space: pre-wrap;
 `;
 
+type ParsedParamValue = string | number | JSX.Element;
+
+class ParsedParam {
+  name: string;
+  value: ParsedParamValue;
+  fullWidth: boolean;
+
+  constructor (name: string, value: ParsedParamValue, fullWidth = false) {
+    this.name = name;
+    this.value = value;
+    this.fullWidth = fullWidth;
+  }
+}
+
 // The methods for parsing params by Proposal type.
-// They take the params as array and return { LABEL: VALUE } object.
-const paramParsers: { [x in ProposalType]: (params: any[]) => { [key: string]: string | number | JSX.Element } } = {
-  Text: ([content]) => ({
-    Content: <ReactMarkdown className='TextProposalContent' source={content} linkTarget='_blank' />
-  }),
+const paramParsers: { [x in ProposalType]: (params: any[]) => ParsedParam[]} = {
+  Text: ([content]) => [
+    new ParsedParam(
+      'Content',
+      <ReactMarkdown className='TextProposalContent' source={content} linkTarget='_blank' />,
+      true
+    )
+  ],
   RuntimeUpgrade: ([wasm]) => {
     const buffer: Buffer = Buffer.from(wasm.replace('0x', ''), 'hex');
-    return {
-      'Blake2b256 hash of WASM code': blake2AsHex(buffer, 256),
-      'File size': buffer.length + ' bytes'
-    };
+    return [
+      new ParsedParam('Blake2b256 hash of WASM code', blake2AsHex(buffer, 256), true),
+      new ParsedParam('File size', buffer.length + ' bytes')
+    ];
   },
-  SetElectionParameters: ([params]) => ({
-    'Announcing period': params.announcing_period + ' blocks',
-    'Voting period': params.voting_period + ' blocks',
-    'Revealing period': params.revealing_period + ' blocks',
-    'Council size': params.council_size + ' members',
-    'Candidacy limit': params.candidacy_limit + ' members',
-    'New term duration': params.new_term_duration + ' blocks',
-    'Min. council stake': formatBalance(params.min_council_stake),
-    'Min. voting stake': formatBalance(params.min_voting_stake)
-  }),
-  Spending: ([amount, account]) => ({
-    Amount: formatBalance(amount),
-    Account: <ProposedAddress address={account} />
-  }),
-  SetLead: ([memberId, accountId]) => ({
-    Member: <ProposedMember memberId={ memberId } />,
-    'Account id': <ProposedAddress address={accountId} />
-  }),
-  SetContentWorkingGroupMintCapacity: ([capacity]) => ({
-    'Mint capacity': formatBalance(capacity)
-  }),
-  EvictStorageProvider: ([accountId]) => ({
-    'Storage provider account': <ProposedAddress address={accountId} />
-  }),
-  SetValidatorCount: ([count]) => ({
-    'Validator count': count
-  }),
-  SetStorageRoleParameters: ([params]) => ({
-    'Min. stake': formatBalance(params.min_stake),
+  SetElectionParameters: ([params]) => [
+    new ParsedParam('Announcing period', params.announcing_period + ' blocks'),
+    new ParsedParam('Voting period', params.voting_period + ' blocks'),
+    new ParsedParam('Revealing period', params.revealing_period + ' blocks'),
+    new ParsedParam('Council size', params.council_size + ' members'),
+    new ParsedParam('Candidacy limit', params.candidacy_limit + ' members'),
+    new ParsedParam('New term duration', params.new_term_duration + ' blocks'),
+    new ParsedParam('Min. council stake', formatBalance(params.min_council_stake)),
+    new ParsedParam('Min. voting stake', formatBalance(params.min_voting_stake))
+  ],
+  Spending: ([amount, account]) => [
+    new ParsedParam('Amount', formatBalance(amount)),
+    new ParsedParam('Account', <ProposedAddress address={account} />)
+  ],
+  SetLead: ([memberId, accountId]) => [
+    new ParsedParam('Member', <ProposedMember memberId={ memberId } />),
+    new ParsedParam('Account id', <ProposedAddress address={accountId} />)
+  ],
+  SetContentWorkingGroupMintCapacity: ([capacity]) => [
+    new ParsedParam('Mint capacity', formatBalance(capacity))
+  ],
+  EvictStorageProvider: ([accountId]) => [
+    new ParsedParam('Storage provider account', <ProposedAddress address={accountId} />)
+  ],
+  SetValidatorCount: ([count]) => [
+    new ParsedParam('Validator count', count)
+  ],
+  SetStorageRoleParameters: ([params]) => [
+    new ParsedParam('Min. stake', formatBalance(params.min_stake)),
     // "Min. actors": params.min_actors,
-    'Max. actors': params.max_actors,
-    Reward: formatBalance(params.reward),
-    'Reward period': params.reward_period + ' blocks',
+    new ParsedParam('Max. actors', params.max_actors),
+    new ParsedParam('Reward', formatBalance(params.reward)),
+    new ParsedParam('Reward period', params.reward_period + ' blocks'),
     // "Bonding period": params.bonding_period + " blocks",
-    'Unbonding period': params.unbonding_period + ' blocks',
+    new ParsedParam('Unbonding period', params.unbonding_period + ' blocks'),
     // "Min. service period": params.min_service_period + " blocks",
     // "Startup grace period": params.startup_grace_period + " blocks",
-    'Entry request fee': formatBalance(params.entry_request_fee)
-  }),
+    new ParsedParam('Entry request fee', formatBalance(params.entry_request_fee))
+  ],
   AddWorkingGroupLeaderOpening: ([{ activate_at, commitment, human_readable_text, working_group }]) => {
     const workingGroup = new WorkingGroup(working_group);
     const activateAt = new ActivateOpeningAt(activate_at);
     const activateAtBlock = activateAt.type === ActivateOpeningAtKeys.ExactBlock ? activateAt.value : null;
     const OPCommitment = new WorkingGroupOpeningPolicyCommitment(commitment);
     const {
-      application_staking_policy: aSP,
-      role_staking_policy: rSP,
+      application_staking_policy: applicationSP,
+      role_staking_policy: roleSP,
       application_rationing_policy: rationingPolicy
     } = OPCommitment;
     let HRT = bytesToString(new Bytes(human_readable_text));
     try { HRT = JSON.stringify(JSON.parse(HRT), undefined, 4); } catch (e) { /* Do nothing */ }
-    return {
-      'Working group': workingGroup.type,
-      'Activate at': `${activateAt.type}${activateAtBlock ? `(${activateAtBlock.toString()})` : ''}`,
-      'Application stake': aSP.isSome ? aSP.unwrap().amount_mode.type + `(${aSP.unwrap().amount})` : 'NONE',
-      'Role stake': rSP.isSome ? rSP.unwrap().amount_mode.type + `(${rSP.unwrap().amount})` : 'NONE',
-      'Max. applications': rationingPolicy.isSome ? rationingPolicy.unwrap().max_active_applicants.toNumber() : 'UNLIMITED',
-      'Terminate unstaking period (role stake)': OPCommitment.terminate_role_stake_unstaking_period.unwrapOr(0) + ' blocks',
-      'Exit unstaking period (role stake)': OPCommitment.exit_role_stake_unstaking_period.unwrapOr(0) + ' blocks',
+    const formatStake = (stake: Option<StakingPolicy>) => (
+      stake.isSome ? stake.unwrap().amount_mode.type + `(${stake.unwrap().amount})` : 'NONE'
+    );
+    const formatPeriod = (unstakingPeriod: Option<BlockNumber>) => (
+      unstakingPeriod.unwrapOr(0) + ' blocks'
+    );
+    return [
+      new ParsedParam('Working group', workingGroup.type),
+      new ParsedParam('Activate at', `${activateAt.type}${activateAtBlock ? `(${activateAtBlock.toString()})` : ''}`),
+      new ParsedParam('Application stake', formatStake(applicationSP)),
+      new ParsedParam('Role stake', formatStake(roleSP)),
+      new ParsedParam(
+        'Max. applications',
+        rationingPolicy.isSome ? rationingPolicy.unwrap().max_active_applicants.toNumber() : 'UNLIMITED'
+      ),
+      new ParsedParam(
+        'Terminate unstaking period (role stake)',
+        formatPeriod(OPCommitment.terminate_role_stake_unstaking_period)
+      ),
+      new ParsedParam(
+        'Exit unstaking period (role stake)',
+        formatPeriod(OPCommitment.exit_role_stake_unstaking_period)
+      ),
       // <required_to_prevent_sneaking>
-      'Terminate unstaking period (appl. stake)': OPCommitment.terminate_application_stake_unstaking_period.unwrapOr(0) + ' blocks',
-      'Exit unstaking period (appl. stake)': OPCommitment.exit_role_application_stake_unstaking_period.unwrapOr(0) + ' blocks',
-      'Appl. accepted unstaking period (appl. stake)': OPCommitment.fill_opening_successful_applicant_application_stake_unstaking_period.unwrapOr(0) + ' blocks',
-      'Appl. failed unstaking period (role stake)': OPCommitment.fill_opening_failed_applicant_role_stake_unstaking_period.unwrapOr(0) + ' blocks',
-      'Appl. failed unstaking period (appl. stake)': OPCommitment.fill_opening_failed_applicant_application_stake_unstaking_period.unwrapOr(0) + ' blocks',
-      'Crowded out unstaking period (role stake)': ((rSP.isSome && rSP.unwrap().crowded_out_unstaking_period_length.unwrapOr(0)) || 0) + ' blocks',
-      'Review period expierd unstaking period (role stake)': ((rSP.isSome && rSP.unwrap().review_period_expired_unstaking_period_length.unwrapOr(0)) || 0) + ' blocks',
-      'Crowded out unstaking period (appl. stake)': ((aSP.isSome && aSP.unwrap().crowded_out_unstaking_period_length.unwrapOr(0)) || 0) + ' blocks',
-      'Review period expierd unstaking period (appl. stake)': ((aSP.isSome && aSP.unwrap().review_period_expired_unstaking_period_length.unwrapOr(0)) || 0) + ' blocks',
+      new ParsedParam(
+        'Terminate unstaking period (appl. stake)',
+        formatPeriod(OPCommitment.terminate_application_stake_unstaking_period)
+      ),
+      new ParsedParam(
+        'Exit unstaking period (appl. stake)',
+        formatPeriod(OPCommitment.exit_role_application_stake_unstaking_period)
+      ),
+      new ParsedParam(
+        'Appl. accepted unstaking period (appl. stake)',
+        formatPeriod(OPCommitment.fill_opening_successful_applicant_application_stake_unstaking_period)
+      ),
+      new ParsedParam(
+        'Appl. failed unstaking period (role stake)',
+        formatPeriod(OPCommitment.fill_opening_failed_applicant_role_stake_unstaking_period)
+      ),
+      new ParsedParam(
+        'Appl. failed unstaking period (appl. stake)',
+        formatPeriod(OPCommitment.fill_opening_failed_applicant_application_stake_unstaking_period)
+      ),
+      new ParsedParam(
+        'Crowded out unstaking period (role stake)',
+        roleSP.isSome ? formatPeriod(roleSP.unwrap().crowded_out_unstaking_period_length) : '0 blocks'
+      ),
+      new ParsedParam(
+        'Review period expierd unstaking period (role stake)',
+        roleSP.isSome ? formatPeriod(roleSP.unwrap().review_period_expired_unstaking_period_length) : '0 blocks'
+      ),
+      new ParsedParam(
+        'Crowded out unstaking period (appl. stake)',
+        applicationSP.isSome ? formatPeriod(applicationSP.unwrap().crowded_out_unstaking_period_length) : '0 blocks'
+      ),
+      new ParsedParam(
+        'Review period expierd unstaking period (appl. stake)',
+        applicationSP.isSome ? formatPeriod(applicationSP.unwrap().review_period_expired_unstaking_period_length) : '0 blocks'
+      ),
       // </required_to_prevent_sneaking>
-      'Human readable text': <ParsedHRT>{ HRT }</ParsedHRT>
-    };
+      new ParsedParam('Human readable text', <ParsedHRT>{ HRT }</ParsedHRT>, true)
+    ];
+  },
+  SetWorkingGroupMintCapacity: ([capacity, group]) => [
+    new ParsedParam('Working group', (new WorkingGroup(group)).type),
+    new ParsedParam('Mint capacity', formatBalance(capacity))
+  ],
+  BeginReviewWorkingGroupLeaderApplication: ([id, group]) => [
+    new ParsedParam('Working group', (new WorkingGroup(group)).type),
+    // TODO: Adjust the link to work with multiple groups after working-groups are normalized!
+    new ParsedParam('Opening id', <Link to={`/working-groups/opportunities/storageProviders/${id}`}>#{id}</Link>)
+  ],
+  FillWorkingGroupLeaderOpening: ([params]) => {
+    const { opening_id, successful_application_id, reward_policy, working_group } = params;
+    const rewardPolicy = reward_policy && new RewardPolicy(reward_policy);
+    return [
+      new ParsedParam('Working group', (new WorkingGroup(working_group)).type),
+      // TODO: Adjust the link to work with multiple groups after working-groups are normalized!
+      new ParsedParam('Opening id', <Link to={`/working-groups/opportunities/storageProviders/${opening_id}`}>#{opening_id}</Link>),
+      new ParsedParam('Reward policy', rewardPolicy ? formatReward(rewardPolicy, true) : 'NONE'),
+      new ParsedParam(
+        'Result',
+        <ApplicationsDetailsByOpening
+          openingId={opening_id}
+          acceptedIds={[successful_application_id]}
+          group={(new WorkingGroup(working_group)).type as WorkingGroupKey}/>,
+        true
+      )
+    ];
+  },
+  SlashWorkingGroupLeaderStake: ([leadId, amount, group]) => [
+    new ParsedParam('Working group', (new WorkingGroup(group)).type),
+    new ParsedParam('Slash amount', formatBalance(amount)),
+    new ParsedParam('Lead', <LeadInfoFromId group={(new WorkingGroup(group).type as WorkingGroupKey)} leadId={leadId}/>, true)
+  ],
+  DecreaseWorkingGroupLeaderStake: ([leadId, amount, group]) => [
+    new ParsedParam('Working group', (new WorkingGroup(group)).type),
+    new ParsedParam('Decrease amount', formatBalance(amount)),
+    new ParsedParam('Lead', <LeadInfoFromId group={(new WorkingGroup(group).type as WorkingGroupKey)} leadId={leadId}/>, true)
+  ],
+  SetWorkingGroupLeaderReward: ([leadId, amount, group]) => [
+    new ParsedParam('Working group', (new WorkingGroup(group)).type),
+    new ParsedParam('New reward amount', formatBalance(amount)),
+    new ParsedParam('Lead', <LeadInfoFromId group={(new WorkingGroup(group).type as WorkingGroupKey)} leadId={leadId}/>, true)
+  ],
+  TerminateWorkingGroupLeaderRole: ([params]) => {
+    const paramsObj = new TerminateRoleParameters(params);
+    const { working_group: workingGroup, rationale, worker_id: leadId, slash } = paramsObj;
+    return [
+      new ParsedParam('Working group', workingGroup.type),
+      new ParsedParam('Rationale', bytesToString(rationale), true),
+      new ParsedParam('Slash stake', slash.isTrue ? 'YES' : 'NO'),
+      new ParsedParam('Lead', <LeadInfoFromId group={workingGroup.type as WorkingGroupKey} leadId={leadId.toNumber()}/>, true)
+    ];
   }
 };
 
@@ -173,14 +290,14 @@ const StyledProposalDescription = styled(Card.Description)`
   font-size: 1.15rem;
 `;
 const ProposalParams = styled.div`
-  display: grid;
-  font-weight: bold;
-  grid-template-columns: min-content 1fr;
-  grid-row-gap: 0.5rem;
   border: 1px solid rgba(0,0,0,.2);
-  padding: 1.5rem 1.5rem 1rem 1.25rem;
+  padding: 1.5rem 2rem 1rem 2rem;
   position: relative;
   margin-top: 1.7rem;
+  display: grid;
+  grid-template-columns: 1fr 1fr;
+  grid-column-gap: 1rem;
+  grid-row-gap: 0.5rem;
   @media screen and (max-width: 767px) {
     grid-template-columns: 1fr;
   }
@@ -194,21 +311,25 @@ const ParamsHeader = styled.h4`
   padding: 0.3rem;
   left: 0.5rem;
 `;
+type ProposalParamProps = { fullWidth?: boolean };
+const ProposalParam = ({ fullWidth, children }: React.PropsWithChildren<ProposalParamProps>) => (
+  <div style={{ gridColumn: (fullWidth || undefined) && '1/3' }}>
+    { children }
+  </div>
+);
 const ProposalParamName = styled.div`
-  margin-right: 1rem;
-  white-space: nowrap;
+  font-size: 0.9rem;
+  font-weight: normal;
 `;
 const ProposalParamValue = styled.div`
   color: black;
   word-wrap: break-word;
   word-break: break-word;
   font-size: 1.15rem;
+  font-weight: bold;
   & .TextProposalContent {
     font-weight: normal;
   }
-  @media screen and (max-width: 767px) {
-    margin-top: -0.25rem;
-  }
 `;
 
 export default function Body ({
@@ -235,15 +356,15 @@ export default function Body ({
         </StyledProposalDescription>
         <ProposalParams>
           <ParamsHeader>Parameters:</ParamsHeader>
-          { Object.entries(parsedParams).map(([paramName, paramValue]) => (
-            <React.Fragment key={paramName}>
-              <ProposalParamName>{paramName}:</ProposalParamName>
-              <ProposalParamValue>{paramValue}</ProposalParamValue>
-            </React.Fragment>
+          { parsedParams.map(({ name, value, fullWidth }) => (
+            <ProposalParam key={name} fullWidth={fullWidth}>
+              <ProposalParamName>{name}:</ProposalParamName>
+              <ProposalParamValue>{value}</ProposalParamValue>
+            </ProposalParam>
           ))}
         </ProposalParams>
         { iAmProposer && isCancellable && (<>
-          <Message warning active>
+          <Message warning visible>
             <Message.Content>
               <Message.Header>Proposal cancellation</Message.Header>
               <p style={{ margin: '0.5em 0', padding: '0' }}>

+ 2 - 12
pioneer/packages/joy-proposals/src/Proposal/ChooseProposalType.tsx

@@ -3,27 +3,17 @@ import ProposalTypePreview from './ProposalTypePreview';
 import { Item, Dropdown } from 'semantic-ui-react';
 
 import { useTransport, usePromise } from '@polkadot/joy-utils/react/hooks';
+import { Categories } from '@polkadot/joy-utils/types/proposals';
 import { PromiseComponent } from '@polkadot/joy-utils/react/components';
 import './ChooseProposalType.css';
 import { RouteComponentProps } from 'react-router-dom';
 
-export const Categories = {
-  storage: 'Storage',
-  council: 'Council',
-  validators: 'Validators',
-  cwg: 'Content Working Group',
-  other: 'Other'
-} as const;
-
-export type Category = typeof Categories[keyof typeof Categories];
-
 export default function ChooseProposalType (props: RouteComponentProps) {
   const transport = useTransport();
 
   const [proposalTypes, error, loading] = usePromise(() => transport.proposals.proposalsTypesParameters(), []);
   const [category, setCategory] = useState('');
 
-  console.log({ proposalTypes, loading, error });
   return (
     <div className="ChooseProposalType">
       <PromiseComponent error={error} loading={loading} message={'Fetching proposals\' parameters...'}>
@@ -39,7 +29,7 @@ export default function ChooseProposalType (props: RouteComponentProps) {
         </div>
         <Item.Group>
           {proposalTypes
-            .filter(typeInfo => !category || typeInfo.category === category)
+            .filter(typeInfo => (!category || typeInfo.category === category) && !typeInfo.outdated)
             .map((typeInfo, idx) => (
               <ProposalTypePreview key={`${typeInfo} - ${idx}`} typeInfo={typeInfo} history={props.history} />
             ))}

+ 5 - 3
pioneer/packages/joy-proposals/src/Proposal/Details.tsx

@@ -1,6 +1,7 @@
 import React from 'react';
-import { Item, Header } from 'semantic-ui-react';
+import { Item, Header, Label } from 'semantic-ui-react';
 import { ParsedProposal } from '@polkadot/joy-utils/types/proposals';
+import { metadata as proposalConsts } from '@polkadot/joy-utils/consts/proposals';
 import { ExtendedProposalStatus } from './ProposalDetails';
 import styled from 'styled-components';
 
@@ -71,7 +72,6 @@ type DetailsProps = {
 export default function Details ({ proposal, extendedStatus, proposerLink = false }: DetailsProps) {
   const { type, createdAt, createdAtBlock, proposer } = proposal;
   const { displayStatus, periodStatus, expiresIn, finalizedAtBlock, executedAtBlock, executionFailReason } = extendedStatus;
-  console.log(proposal);
   return (
     <DetailsContainer>
       <Detail name="Proposed By">
@@ -83,7 +83,9 @@ export default function Details ({ proposal, extendedStatus, proposerLink = fals
         />
         <Item.Extra>{ `${createdAt.toLocaleString()}` }</Item.Extra>
       </Detail>
-      <Detail name="Proposal type" value={type} />
+      <Detail name="Proposal type" value={type}>
+        <Item.Extra>{ proposalConsts[type].outdated && <Label size="small">Outdated proposal type</Label> }</Item.Extra>
+      </Detail>
       <Detail name="Stage" value={displayStatus}>
         <Item.Extra>
           { createdAtBlock && <BlockInfo>Created at block <b>#{ createdAtBlock }</b></BlockInfo> }

+ 1 - 2
pioneer/packages/joy-proposals/src/Proposal/ProposalTypePreview.tsx

@@ -3,8 +3,7 @@ import React from 'react';
 import { History } from 'history';
 import { Item, Icon, Button, Label } from 'semantic-ui-react';
 
-import { Category } from './ChooseProposalType';
-import { ProposalType } from '@polkadot/joy-utils/types/proposals';
+import { ProposalType, Category } from '@polkadot/joy-utils/types/proposals';
 import _ from 'lodash';
 import styled from 'styled-components';
 import useVoteStyles from './useVoteStyles';

+ 10 - 5
pioneer/packages/joy-proposals/src/forms/AddWorkingGroupOpeningForm.tsx

@@ -23,13 +23,13 @@ import { formatBalance } from '@polkadot/util';
 import _ from 'lodash';
 import { IWorkingGroupOpeningPolicyCommitment } from '@joystream/types/working-group';
 import { IAddOpeningParameters } from '@joystream/types/proposals';
-import { WorkingGroupKeys } from '@joystream/types/common';
+import { WorkingGroupKey, InputValidationLengthConstraint } from '@joystream/types/common';
 import { BlockNumber } from '@polkadot/types/interfaces';
 import { withCalls } from '@polkadot/react-api';
 import { SimplifiedTypeInterface } from '@polkadot/joy-utils/types/common';
 import Validation from '../validationSchema';
 
-type FormValues = WGFormValues & {
+export type FormValues = WGFormValues & {
   activateAt: ActivateOpeningAtKey;
   activateAtBlock: string;
   maxReviewPeriodLength: string;
@@ -64,7 +64,7 @@ const defaultValues: FormValues = {
   humanReadableText: ''
 };
 
-const HRTDefault: (memberHandle: string, group: WorkingGroupKeys) => GenericJoyStreamRoleSchema =
+const HRTDefault: (memberHandle: string, group: WorkingGroupKey) => GenericJoyStreamRoleSchema =
   (memberHandle, group) => ({
     version: 1,
     headline: `Looking for ${group} Working Group Leader!`,
@@ -101,6 +101,7 @@ type FormAdditionalProps = {}; // Aditional props coming all the way from export
 type ExportComponentProps = ProposalFormExportProps<FormAdditionalProps, FormValues>;
 type FormContainerProps = ProposalFormContainerProps<ExportComponentProps> & {
   currentBlock?: BlockNumber;
+  HRTConstraint?: InputValidationLengthConstraint;
 };
 type FormInnerProps = ProposalFormInnerProps<FormContainerProps, FormValues>;
 
@@ -344,14 +345,18 @@ const FormContainer = withFormContainer<FormContainerProps, FormValues>({
   }),
   validationSchema: (props: FormContainerProps) => Yup.object().shape({
     ...genericFormDefaultOptions.validationSchema,
-    ...Validation.AddWorkingGroupLeaderOpening(props.currentBlock?.toNumber() || 0)
+    ...Validation.AddWorkingGroupLeaderOpening(
+      props.currentBlock?.toNumber() || 0,
+      props.HRTConstraint || InputValidationLengthConstraint.createWithMaxAllowed()
+    )
   }),
   handleSubmit: genericFormDefaultOptions.handleSubmit,
   displayName: 'AddWorkingGroupOpeningForm'
 })(AddWorkingGroupOpeningForm);
 
 export default withCalls<ExportComponentProps>(
-  ['derive.chain.bestNumber', { propName: 'currentBlock' }]
+  ['derive.chain.bestNumber', { propName: 'currentBlock' }],
+  ['query.storageWorkingGroup.openingHumanReadableText', { propName: 'HRTConstraint' }]
 )(
   withProposalFormData<FormContainerProps, ExportComponentProps>(FormContainer)
 );

+ 118 - 0
pioneer/packages/joy-proposals/src/forms/BeginReviewLeaderApplicationsForm.tsx

@@ -0,0 +1,118 @@
+import React from 'react';
+import * as Yup from 'yup';
+import {
+  withProposalFormData,
+  ProposalFormExportProps,
+  ProposalFormContainerProps,
+  ProposalFormInnerProps,
+  genericFormDefaultOptions
+} from './GenericProposalForm';
+import {
+  GenericWorkingGroupProposalForm,
+  FormValues as WGFormValues,
+  defaultValues as wgFromDefaultValues
+} from './GenericWorkingGroupProposalForm';
+import FormField from './FormFields';
+import { withFormContainer } from './FormContainer';
+import './forms.css';
+import { Dropdown, Message } from 'semantic-ui-react';
+import _ from 'lodash';
+import Validation from '../validationSchema';
+import { useTransport, usePromise } from '@polkadot/joy-utils/react/hooks';
+import { OpeningData } from '@polkadot/joy-utils/types/workingGroups';
+import { PromiseComponent } from '@polkadot/joy-utils/react/components';
+import { getFormErrorLabelsProps } from './errorHandling';
+
+export type FormValues = WGFormValues & {
+  openingId: string;
+};
+
+const defaultValues: FormValues = {
+  ...wgFromDefaultValues,
+  openingId: ''
+};
+
+type FormAdditionalProps = {}; // Aditional props coming all the way from export component into the inner form.
+type ExportComponentProps = ProposalFormExportProps<FormAdditionalProps, FormValues>;
+type FormContainerProps = ProposalFormContainerProps<ExportComponentProps>;
+type FormInnerProps = ProposalFormInnerProps<FormContainerProps, FormValues>;
+
+const BeginReviewLeadeApplicationsForm: React.FunctionComponent<FormInnerProps> = props => {
+  const { handleChange, values, myMemberId, errors, touched } = props;
+  const errorLabelsProps = getFormErrorLabelsProps<FormValues>(errors, touched);
+  const transport = useTransport();
+  const [openings, openingsError, openingsLoading] = usePromise(
+    () => transport.workingGroups.activeOpenings(values.workingGroup, 'AcceptingApplications', 'Leader'),
+    [] as OpeningData[],
+    [values.workingGroup]
+  );
+  const openingsOptions = openings
+    // Map to options
+    .map(od => {
+      const hrt = od.hiringOpening.parse_human_readable_text_with_fallback();
+      return {
+        text: `${od.id.toString()}: ${hrt.headline} (${hrt.job.title})`,
+        value: od.id.toString()
+      };
+    });
+
+  return (
+    <GenericWorkingGroupProposalForm
+      {...props}
+      txMethod="createBeginReviewWorkingGroupLeaderApplicationsProposal"
+      proposalType="BeginReviewWorkingGroupLeaderApplication"
+      disabled={!openingsOptions.length}
+      submitParams={[
+        myMemberId,
+        values.title,
+        values.rationale,
+        '{STAKE}',
+        values.openingId,
+        values.workingGroup
+      ]}
+    >
+      <PromiseComponent error={openingsError} loading={openingsLoading} message="Fetching openings...">
+        { !openingsOptions.length
+          ? (
+            <Message error visible>
+              <Message.Header>No openings available!</Message.Header>
+              <Message.Content>
+                This proposal cannot be created, because no leader openings in <i>Accepting Applications</i> stage are currently available
+                in {values.workingGroup} Working Group.
+              </Message.Content>
+            </Message>
+          )
+          : (
+            <FormField
+              label="Working Group Opening"
+              error={errorLabelsProps.openingId}
+              showErrorMsg>
+              <Dropdown
+                onChange={handleChange}
+                name={'openingId'}
+                selection
+                options={openingsOptions}
+                value={values.openingId}
+              />
+            </FormField>
+          )
+        }
+      </PromiseComponent>
+    </GenericWorkingGroupProposalForm>
+  );
+};
+
+const FormContainer = withFormContainer<FormContainerProps, FormValues>({
+  mapPropsToValues: (props: FormContainerProps) => ({
+    ...defaultValues,
+    ...(props.initialData || {})
+  }),
+  validationSchema: Yup.object().shape({
+    ...genericFormDefaultOptions.validationSchema,
+    ...Validation.BeginReviewWorkingGroupLeaderApplication()
+  }),
+  handleSubmit: genericFormDefaultOptions.handleSubmit,
+  displayName: 'BeginReviewLeadeApplicationsForm'
+})(BeginReviewLeadeApplicationsForm);
+
+export default withProposalFormData<FormContainerProps, ExportComponentProps>(FormContainer);

+ 102 - 0
pioneer/packages/joy-proposals/src/forms/DecreaseWorkingGroupLeadStakeForm.tsx

@@ -0,0 +1,102 @@
+import React, { useState, useEffect } from 'react';
+import { getFormErrorLabelsProps } from './errorHandling';
+import * as Yup from 'yup';
+import {
+  withProposalFormData,
+  ProposalFormExportProps,
+  ProposalFormContainerProps,
+  ProposalFormInnerProps,
+  genericFormDefaultOptions
+} from './GenericProposalForm';
+import {
+  GenericWorkingGroupProposalForm,
+  FormValues as WGFormValues,
+  defaultValues as wgFromDefaultValues
+} from './GenericWorkingGroupProposalForm';
+import { InputFormField } from './FormFields';
+import { withFormContainer } from './FormContainer';
+import './forms.css';
+import { Grid } from 'semantic-ui-react';
+import { formatBalance } from '@polkadot/util';
+import _ from 'lodash';
+import Validation from '../validationSchema';
+import { WorkerData } from '@polkadot/joy-utils/types/workingGroups';
+
+export type FormValues = WGFormValues & {
+  amount: string;
+};
+
+const defaultValues: FormValues = {
+  ...wgFromDefaultValues,
+  amount: ''
+};
+
+type FormAdditionalProps = {}; // Aditional props coming all the way from export component into the inner form.
+type ExportComponentProps = ProposalFormExportProps<FormAdditionalProps, FormValues>;
+type FormContainerProps = ProposalFormContainerProps<ExportComponentProps>;
+type FormInnerProps = ProposalFormInnerProps<FormContainerProps, FormValues>;
+
+const DecreaseWorkingGroupLeadStakeForm: React.FunctionComponent<FormInnerProps> = props => {
+  const { handleChange, errors, touched, values, myMemberId, setFieldError } = props;
+  const errorLabelsProps = getFormErrorLabelsProps<FormValues>(errors, touched);
+  const [lead, setLead] = useState<WorkerData | null>(null);
+
+  // Here we validate if stake <= current lead stake.
+  // Because it depends on selected working group,
+  // there's no easy way to do it using validationSchema
+  useEffect(() => {
+    if (lead && parseInt(values.amount) > (lead.stake || 0) && !errors.amount) {
+      setFieldError('amount', `The stake cannot exceed current leader's stake (${formatBalance(lead.stake)})`);
+    }
+  });
+
+  return (
+    <GenericWorkingGroupProposalForm
+      {...props}
+      txMethod="createDecreaseWorkingGroupLeaderStakeProposal"
+      proposalType="DecreaseWorkingGroupLeaderStake"
+      leadRequired={true}
+      leadStakeRequired={true}
+      onLeadChange={(lead: WorkerData | null) => setLead(lead)}
+      submitParams={[
+        myMemberId,
+        values.title,
+        values.rationale,
+        '{STAKE}',
+        lead?.workerId,
+        values.amount,
+        values.workingGroup
+      ]}
+    >
+      { (lead && lead.stake) && (
+        <Grid columns="4" doubling stackable verticalAlign="bottom">
+          <Grid.Column>
+            <InputFormField
+              label="Amount to decrease"
+              onChange={handleChange}
+              name="amount"
+              error={errorLabelsProps.amount}
+              value={values.amount}
+              unit={formatBalance.getDefaults().unit}
+            />
+          </Grid.Column>
+        </Grid>
+      ) }
+    </GenericWorkingGroupProposalForm>
+  );
+};
+
+const FormContainer = withFormContainer<FormContainerProps, FormValues>({
+  mapPropsToValues: (props: FormContainerProps) => ({
+    ...defaultValues,
+    ...(props.initialData || {})
+  }),
+  validationSchema: Yup.object().shape({
+    ...genericFormDefaultOptions.validationSchema,
+    ...Validation.DecreaseWorkingGroupLeaderStake()
+  }),
+  handleSubmit: genericFormDefaultOptions.handleSubmit,
+  displayName: 'DecreaseWorkingGroupLeadStakeForm'
+})(DecreaseWorkingGroupLeadStakeForm);
+
+export default withProposalFormData<FormContainerProps, ExportComponentProps>(FormContainer);

+ 0 - 88
pioneer/packages/joy-proposals/src/forms/EvictStorageProviderForm.tsx

@@ -1,88 +0,0 @@
-import React from 'react';
-import { getFormErrorLabelsProps } from './errorHandling';
-import * as Yup from 'yup';
-import { Label, Loader } from 'semantic-ui-react';
-import {
-  GenericProposalForm,
-  GenericFormValues,
-  genericFormDefaultOptions,
-  genericFormDefaultValues,
-  withProposalFormData,
-  ProposalFormExportProps,
-  ProposalFormContainerProps,
-  ProposalFormInnerProps
-} from './GenericProposalForm';
-import Validation from '../validationSchema';
-import { FormField } from './FormFields';
-import { withFormContainer } from './FormContainer';
-import { InputAddress } from '@polkadot/react-components/index';
-import { accountIdsToOptions } from '@polkadot/joy-election/utils';
-import { AccountId } from '@polkadot/types/interfaces';
-import { useTransport, usePromise } from '@polkadot/joy-utils/react/hooks';
-import './forms.css';
-
-type FormValues = GenericFormValues & {
-  storageProvider: any;
-};
-
-const defaultValues: FormValues = {
-  ...genericFormDefaultValues,
-  storageProvider: ''
-};
-
-type FormAdditionalProps = {}; // Aditional props coming all the way from export comonent into the inner form.
-type ExportComponentProps = ProposalFormExportProps<FormAdditionalProps, FormValues>;
-type FormContainerProps = ProposalFormContainerProps<ExportComponentProps>;
-type FormInnerProps = ProposalFormInnerProps<FormContainerProps, FormValues>;
-
-const EvictStorageProviderForm: React.FunctionComponent<FormInnerProps> = props => {
-  const { errors, touched, values, setFieldValue } = props;
-  const errorLabelsProps = getFormErrorLabelsProps<FormValues>(errors, touched);
-  const transport = useTransport();
-  const [storageProviders /* error */, , loading] = usePromise<AccountId[]>(() => transport.storageProviders.providers(), []);
-  const storageProvidersOptions = accountIdsToOptions(storageProviders);
-  return (
-    <GenericProposalForm
-      {...props}
-      txMethod="createEvictStorageProviderProposal"
-      proposalType="EvictStorageProvider"
-      submitParams={[props.myMemberId, values.title, values.rationale, '{STAKE}', values.storageProvider]}
-    >
-      {loading ? (
-        <>
-          <Loader active inline style={{ marginRight: '5px' }} /> Fetching storage providers...
-        </>
-      ) : (
-        <FormField
-          error={errorLabelsProps.storageProvider}
-          label="Storage provider"
-          help="The storage provider you propose to evict"
-        >
-          <InputAddress
-            onChange={address => setFieldValue('storageProvider', address)}
-            type="address"
-            placeholder="Select storage provider"
-            value={values.storageProvider}
-            options={storageProvidersOptions}
-          />
-          {errorLabelsProps.storageProvider && <Label {...errorLabelsProps.storageProvider} prompt />}
-        </FormField>
-      )}
-    </GenericProposalForm>
-  );
-};
-
-const FormContainer = withFormContainer<FormContainerProps, FormValues>({
-  mapPropsToValues: (props: FormContainerProps) => ({
-    ...defaultValues,
-    ...(props.initialData || {})
-  }),
-  validationSchema: Yup.object().shape({
-    ...genericFormDefaultOptions.validationSchema,
-    storageProvider: Validation.EvictStorageProvider.storageProvider
-  }),
-  handleSubmit: genericFormDefaultOptions.handleSubmit,
-  displayName: 'EvictStorageProvidersForm'
-})(EvictStorageProviderForm);
-
-export default withProposalFormData<FormContainerProps, ExportComponentProps>(FormContainer);

+ 232 - 0
pioneer/packages/joy-proposals/src/forms/FillWorkingGroupLeaderOpeningForm.tsx

@@ -0,0 +1,232 @@
+import React from 'react';
+import * as Yup from 'yup';
+import {
+  withProposalFormData,
+  ProposalFormExportProps,
+  ProposalFormContainerProps,
+  ProposalFormInnerProps,
+  genericFormDefaultOptions
+} from './GenericProposalForm';
+import {
+  GenericWorkingGroupProposalForm,
+  FormValues as WGFormValues,
+  defaultValues as wgFromDefaultValues
+} from './GenericWorkingGroupProposalForm';
+import { FormField, RewardPolicyFields } from './FormFields';
+import { withFormContainer } from './FormContainer';
+import './forms.css';
+import { Dropdown, DropdownItemProps, Header, Checkbox, Message } from 'semantic-ui-react';
+import _ from 'lodash';
+import Validation from '../validationSchema';
+import { useTransport, usePromise } from '@polkadot/joy-utils/react/hooks';
+import { OpeningData, ParsedApplication } from '@polkadot/joy-utils/types/workingGroups';
+import { PromiseComponent } from '@polkadot/joy-utils/react/components';
+import { formatBalance } from '@polkadot/util';
+import { withCalls } from '@polkadot/react-api';
+import { Option } from '@polkadot/types';
+import { BlockNumber } from '@polkadot/types/interfaces';
+import { u32 as U32, u128 as U128 } from '@polkadot/types/primitive';
+import { getFormErrorLabelsProps } from './errorHandling';
+import { RewardPolicy } from '@joystream/types/working-group';
+import { FillOpeningParameters } from '@joystream/types/proposals';
+import { WorkingGroup } from '@joystream/types/common';
+import { OpeningId, ApplicationId } from '@joystream/types/hiring';
+import { ApplicationsDetails } from '@polkadot/joy-utils/react/components/working-groups/ApplicationDetails';
+
+export type FormValues = WGFormValues & {
+  openingId: string;
+  successfulApplicant: string;
+  includeReward: boolean;
+  rewardAmount: string;
+  rewardNextBlock: string;
+  rewardRecurring: boolean;
+  rewardInterval: string;
+};
+
+const defaultValues: FormValues = {
+  ...wgFromDefaultValues,
+  openingId: '',
+  successfulApplicant: '',
+  includeReward: true,
+  rewardAmount: '',
+  rewardNextBlock: '',
+  rewardRecurring: true,
+  rewardInterval: ''
+};
+
+type FormAdditionalProps = {}; // Aditional props coming all the way from export component into the inner form.
+type ExportComponentProps = ProposalFormExportProps<FormAdditionalProps, FormValues>;
+type FormContainerProps = ProposalFormContainerProps<ExportComponentProps> & {
+  currentBlock?: BlockNumber;
+};
+type FormInnerProps = ProposalFormInnerProps<FormContainerProps, FormValues>;
+
+const valuesToFillOpeningParams = (values: FormValues): FillOpeningParameters => (
+  new FillOpeningParameters({
+    working_group: new WorkingGroup(values.workingGroup),
+    successful_application_id: new ApplicationId(values.successfulApplicant),
+    opening_id: new OpeningId(values.openingId),
+    reward_policy: new (Option.with(RewardPolicy))(
+      values.includeReward
+        ? new RewardPolicy({
+          amount_per_payout: new U128(values.rewardAmount),
+          next_payment_at_block: new U32(values.rewardNextBlock),
+          payout_interval: new (Option.with('BlockNumber'))(
+            values.rewardRecurring ? values.rewardInterval : null
+          ) as Option<BlockNumber>
+        })
+        : null
+    ) as Option<RewardPolicy>
+  })
+);
+
+const FillWorkingGroupLeaderOpeningForm: React.FunctionComponent<FormInnerProps> = props => {
+  const { handleChange, setFieldValue, values, myMemberId, errors, touched } = props;
+  const errorLabelsProps = getFormErrorLabelsProps<FormValues>(errors, touched);
+  const transport = useTransport();
+  const [openings, openingsError, openingsLoading] = usePromise<OpeningData[]>(
+    () => transport.workingGroups.activeOpenings(values.workingGroup, 'ReviewPeriod', 'Leader'),
+    [],
+    [values.workingGroup]
+  );
+  const openingsOptions: DropdownItemProps[] = openings
+    // Map to options
+    .map(od => {
+      const hrt = od.hiringOpening.parse_human_readable_text_with_fallback();
+      return {
+        text: `${od.id.toString()}: ${hrt.headline} (${hrt.job.title})`,
+        value: od.id.toString()
+      };
+    });
+  const [activeApplications, applError, applLoading] = usePromise<ParsedApplication[]>(
+    () => values.openingId !== ''
+      ? transport.workingGroups.openingActiveApplications(values.workingGroup, parseInt(values.openingId))
+      : new Promise((resolve, reject) => resolve([] as ParsedApplication[])),
+    [],
+    [values.workingGroup, values.openingId]
+  );
+  const applicationsOptions = activeApplications
+    .map(a => {
+      return {
+        text: `${a.wgApplicationId}: ${a.member.handle}`,
+        image: a.member.avatar_uri.toString() ? { avatar: true, src: a.member.avatar_uri.toString() } : undefined,
+        description:
+          (a.stakes.application ? `Appl. stake: ${formatBalance(a.stakes.application)}` : '') +
+          (a.stakes.role ? (a.stakes.application && ', ') + `Role stake: ${formatBalance(a.stakes.role)}` : ''),
+        value: a.wgApplicationId.toString()
+      };
+    });
+
+  return (
+    <GenericWorkingGroupProposalForm
+      {...props}
+      txMethod="createFillWorkingGroupLeaderOpeningProposal"
+      proposalType="FillWorkingGroupLeaderOpening"
+      disabled={!openingsOptions.length || !applicationsOptions.length}
+      submitParams={[
+        myMemberId,
+        values.title,
+        values.rationale,
+        '{STAKE}',
+        valuesToFillOpeningParams(values)
+      ]}
+    >
+      <PromiseComponent error={openingsError} loading={openingsLoading} message="Fetching openings...">
+        { !openingsOptions.length
+          ? (
+            <Message error visible>
+              <Message.Header>No openings available!</Message.Header>
+              <Message.Content>
+                This proposal cannot be created, because no leader openings in <i>Review Period</i> are currently available
+                in {values.workingGroup} Working Group.
+              </Message.Content>
+            </Message>
+          )
+          : (
+            <FormField
+              label="Working Group Opening"
+              error={errorLabelsProps.openingId}>
+              <Dropdown
+                onChange={(...args) => {
+                  setFieldValue('successfulApplicants', []);
+                  // "as any" assert is required due to some invalid typing of Formik's "handleChange" function (it takes 2 args, not 1)
+                  return (handleChange as any)(...args);
+                }}
+                placeholder={'Select an opening'}
+                name={'openingId'}
+                selection
+                options={openingsOptions}
+                value={values.openingId}
+              />
+            </FormField>
+          )
+        }
+      </PromiseComponent>
+      { values.openingId && (
+        <PromiseComponent error={applError} loading={applLoading} message="Fetching applications...">
+          { !applicationsOptions.length
+            ? (
+              <Message error visible>
+                <Message.Header>No applications available!</Message.Header>
+                <Message.Content>
+                  FillWorkingGroupLeaderOpening proposal cannot be created for this opening,
+                  because there are no active applications to select from.
+                </Message.Content>
+              </Message>
+            )
+            : (
+              <>
+                <FormField
+                  label="Successful applicant"
+                  error={errorLabelsProps.successfulApplicant}>
+                  <Dropdown
+                    placeholder="Select successful applicant"
+                    fluid
+                    selection
+                    options={applicationsOptions}
+                    value={values.successfulApplicant}
+                    onChange={handleChange}
+                    name="successfulApplicant"/>
+                </FormField>
+                {values.successfulApplicant && (<>
+                  <Header as="h3">Selected applicant:</Header>
+                  <ApplicationsDetails applications={
+                    [activeApplications.find(a => a.wgApplicationId.toString() === values.successfulApplicant)!]
+                  }/>
+                  <Header as="h3">Reward policy:</Header>
+                  <FormField>
+                    <Checkbox
+                      toggle
+                      onChange={(e, data) => { setFieldValue('includeReward', data.checked); }}
+                      label={'Include reward'}
+                      checked={values.includeReward}/>
+                  </FormField>
+                  { values.includeReward && <RewardPolicyFields {...{ values, errorLabelsProps, handleChange, setFieldValue }}/> }
+                </>)}
+              </>
+            )
+          }
+        </PromiseComponent>
+      ) }
+    </GenericWorkingGroupProposalForm>
+  );
+};
+
+const FormContainer = withFormContainer<FormContainerProps, FormValues>({
+  mapPropsToValues: (props: FormContainerProps) => ({
+    ...defaultValues,
+    ...(props.initialData || {})
+  }),
+  validationSchema: (props: FormContainerProps) => Yup.object().shape({
+    ...genericFormDefaultOptions.validationSchema,
+    ...Validation.FillWorkingGroupLeaderOpening(props.currentBlock?.toNumber() || 0)
+  }),
+  handleSubmit: genericFormDefaultOptions.handleSubmit,
+  displayName: 'FillWorkingGroupLeaderOpeningForm'
+})(FillWorkingGroupLeaderOpeningForm);
+
+export default withCalls<ExportComponentProps>(
+  ['derive.chain.bestNumber', { propName: 'currentBlock' }]
+)(
+  withProposalFormData<FormContainerProps, ExportComponentProps>(FormContainer)
+);

+ 82 - 11
pioneer/packages/joy-proposals/src/forms/FormFields.tsx

@@ -1,6 +1,10 @@
 import React from 'react';
-import { Form, FormInputProps, FormTextAreaProps } from 'semantic-ui-react';
+import { Form, FormInputProps, FormTextAreaProps, Label, LabelProps, Checkbox } from 'semantic-ui-react';
+import { FormikProps } from 'formik';
 import LabelWithHelp from './LabelWithHelp';
+import { FormErrorLabelsProps } from './errorHandling';
+import { formatBalance } from '@polkadot/util';
+import styled from 'styled-components';
 
 /*
  * Generic form field components
@@ -10,16 +14,17 @@ import LabelWithHelp from './LabelWithHelp';
  * and to easily switch the structure/display of a typical form field.
 */
 
-type InputFormFieldProps = FormInputProps & {
+type InputFormFieldProps = Omit<FormInputProps, 'error'> & {
   help?: string;
   unit?: string;
+  error?: LabelProps;
 };
 
 export function InputFormField (props: InputFormFieldProps) {
   const { unit } = props;
-  const fieldProps = { ...props, label: undefined };
+  const fieldProps = { ...props, label: undefined, error: undefined };
   return (
-    <FormField {...props}>
+    <FormField {...props} showErrorMsg={true}>
       <Form.Input
         {...fieldProps}
         style={ unit ? { display: 'flex', alignItems: 'center' } : undefined }>
@@ -30,31 +35,97 @@ export function InputFormField (props: InputFormFieldProps) {
   );
 }
 
-type TextareaFormFieldProps = FormTextAreaProps & {
+type TextareaFormFieldProps = Omit<FormTextAreaProps, 'error'> & {
   help?: string;
+  error?: LabelProps;
 };
 
 export function TextareaFormField (props: TextareaFormFieldProps) {
-  const fieldProps = { ...props, label: undefined };
+  const fieldProps = { ...props, label: undefined, error: undefined };
   return (
-    <FormField {...props}>
+    <FormField {...props} showErrorMsg={true}>
       <Form.TextArea {...fieldProps}/>
     </FormField>
   );
 }
 
-type FormFieldProps = InputFormFieldProps | TextareaFormFieldProps;
+type FormFieldProps = Omit<(InputFormFieldProps | TextareaFormFieldProps), 'error'> & {
+  error?: LabelProps;
+  showErrorMsg?: boolean;
+};
+
+const StyledFormField = styled(Form.Field)`
+  & .field {
+    margin-bottom: 0 !important;
+  }
+`;
 
 export function FormField (props: React.PropsWithChildren<FormFieldProps>) {
-  const { error, label, help, children } = props;
+  const { error, showErrorMsg = false, label, help, children } = props;
   return (
-    <Form.Field error={Boolean(error)}>
+    <StyledFormField error={!!error}>
       { (label && help)
         ? <LabelWithHelp text={ label.toString() } help={ help }/>
         : (label ? <label>{ label.toString() }</label> : null)
       }
       { children }
-    </Form.Field>
+      { Boolean(showErrorMsg && error) && <Label {...error} prompt/> }
+    </StyledFormField>
+  );
+}
+
+type ReawrdPolicyFieldsType = {
+  rewardAmount: string;
+  rewardNextBlock: string;
+  rewardRecurring: boolean;
+  rewardInterval: string;
+}
+type RewardPolicyFieldsProps<ValuesT extends ReawrdPolicyFieldsType> =
+  Pick<FormikProps<ValuesT>, 'values' | 'handleChange' | 'setFieldValue'> & {
+    errorLabelsProps: FormErrorLabelsProps<ValuesT>;
+  };
+export function RewardPolicyFields<ValuesT extends ReawrdPolicyFieldsType> ({
+  values,
+  errorLabelsProps,
+  handleChange,
+  setFieldValue
+}: RewardPolicyFieldsProps<ValuesT>) {
+  return (
+    <>
+      <InputFormField
+        label="Amount per payout"
+        unit={formatBalance.getDefaults().unit}
+        onChange={handleChange}
+        name={'rewardAmount'}
+        error={errorLabelsProps.rewardAmount}
+        value={values.rewardAmount}
+        placeholder={'ie. 100'}
+      />
+      <InputFormField
+        label="Next payment at block"
+        onChange={handleChange}
+        name={'rewardNextBlock'}
+        error={errorLabelsProps.rewardNextBlock}
+        value={values.rewardNextBlock}
+      />
+      <FormField>
+        <Checkbox
+          toggle
+          onChange={(e, data) => { setFieldValue('rewardRecurring', data.checked); }}
+          label={'Recurring'}
+          checked={values.rewardRecurring}/>
+      </FormField>
+      { values.rewardRecurring && (
+        <InputFormField
+          label="Reward interval"
+          onChange={handleChange}
+          name={'rewardInterval'}
+          error={errorLabelsProps.rewardInterval}
+          value={values.rewardInterval}
+          unit={'Blocks'}
+        />
+      ) }
+    </>
   );
 }
 

+ 5 - 6
pioneer/packages/joy-proposals/src/forms/GenericProposalForm.tsx

@@ -49,6 +49,7 @@ type GenericProposalFormAdditionalProps = {
   txMethod?: string;
   submitParams?: any[];
   proposalType?: ProposalType;
+  disabled?: boolean;
 };
 
 type GenericFormContainerProps = ProposalFormContainerProps<
@@ -66,10 +67,7 @@ export const genericFormDefaultOptions: GenericFormDefaultOptions = {
     ...(props.initialData || {})
   }),
   validationSchema: {
-
-    title: Validation.All.title,
-    rationale: Validation.All.rationale
-
+    ...Validation.All()
   },
   handleSubmit: (values, { setSubmitting, resetForm }) => {
     // This is handled via TxButton
@@ -96,7 +94,8 @@ export const GenericProposalForm: React.FunctionComponent<GenericFormInnerProps>
     setSubmitting,
     history,
     balances_totalIssuance,
-    proposalType
+    proposalType,
+    disabled = false
   } = props;
   const errorLabelsProps = getFormErrorLabelsProps<GenericFormValues>(errors, touched);
   const [afterSubmit, setAfterSubmit] = useState(null as (() => () => void) | null);
@@ -198,7 +197,7 @@ export const GenericProposalForm: React.FunctionComponent<GenericFormInnerProps>
               type="button" // Tx button uses custom submit handler - "onTxButtonClick"
               label="Submit proposal"
               icon="paper plane"
-              isDisabled={isSubmitting}
+              isDisabled={disabled || isSubmitting}
               params={(submitParams || []).map(p => (p === '{STAKE}' ? requiredStake : p))}
               tx={`proposalsCodex.${txMethod}`}
               txFailedCb={onTxFailed}

+ 47 - 14
pioneer/packages/joy-proposals/src/forms/GenericWorkingGroupProposalForm.tsx

@@ -10,15 +10,16 @@ import {
 } from './GenericProposalForm';
 import { FormField } from './FormFields';
 import { ProposalType } from '@polkadot/joy-utils/types/proposals';
-import { WorkingGroupKeys, WorkingGroupDef } from '@joystream/types/common';
+import { WorkingGroupKey, WorkingGroupDef } from '@joystream/types/common';
 import './forms.css';
 import { Dropdown, Message } from 'semantic-ui-react';
 import { usePromise, useTransport } from '@polkadot/joy-utils/react/hooks';
 import { PromiseComponent } from '@polkadot/joy-utils/react/components';
-import { ProfilePreviewFromStruct as MemberPreview } from '@polkadot/joy-utils/MemberProfilePreview';
+import { WorkerData } from '@polkadot/joy-utils/types/workingGroups';
+import { LeadInfo } from '@polkadot/joy-utils/react/components/working-groups/LeadInfo';
 
 export type FormValues = GenericFormValues & {
-  workingGroup: WorkingGroupKeys;
+  workingGroup: WorkingGroupKey;
 };
 
 export const defaultValues: FormValues = {
@@ -32,6 +33,11 @@ type FormAdditionalProps = {
   submitParams: any[];
   proposalType: ProposalType;
   showLead?: boolean;
+  leadRequired?: boolean;
+  leadStakeRequired?: boolean;
+  leadRewardRequired?: boolean;
+  onLeadChange?: (lead: WorkerData | null) => void;
+  disabled?: boolean;
 };
 
 // We don't exactly use "container" and "export" components here, but those types are useful for
@@ -41,18 +47,34 @@ type FormContainerProps = ProposalFormContainerProps<ExportComponentProps>;
 export type FormInnerProps = ProposalFormInnerProps<FormContainerProps, FormValues>;
 
 export const GenericWorkingGroupProposalForm: React.FunctionComponent<FormInnerProps> = props => {
-  const { handleChange, errors, touched, values, showLead = true } = props;
+  const {
+    handleChange,
+    errors,
+    touched,
+    values,
+    showLead = true,
+    leadRequired = false,
+    leadStakeRequired = false,
+    leadRewardRequired = false,
+    onLeadChange,
+    disabled = false
+  } = props;
   const transport = useTransport();
   const [lead, error, loading] = usePromise(
     () => transport.workingGroups.currentLead(values.workingGroup),
     null,
-    [values.workingGroup]
+    [values.workingGroup],
+    onLeadChange
   );
   const leadRes = { lead, error, loading };
+  const leadMissing = leadRequired && (!leadRes.loading && !leadRes.error) && !leadRes.lead;
+  const stakeMissing = leadStakeRequired && (!leadRes.loading && !leadRes.error) && (leadRes.lead && !leadRes.lead.stake);
+  const rewardMissing = leadRewardRequired && (!leadRes.loading && !leadRes.error) && (leadRes.lead && !leadRes.lead.reward);
+  const isDisabled = disabled || leadMissing || stakeMissing || rewardMissing || leadRes.error;
 
   const errorLabelsProps = getFormErrorLabelsProps<FormValues>(errors, touched);
   return (
-    <GenericProposalForm {...props}>
+    <GenericProposalForm {...props} disabled={isDisabled}>
       <FormField
         error={errorLabelsProps.workingGroup}
         label="Working group"
@@ -68,16 +90,27 @@ export const GenericWorkingGroupProposalForm: React.FunctionComponent<FormInnerP
       </FormField>
       { showLead && (
         <PromiseComponent message={'Fetching current lead...'} {...leadRes}>
-          <Message info>
-            <Message.Content>
-              <Message.Header>Current {values.workingGroup} Working Group lead:</Message.Header>
-              <div style={{ padding: '0.5rem 0' }}>
-                { leadRes.lead ? <MemberPreview profile={leadRes.lead.profile} /> : 'NONE' }
-              </div>
-            </Message.Content>
-          </Message>
+          <LeadInfo lead={leadRes.lead} group={values.workingGroup} header={true}/>
         </PromiseComponent>
       ) }
+      { leadMissing && (
+        <Message error visible>
+          <Message.Header>Leader required</Message.Header>
+          Selected working group has no active leader. An active leader is required in order to create this proposal.
+        </Message>
+      ) }
+      { stakeMissing && (
+        <Message error visible>
+          <Message.Header>No role stake</Message.Header>
+          Selected working group leader has no associated role stake, which is required in order to create this proposal.
+        </Message>
+      ) }
+      { rewardMissing && (
+        <Message error visible>
+          <Message.Header>No reward relationship</Message.Header>
+          Selected working group leader has no reward relationship, which is required in order to create this proposal.
+        </Message>
+      ) }
       { props.children }
     </GenericProposalForm>
   );

+ 2 - 2
pioneer/packages/joy-proposals/src/forms/MintCapacityForm.tsx

@@ -18,7 +18,7 @@ import { ProposalType } from '@polkadot/joy-utils/types/proposals';
 import { formatBalance } from '@polkadot/util';
 import './forms.css';
 
-type FormValues = GenericFormValues & {
+export type FormValues = GenericFormValues & {
   capacity: string;
 };
 
@@ -70,7 +70,7 @@ const FormContainer = withFormContainer<FormContainerProps, FormValues>({
   }),
   validationSchema: Yup.object().shape({
     ...genericFormDefaultOptions.validationSchema,
-    capacity: Validation.SetContentWorkingGroupMintCapacity.mintCapacity
+    ...Validation.SetContentWorkingGroupMintCapacity()
   }),
   handleSubmit: genericFormDefaultOptions.handleSubmit,
   displayName: 'MintCapacityForm'

+ 2 - 2
pioneer/packages/joy-proposals/src/forms/RuntimeUpgradeForm.tsx

@@ -16,7 +16,7 @@ import { withFormContainer } from './FormContainer';
 import './forms.css';
 import FileDropdown from './FileDropdown';
 
-type FormValues = GenericFormValues & {
+export type FormValues = GenericFormValues & {
   // wasm blob as ArrayBuffer, or an Error string
   WASM: ArrayBuffer | string;
 };
@@ -62,7 +62,7 @@ const FormContainer = withFormContainer<FormContainerProps, FormValues>({
   }),
   validationSchema: Yup.object().shape({
     ...genericFormDefaultOptions.validationSchema,
-    WASM: Validation.RuntimeUpgrade.WASM
+    ...Validation.RuntimeUpgrade()
   }),
   handleSubmit: genericFormDefaultOptions.handleSubmit,
   displayName: 'RuntimeUpgradeForm'

+ 4 - 3
pioneer/packages/joy-proposals/src/forms/SetContentWorkingGroupLeadForm.tsx

@@ -21,7 +21,7 @@ import { PromiseComponent } from '@polkadot/joy-utils/react/components';
 import _ from 'lodash';
 import './forms.css';
 
-type FormValues = GenericFormValues & {
+export type FormValues = GenericFormValues & {
   workingGroupLead: any;
 };
 
@@ -120,7 +120,8 @@ const SetContentWorkingGroupsLeadForm: React.FunctionComponent<FormInnerProps> =
             label="New Content Working Group Lead"
             help={
               'The member you propose to set as a new Content Working Group Lead. ' +
-              'Start typing handle or use "id:[ID]" query.'
+              'Start typing handle or use "id:[ID]" query. ' +
+              'Current council members are not allowed to be selected and are excluded from the list.'
             }
           >
             {
@@ -178,7 +179,7 @@ const FormContainer = withFormContainer<FormContainerProps, FormValues>({
   }),
   validationSchema: Yup.object().shape({
     ...genericFormDefaultOptions.validationSchema,
-    workingGroupLead: Validation.SetLead.workingGroupLead
+    ...Validation.SetLead()
   }),
   handleSubmit: genericFormDefaultOptions.handleSubmit,
   displayName: 'SetContentWorkingGroupLeadForm'

+ 2 - 9
pioneer/packages/joy-proposals/src/forms/SetCouncilParamsForm.tsx

@@ -22,7 +22,7 @@ import _ from 'lodash';
 import { ElectionParameters } from '@joystream/types/council';
 import { PromiseComponent } from '@polkadot/joy-utils/react/components';
 
-type FormValues = GenericFormValues & {
+export type FormValues = GenericFormValues & {
   announcingPeriod: string;
   votingPeriod: string;
   minVotingStake: string;
@@ -203,14 +203,7 @@ const FormContainer = withFormContainer<FormContainerProps, FormValues>({
   }),
   validationSchema: Yup.object().shape({
     ...genericFormDefaultOptions.validationSchema,
-    announcingPeriod: Validation.SetElectionParameters.announcingPeriod,
-    votingPeriod: Validation.SetElectionParameters.votingPeriod,
-    minVotingStake: Validation.SetElectionParameters.minVotingStake,
-    revealingPeriod: Validation.SetElectionParameters.revealingPeriod,
-    minCouncilStake: Validation.SetElectionParameters.minCouncilStake,
-    newTermDuration: Validation.SetElectionParameters.newTermDuration,
-    candidacyLimit: Validation.SetElectionParameters.candidacyLimit,
-    councilSize: Validation.SetElectionParameters.councilSize
+    ...Validation.SetElectionParameters()
   }),
   handleSubmit: genericFormDefaultOptions.handleSubmit,
   displayName: 'SetCouncilParamsForm'

+ 3 - 3
pioneer/packages/joy-proposals/src/forms/SetMaxValidatorCountForm.tsx

@@ -17,7 +17,7 @@ import { withFormContainer } from './FormContainer';
 import { useTransport, usePromise } from '@polkadot/joy-utils/react/hooks';
 import './forms.css';
 
-type FormValues = GenericFormValues & {
+export type FormValues = GenericFormValues & {
   maxValidatorCount: string;
 };
 
@@ -33,7 +33,7 @@ type FormInnerProps = ProposalFormInnerProps<FormContainerProps, FormValues>;
 
 const SetMaxValidatorCountForm: React.FunctionComponent<FormInnerProps> = props => {
   const transport = useTransport();
-  const [validatorCount] = usePromise<number>(() => transport.validators.maxCount(), NaN);
+  const [validatorCount] = usePromise<number>(() => transport.validators.maxCount(), 20);
   const { handleChange, errors, touched, values, setFieldValue } = props;
   const errorLabelsProps = getFormErrorLabelsProps<FormValues>(errors, touched);
 
@@ -69,7 +69,7 @@ const FormContainer = withFormContainer<FormContainerProps, FormValues>({
   }),
   validationSchema: Yup.object().shape({
     ...genericFormDefaultOptions.validationSchema,
-    maxValidatorCount: Validation.SetValidatorCount.maxValidatorCount
+    ...Validation.SetValidatorCount()
   }),
   handleSubmit: genericFormDefaultOptions.handleSubmit,
   displayName: 'SetMaxValidatorCountForm'

+ 0 - 256
pioneer/packages/joy-proposals/src/forms/SetStorageRoleParamsForm.tsx

@@ -1,256 +0,0 @@
-import React, { useState, useEffect } from 'react';
-import { Form, Divider } from 'semantic-ui-react';
-import { getFormErrorLabelsProps } from './errorHandling';
-import * as Yup from 'yup';
-import {
-  GenericProposalForm,
-  GenericFormValues,
-  genericFormDefaultOptions,
-  genericFormDefaultValues,
-  withProposalFormData,
-  ProposalFormExportProps,
-  ProposalFormContainerProps,
-  ProposalFormInnerProps
-} from './GenericProposalForm';
-import Validation from '../validationSchema';
-import { InputFormField } from './FormFields';
-import { withFormContainer } from './FormContainer';
-import { BlockNumber, Balance } from '@polkadot/types/interfaces';
-import { u32 } from '@polkadot/types/primitive';
-import { createType } from '@polkadot/types';
-import { useTransport, usePromise } from '@polkadot/joy-utils/react/hooks';
-import { StorageRoleParameters, IStorageRoleParameters } from '@polkadot/joy-utils/types/storageProviders';
-import { formatBalance } from '@polkadot/util';
-import './forms.css';
-
-// Move to joy-types?
-type RoleParameters = {
-  min_stake: Balance;
-  min_actors: u32;
-  max_actors: u32;
-  reward: Balance;
-  reward_period: BlockNumber;
-  bonding_period: BlockNumber;
-  unbonding_period: BlockNumber;
-  min_service_period: BlockNumber;
-  startup_grace_period: BlockNumber;
-  entry_request_fee: Balance;
-};
-
-// All of those are strings, because that's how those values are beeing passed from inputs
-type FormValues = GenericFormValues &
-{
-  [K in keyof RoleParameters]: string;
-};
-
-const defaultValues: FormValues = {
-  ...genericFormDefaultValues,
-  min_stake: '',
-  min_actors: '',
-  max_actors: '',
-  reward: '',
-  reward_period: '',
-  bonding_period: '',
-  unbonding_period: '',
-  min_service_period: '',
-  startup_grace_period: '',
-  entry_request_fee: ''
-};
-
-type FormAdditionalProps = {}; // Aditional props coming all the way from export comonent into the inner form.
-type ExportComponentProps = ProposalFormExportProps<FormAdditionalProps, FormValues>;
-type FormContainerProps = ProposalFormContainerProps<ExportComponentProps>;
-type FormInnerProps = ProposalFormInnerProps<FormContainerProps, FormValues>;
-
-function createRoleParameters (values: FormValues): RoleParameters {
-  return {
-    min_stake: createType('Balance', values.min_stake),
-    min_actors: createType('u32', values.min_actors),
-    max_actors: createType('u32', values.max_actors),
-    reward: createType('Balance', values.reward),
-    reward_period: createType('BlockNumber', values.reward_period),
-    bonding_period: createType('BlockNumber', values.bonding_period),
-    unbonding_period: createType('BlockNumber', values.unbonding_period),
-    min_service_period: createType('BlockNumber', values.min_service_period),
-    startup_grace_period: createType('BlockNumber', values.startup_grace_period),
-    entry_request_fee: createType('Balance', values.entry_request_fee)
-  };
-}
-
-const SetStorageRoleParamsForm: React.FunctionComponent<FormInnerProps> = props => {
-  const transport = useTransport();
-  const [params] = usePromise<IStorageRoleParameters | null>(() => transport.storageProviders.roleParameters(), null);
-  const { handleChange, errors, touched, values, setFieldValue } = props;
-  const [placeholders, setPlaceholders] = useState<{ [k in keyof FormValues]: string }>(defaultValues);
-  const errorLabelsProps = getFormErrorLabelsProps<FormValues>(errors, touched);
-
-  useEffect(() => {
-    if (params) {
-      const stringParams = Object.keys(params).reduce((obj, key) => {
-        return { ...obj, [`${key}`]: String(params[key as keyof IStorageRoleParameters]) };
-      }, {});
-      const fetchedPlaceholders = { ...placeholders, ...stringParams };
-
-      StorageRoleParameters.forEach(field => {
-        setFieldValue(field, params[field].toString());
-      });
-      setPlaceholders(fetchedPlaceholders);
-    }
-  }, [params]);
-
-  return (
-    <GenericProposalForm
-      {...props}
-      txMethod="createSetStorageRoleParametersProposal"
-      proposalType="SetStorageRoleParameters"
-      submitParams={[props.myMemberId, values.title, values.rationale, '{STAKE}', createRoleParameters(values)]}
-    >
-      <Divider horizontal>Parameters</Divider>
-      <Form.Group widths="equal" style={{ marginBottom: '2em' }}>
-        <InputFormField
-          label="Min. actors"
-          help="Minimum number of actors in this role"
-          onChange={handleChange}
-          name="min_actors"
-          placeholder={placeholders.min_actors}
-          error={errorLabelsProps.min_actors}
-          value={values.min_actors}
-          disabled
-        />
-        <InputFormField
-          label="Max. actors"
-          help="Maximum number of actors in this role"
-          fluid
-          onChange={handleChange}
-          name="max_actors"
-          placeholder={placeholders.max_actors}
-          error={errorLabelsProps.max_actors}
-          value={values.max_actors}
-        />
-      </Form.Group>
-      <Form.Group widths="equal" style={{ marginBottom: '2em' }}>
-        <InputFormField
-          label="Reward"
-          help="Reward for performing this role (for each period)"
-          fluid
-          onChange={handleChange}
-          name="reward"
-          placeholder={placeholders.reward}
-          error={errorLabelsProps.reward}
-          value={values.reward}
-          unit={ formatBalance.getDefaults().unit }
-        />
-        <InputFormField
-          label="Reward period"
-          help="Reward period in blocks"
-          fluid
-          onChange={handleChange}
-          name="reward_period"
-          placeholder={placeholders.reward_period}
-          error={errorLabelsProps.reward_period}
-          value={values.reward_period}
-          unit="blocks"
-          disabled
-        />
-      </Form.Group>
-      <Form.Group widths="equal" style={{ marginBottom: '2em' }}>
-        <InputFormField
-          label="Min. stake"
-          help="Minimum stake for this role"
-          onChange={handleChange}
-          name="min_stake"
-          placeholder={placeholders.min_stake}
-          error={errorLabelsProps.min_stake}
-          value={values.min_stake}
-          unit={ formatBalance.getDefaults().unit }
-        />
-        <InputFormField
-          label="Min. service period"
-          help="Minimum period of service in blocks"
-          fluid
-          onChange={handleChange}
-          name="min_service_period"
-          placeholder={placeholders.min_service_period}
-          error={errorLabelsProps.min_service_period}
-          value={values.min_service_period}
-          unit="blocks"
-          disabled
-        />
-      </Form.Group>
-      <Form.Group widths="equal" style={{ marginBottom: '2em' }}>
-        <InputFormField
-          label="Bonding period"
-          help="Bonding period in blocks"
-          fluid
-          onChange={handleChange}
-          name="bonding_period"
-          placeholder={placeholders.bonding_period}
-          error={errorLabelsProps.bonding_period}
-          value={values.bonding_period}
-          unit="blocks"
-          disabled
-        />
-        <InputFormField
-          label="Unbounding period"
-          help="Unbounding period in blocks"
-          fluid
-          onChange={handleChange}
-          name="unbonding_period"
-          placeholder={placeholders.unbonding_period}
-          error={errorLabelsProps.unbonding_period}
-          value={values.unbonding_period}
-          unit="blocks"
-        />
-      </Form.Group>
-      <Form.Group widths="equal" style={{ marginBottom: '2em' }}>
-        <InputFormField
-          label="Startup grace period"
-          help="Startup grace period in blocks"
-          fluid
-          onChange={handleChange}
-          name="startup_grace_period"
-          placeholder={placeholders.startup_grace_period}
-          error={errorLabelsProps.startup_grace_period}
-          value={values.startup_grace_period}
-          unit="blocks"
-          disabled
-        />
-        <InputFormField
-          label="Entry request fee"
-          help="Entry request fee"
-          fluid
-          onChange={handleChange}
-          name="entry_request_fee"
-          placeholder={placeholders.entry_request_fee}
-          error={errorLabelsProps.entry_request_fee}
-          value={values.entry_request_fee}
-          unit={ formatBalance.getDefaults().unit }
-        />
-      </Form.Group>
-    </GenericProposalForm>
-  );
-};
-
-const FormContainer = withFormContainer<FormContainerProps, FormValues>({
-  mapPropsToValues: (props: FormContainerProps) => ({
-    ...defaultValues,
-    ...(props.initialData || {})
-  }),
-  validationSchema: Yup.object().shape({
-    ...genericFormDefaultOptions.validationSchema,
-    min_stake: Validation.SetStorageRoleParameters.min_stake,
-    min_actors: Validation.SetStorageRoleParameters.min_actors,
-    max_actors: Validation.SetStorageRoleParameters.max_actors,
-    reward: Validation.SetStorageRoleParameters.reward,
-    reward_period: Validation.SetStorageRoleParameters.reward_period,
-    bonding_period: Validation.SetStorageRoleParameters.bonding_period,
-    unbonding_period: Validation.SetStorageRoleParameters.unbonding_period,
-    min_service_period: Validation.SetStorageRoleParameters.min_service_period,
-    startup_grace_period: Validation.SetStorageRoleParameters.startup_grace_period,
-    entry_request_fee: Validation.SetStorageRoleParameters.entry_request_fee
-  }),
-  handleSubmit: genericFormDefaultOptions.handleSubmit,
-  displayName: 'SetStorageRoleParamsForm'
-})(SetStorageRoleParamsForm);
-
-export default withProposalFormData(FormContainer);

+ 93 - 0
pioneer/packages/joy-proposals/src/forms/SetWorkingGroupLeadRewardForm.tsx

@@ -0,0 +1,93 @@
+import React, { useState } from 'react';
+import { getFormErrorLabelsProps } from './errorHandling';
+import * as Yup from 'yup';
+import {
+  withProposalFormData,
+  ProposalFormExportProps,
+  ProposalFormContainerProps,
+  ProposalFormInnerProps,
+  genericFormDefaultOptions
+} from './GenericProposalForm';
+import {
+  GenericWorkingGroupProposalForm,
+  FormValues as WGFormValues,
+  defaultValues as wgFromDefaultValues
+} from './GenericWorkingGroupProposalForm';
+import { InputFormField } from './FormFields';
+import { withFormContainer } from './FormContainer';
+import './forms.css';
+import { Grid } from 'semantic-ui-react';
+import { formatBalance } from '@polkadot/util';
+import _ from 'lodash';
+import Validation from '../validationSchema';
+import { WorkerData } from '@polkadot/joy-utils/types/workingGroups';
+
+export type FormValues = WGFormValues & {
+  amount: string;
+};
+
+const defaultValues: FormValues = {
+  ...wgFromDefaultValues,
+  amount: ''
+};
+
+type FormAdditionalProps = {}; // Aditional props coming all the way from export component into the inner form.
+type ExportComponentProps = ProposalFormExportProps<FormAdditionalProps, FormValues>;
+type FormContainerProps = ProposalFormContainerProps<ExportComponentProps>;
+type FormInnerProps = ProposalFormInnerProps<FormContainerProps, FormValues>;
+
+const SetWorkingGroupLeadRewardForm: React.FunctionComponent<FormInnerProps> = props => {
+  const { handleChange, errors, touched, values, myMemberId } = props;
+  const errorLabelsProps = getFormErrorLabelsProps<FormValues>(errors, touched);
+  const [lead, setLead] = useState<WorkerData | null>(null);
+
+  return (
+    <GenericWorkingGroupProposalForm
+      {...props}
+      txMethod="createSetWorkingGroupLeaderRewardProposal"
+      proposalType="SetWorkingGroupLeaderReward"
+      leadRequired={true}
+      leadRewardRequired={true}
+      onLeadChange={(lead: WorkerData | null) => setLead(lead)}
+      submitParams={[
+        myMemberId,
+        values.title,
+        values.rationale,
+        '{STAKE}',
+        lead?.workerId,
+        values.amount,
+        values.workingGroup
+      ]}
+    >
+      { (lead && lead.reward) && (
+        <Grid columns="4" doubling stackable verticalAlign="bottom">
+          <Grid.Column>
+            <InputFormField
+              label="New reward amount"
+              onChange={handleChange}
+              name="amount"
+              error={errorLabelsProps.amount}
+              value={values.amount}
+              unit={formatBalance.getDefaults().unit}
+            />
+          </Grid.Column>
+        </Grid>
+      ) }
+    </GenericWorkingGroupProposalForm>
+  );
+};
+
+const FormContainer = withFormContainer<FormContainerProps, FormValues>({
+  mapPropsToValues: (props: FormContainerProps) => ({
+    ...defaultValues,
+    ...(props.initialData || {})
+  }),
+  validationSchema: Yup.object().shape({
+    ...genericFormDefaultOptions.validationSchema,
+    ...Validation.SetWorkingGroupLeaderReward()
+  }),
+  handleSubmit: genericFormDefaultOptions.handleSubmit,
+  displayName: 'SetWorkingGroupLeadRewardForm'
+})(SetWorkingGroupLeadRewardForm);
+
+export default withProposalFormData<FormContainerProps, ExportComponentProps>(FormContainer);

+ 86 - 0
pioneer/packages/joy-proposals/src/forms/SetWorkingGroupMintCapacityForm.tsx

@@ -0,0 +1,86 @@
+import React from 'react';
+import { getFormErrorLabelsProps } from './errorHandling';
+import * as Yup from 'yup';
+import {
+  withProposalFormData,
+  ProposalFormExportProps,
+  ProposalFormContainerProps,
+  ProposalFormInnerProps,
+  genericFormDefaultOptions
+} from './GenericProposalForm';
+import {
+  GenericWorkingGroupProposalForm,
+  FormValues as WGFormValues,
+  defaultValues as wgFromDefaultValues
+} from './GenericWorkingGroupProposalForm';
+import { InputFormField } from './FormFields';
+import { withFormContainer } from './FormContainer';
+import './forms.css';
+import { Grid } from 'semantic-ui-react';
+import { formatBalance } from '@polkadot/util';
+import _ from 'lodash';
+import Validation from '../validationSchema';
+
+export type FormValues = WGFormValues & {
+  capacity: string;
+};
+
+const defaultValues: FormValues = {
+  ...wgFromDefaultValues,
+  capacity: ''
+};
+
+type FormAdditionalProps = {}; // Aditional props coming all the way from export component into the inner form.
+type ExportComponentProps = ProposalFormExportProps<FormAdditionalProps, FormValues>;
+type FormContainerProps = ProposalFormContainerProps<ExportComponentProps>;
+type FormInnerProps = ProposalFormInnerProps<FormContainerProps, FormValues>;
+
+const SetWorkingGroupMintCapacityForm: React.FunctionComponent<FormInnerProps> = props => {
+  const { handleChange, errors, touched, values, myMemberId } = props;
+  const errorLabelsProps = getFormErrorLabelsProps<FormValues>(errors, touched);
+
+  return (
+    <GenericWorkingGroupProposalForm
+      {...props}
+      txMethod="createSetWorkingGroupMintCapacityProposal"
+      proposalType="SetWorkingGroupMintCapacity"
+      submitParams={[
+        myMemberId,
+        values.title,
+        values.rationale,
+        '{STAKE}',
+        values.capacity,
+        values.workingGroup
+      ]}
+    >
+      <Grid columns="4" doubling stackable verticalAlign="bottom">
+        <Grid.Column>
+          <InputFormField
+            label="Mint capacity"
+            onChange={handleChange}
+            name="capacity"
+            error={errorLabelsProps.capacity}
+            value={values.capacity}
+            placeholder={'ie. 100000'}
+            unit={formatBalance.getDefaults().unit}
+          />
+        </Grid.Column>
+      </Grid>
+    </GenericWorkingGroupProposalForm>
+  );
+};
+
+const FormContainer = withFormContainer<FormContainerProps, FormValues>({
+  mapPropsToValues: (props: FormContainerProps) => ({
+    ...defaultValues,
+    ...(props.initialData || {})
+  }),
+  validationSchema: Yup.object().shape({
+    ...genericFormDefaultOptions.validationSchema,
+    ...Validation.SetWorkingGroupMintCapacity()
+  }),
+  handleSubmit: genericFormDefaultOptions.handleSubmit,
+  displayName: 'SetWorkingGroupMintCapacityForm'
+})(SetWorkingGroupMintCapacityForm);
+
+export default withProposalFormData<FormContainerProps, ExportComponentProps>(FormContainer);

+ 2 - 2
pioneer/packages/joy-proposals/src/forms/SignalForm.tsx

@@ -16,7 +16,7 @@ import { TextareaFormField } from './FormFields';
 import { withFormContainer } from './FormContainer';
 import './forms.css';
 
-type FormValues = GenericFormValues & {
+export type FormValues = GenericFormValues & {
   description: string;
 };
 
@@ -61,7 +61,7 @@ const FormContainer = withFormContainer<FormContainerProps, FormValues>({
   }),
   validationSchema: Yup.object().shape({
     ...genericFormDefaultOptions.validationSchema,
-    description: Validation.Text.description
+    ...Validation.Text()
   }),
   handleSubmit: genericFormDefaultOptions.handleSubmit,
   displayName: 'SignalForm'

+ 101 - 0
pioneer/packages/joy-proposals/src/forms/SlashWorkingGroupLeadStakeForm.tsx

@@ -0,0 +1,101 @@
+import React, { useState, useEffect } from 'react';
+import { getFormErrorLabelsProps } from './errorHandling';
+import * as Yup from 'yup';
+import {
+  withProposalFormData,
+  ProposalFormExportProps,
+  ProposalFormContainerProps,
+  ProposalFormInnerProps,
+  genericFormDefaultOptions
+} from './GenericProposalForm';
+import {
+  GenericWorkingGroupProposalForm,
+  FormValues as WGFormValues,
+  defaultValues as wgFromDefaultValues
+} from './GenericWorkingGroupProposalForm';
+import { InputFormField } from './FormFields';
+import { withFormContainer } from './FormContainer';
+import './forms.css';
+import { Grid } from 'semantic-ui-react';
+import { formatBalance } from '@polkadot/util';
+import _ from 'lodash';
+import Validation from '../validationSchema';
+import { WorkerData } from '@polkadot/joy-utils/types/workingGroups';
+
+export type FormValues = WGFormValues & {
+  amount: string;
+};
+
+const defaultValues: FormValues = {
+  ...wgFromDefaultValues,
+  amount: ''
+};
+
+type FormAdditionalProps = {}; // Aditional props coming all the way from export component into the inner form.
+type ExportComponentProps = ProposalFormExportProps<FormAdditionalProps, FormValues>;
+type FormContainerProps = ProposalFormContainerProps<ExportComponentProps>;
+type FormInnerProps = ProposalFormInnerProps<FormContainerProps, FormValues>;
+
+const SlashWorkingGroupLeadStakeForm: React.FunctionComponent<FormInnerProps> = props => {
+  const { handleChange, errors, touched, values, myMemberId, setFieldError } = props;
+  const errorLabelsProps = getFormErrorLabelsProps<FormValues>(errors, touched);
+  const [lead, setLead] = useState<WorkerData | null>(null);
+  // Here we validate if stake <= current lead stake.
+  // Because it depends on selected working group,
+  // there's no easy way to do it using validationSchema
+  useEffect(() => {
+    if (lead && parseInt(values.amount) > (lead.stake || 0) && !errors.amount) {
+      setFieldError('amount', `The stake cannot exceed current leader's stake (${formatBalance(lead.stake)})`);
+    }
+  });
+
+  return (
+    <GenericWorkingGroupProposalForm
+      {...props}
+      txMethod="createSlashWorkingGroupLeaderStakeProposal"
+      proposalType="SlashWorkingGroupLeaderStake"
+      leadRequired={true}
+      leadStakeRequired={true}
+      onLeadChange={(lead: WorkerData | null) => setLead(lead)}
+      submitParams={[
+        myMemberId,
+        values.title,
+        values.rationale,
+        '{STAKE}',
+        lead?.workerId,
+        values.amount,
+        values.workingGroup
+      ]}
+    >
+      { (lead && lead.stake) && (
+        <Grid columns="4" doubling stackable verticalAlign="bottom">
+          <Grid.Column>
+            <InputFormField
+              label="Amount to slash"
+              onChange={handleChange}
+              name="amount"
+              error={errorLabelsProps.amount}
+              value={values.amount}
+              unit={formatBalance.getDefaults().unit}
+            />
+          </Grid.Column>
+        </Grid>
+      ) }
+    </GenericWorkingGroupProposalForm>
+  );
+};
+
+const FormContainer = withFormContainer<FormContainerProps, FormValues>({
+  mapPropsToValues: (props: FormContainerProps) => ({
+    ...defaultValues,
+    ...(props.initialData || {})
+  }),
+  validationSchema: Yup.object().shape({
+    ...genericFormDefaultOptions.validationSchema,
+    ...Validation.SlashWorkingGroupLeaderStake()
+  }),
+  handleSubmit: genericFormDefaultOptions.handleSubmit,
+  displayName: 'SlashWorkingGroupLeadStakeForm'
+})(SlashWorkingGroupLeadStakeForm);
+
+export default withProposalFormData<FormContainerProps, ExportComponentProps>(FormContainer);

+ 2 - 3
pioneer/packages/joy-proposals/src/forms/SpendingProposalForm.tsx

@@ -19,7 +19,7 @@ import { InputAddress } from '@polkadot/react-components/index';
 import { formatBalance } from '@polkadot/util';
 import './forms.css';
 
-type FormValues = GenericFormValues & {
+export type FormValues = GenericFormValues & {
   destinationAccount: any;
   tokens: string;
 };
@@ -86,8 +86,7 @@ const FormContainer = withFormContainer<FormContainerProps, FormValues>({
   }),
   validationSchema: Yup.object().shape({
     ...genericFormDefaultOptions.validationSchema,
-    tokens: Validation.Spending.tokens,
-    destinationAccount: Validation.Spending.destinationAccount
+    ...Validation.Spending()
   }),
   handleSubmit: genericFormDefaultOptions.handleSubmit,
   displayName: 'SpendingProposalsForm'

+ 125 - 0
pioneer/packages/joy-proposals/src/forms/TerminateWorkingGroupLeaderForm.tsx

@@ -0,0 +1,125 @@
+import React, { useState } from 'react';
+import * as Yup from 'yup';
+import {
+  withProposalFormData,
+  ProposalFormExportProps,
+  ProposalFormContainerProps,
+  ProposalFormInnerProps,
+  genericFormDefaultOptions
+} from './GenericProposalForm';
+import {
+  GenericWorkingGroupProposalForm,
+  FormValues as WGFormValues,
+  defaultValues as wgFromDefaultValues
+} from './GenericWorkingGroupProposalForm';
+import { withFormContainer } from './FormContainer';
+import './forms.css';
+import _ from 'lodash';
+import Validation from '../validationSchema';
+import { WorkerData } from '@polkadot/joy-utils/types/workingGroups';
+import { getFormErrorLabelsProps } from './errorHandling';
+import FormField, { TextareaFormField } from './FormFields';
+import { Checkbox } from 'semantic-ui-react';
+import { TerminateRoleParameters } from '@joystream/types/proposals';
+import { WorkerId } from '@joystream/types/working-group';
+import { Bytes } from '@polkadot/types';
+import { WorkingGroup, InputValidationLengthConstraint } from '@joystream/types/common';
+import { bool as Bool } from '@polkadot/types/primitive';
+import { withCalls } from '@polkadot/react-api';
+import { formatBalance } from '@polkadot/util';
+
+export type FormValues = WGFormValues & {
+  terminationRationale: string;
+  slashStake: boolean;
+};
+
+const defaultValues: FormValues = {
+  ...wgFromDefaultValues,
+  terminationRationale: '',
+  slashStake: false
+};
+
+type FormAdditionalProps = {}; // Aditional props coming all the way from export component into the inner form.
+type ExportComponentProps = ProposalFormExportProps<FormAdditionalProps, FormValues>;
+type FormContainerProps = ProposalFormContainerProps<ExportComponentProps> & {
+  terminationRationaleConstraint?: InputValidationLengthConstraint;
+};
+type FormInnerProps = ProposalFormInnerProps<FormContainerProps, FormValues>;
+
+const valuesToTerminateRoleParams = (values: FormValues, lead: WorkerData): TerminateRoleParameters => {
+  return new TerminateRoleParameters({
+    worker_id: new WorkerId(lead.workerId),
+    rationale: new Bytes(values.terminationRationale),
+    slash: lead.stake ? new Bool(values.slashStake) : new Bool(false),
+    working_group: new WorkingGroup(values.workingGroup)
+  });
+};
+
+const TerminateWorkingGroupLeaderForm: React.FunctionComponent<FormInnerProps> = props => {
+  const { handleChange, errors, touched, values, myMemberId, setFieldValue } = props;
+  const errorLabelsProps = getFormErrorLabelsProps<FormValues>(errors, touched);
+  const [lead, setLead] = useState<WorkerData | null>(null);
+
+  return (
+    <GenericWorkingGroupProposalForm
+      {...props}
+      txMethod="createTerminateWorkingGroupLeaderRoleProposal"
+      proposalType="TerminateWorkingGroupLeaderRole"
+      leadRequired={true}
+      onLeadChange={(lead: WorkerData | null) => setLead(lead)}
+      submitParams={[
+        myMemberId,
+        values.title,
+        values.rationale,
+        '{STAKE}',
+        lead && valuesToTerminateRoleParams(values, lead)
+      ]}
+    >
+      { lead && (<>
+        <TextareaFormField
+          label="Termination rationale"
+          help={
+            'This rationale is an required argument of "terminateWorkerRole" extrinsic, ' +
+            'it may differ from proposal rationale and has different length constraints. ' +
+            'If the propsal gets executed, this rationale will become part of "TerminatedLeader" event.'
+          }
+          onChange={handleChange}
+          name="terminationRationale"
+          placeholder="Provide a clear rationale for terminating the leader role..."
+          error={errorLabelsProps.terminationRationale}
+          value={values.terminationRationale}
+        />
+        { lead.stake && (
+          <FormField>
+            <Checkbox
+              toggle
+              onChange={(e, data) => { setFieldValue('slashStake', data.checked); }}
+              label={ `Slash leader stake (${formatBalance(lead.stake)})` }
+              checked={values.slashStake}/>
+          </FormField>
+        ) }
+      </>) }
+    </GenericWorkingGroupProposalForm>
+  );
+};
+
+const FormContainer = withFormContainer<FormContainerProps, FormValues>({
+  mapPropsToValues: (props: FormContainerProps) => ({
+    ...defaultValues,
+    ...(props.initialData || {})
+  }),
+  validationSchema: (props: FormContainerProps) => Yup.object().shape({
+    ...genericFormDefaultOptions.validationSchema,
+    ...Validation.TerminateWorkingGroupLeaderRole(
+      props.terminationRationaleConstraint || InputValidationLengthConstraint.createWithMaxAllowed()
+    )
+  }),
+  handleSubmit: genericFormDefaultOptions.handleSubmit,
+  displayName: 'TerminateWorkingGroupLeaderForm'
+})(TerminateWorkingGroupLeaderForm);
+
+export default withCalls<ExportComponentProps>(
+  ['query.storageWorkingGroup.workerExitRationaleText', { propName: 'terminationRationaleConstraint' }]
+)(
+  withProposalFormData<FormContainerProps, ExportComponentProps>(FormContainer)
+);

+ 4 - 4
pioneer/packages/joy-proposals/src/forms/errorHandling.ts

@@ -1,7 +1,7 @@
 import { FormikErrors, FormikTouched } from 'formik';
 import { LabelProps } from 'semantic-ui-react';
 
-type FieldErrorLabelProps = LabelProps | null; // This is used for displaying semantic-ui errors
+type FieldErrorLabelProps = LabelProps | undefined; // This is used for displaying semantic-ui errors
 export type FormErrorLabelsProps<ValuesT> = { [T in keyof ValuesT]: FieldErrorLabelProps };
 
 // Single form field error state.
@@ -13,10 +13,10 @@ export function getErrorLabelProps<ValuesT> (
   fieldName: keyof ValuesT,
   pointing: LabelProps['pointing'] = undefined
 
-): FieldErrorLabelProps {
+): FieldErrorLabelProps | undefined {
   return (errors[fieldName] && touched[fieldName])
-    ? { content: errors[fieldName], pointing }
-    : null;
+    ? { content: errors[fieldName], pointing, size: 'large' }
+    : undefined;
 }
 
 // All form fields error states (uses default value for "pointing").

+ 7 - 2
pioneer/packages/joy-proposals/src/forms/index.ts

@@ -1,12 +1,17 @@
 export { default as SignalForm } from './SignalForm';
 export { default as SpendingProposalForm } from './SpendingProposalForm';
-export { default as EvictStorageProviderForm } from './EvictStorageProviderForm';
 export { default as MintCapacityForm } from './MintCapacityForm';
 export { default as SetCouncilParamsForm } from './SetCouncilParamsForm';
 export { default as SetContentWorkingGroupLeadForm } from './SetContentWorkingGroupLeadForm';
-export { default as SetStorageRoleParamsForm } from './SetStorageRoleParamsForm';
 export { default as RuntimeUpgradeForm } from './RuntimeUpgradeForm';
 export { default as SetContentWorkingGroupMintCapForm } from './SetContentWorkingGroupMintCapForm';
 export { default as SetCouncilMintCapForm } from './SetCouncilMintCapForm';
 export { default as SetMaxValidatorCountForm } from './SetMaxValidatorCountForm';
 export { default as AddWorkingGroupOpeningForm } from './AddWorkingGroupOpeningForm';
+export { default as SetWorkingGroupMintCapacityForm } from './SetWorkingGroupMintCapacityForm';
+export { default as BeginReviewLeaderApplicationsForm } from './BeginReviewLeaderApplicationsForm';
+export { default as FillWorkingGroupLeaderOpeningForm } from './FillWorkingGroupLeaderOpeningForm';
+export { default as DecreaseWorkingGroupLeadStakeFrom } from './DecreaseWorkingGroupLeadStakeForm';
+export { default as SlashWorkingGroupLeadStakeForm } from './SlashWorkingGroupLeadStakeForm';
+export { default as SetWorkingGroupLeadRewardForm } from './SetWorkingGroupLeadRewardForm';
+export { default as TerminateWorkingGroupLeaderForm } from './TerminateWorkingGroupLeaderForm';

+ 25 - 5
pioneer/packages/joy-proposals/src/index.tsx

@@ -7,6 +7,7 @@ import { Breadcrumb } from 'semantic-ui-react';
 import { AppProps, I18nProps } from '@polkadot/react-components/types';
 import { TransportProvider } from '@polkadot/joy-utils/react/context';
 import { ProposalPreviewList, ProposalFromId, ChooseProposalType } from './Proposal';
+import _ from 'lodash';
 
 import './index.css';
 
@@ -14,15 +15,20 @@ import translate from './translate';
 import NotDone from './NotDone';
 import {
   SignalForm,
-  EvictStorageProviderForm,
   SpendingProposalForm,
   SetContentWorkingGroupLeadForm,
   SetContentWorkingGroupMintCapForm,
   SetCouncilParamsForm,
-  SetStorageRoleParamsForm,
   SetMaxValidatorCountForm,
   RuntimeUpgradeForm,
-  AddWorkingGroupOpeningForm
+  AddWorkingGroupOpeningForm,
+  SetWorkingGroupMintCapacityForm,
+  BeginReviewLeaderApplicationsForm,
+  FillWorkingGroupLeaderOpeningForm,
+  DecreaseWorkingGroupLeadStakeFrom,
+  SlashWorkingGroupLeadStakeForm,
+  SetWorkingGroupLeadRewardForm,
+  TerminateWorkingGroupLeaderForm
 } from './forms';
 
 interface Props extends AppProps, I18nProps {}
@@ -45,6 +51,15 @@ function App (props: Props): React.ReactElement<Props> {
         <StyledHeader>
           <Breadcrumb>
             <Switch>
+              <Route path={`${basePath}/new/:type`} render={props => (
+                <>
+                  <Breadcrumb.Section link as={Link} to={basePath}>Proposals</Breadcrumb.Section>
+                  <Breadcrumb.Divider icon="right angle" />
+                  <Breadcrumb.Section link as={Link} to={`${basePath}/new`}>New proposal</Breadcrumb.Section>
+                  <Breadcrumb.Divider icon="right angle" />
+                  <Breadcrumb.Section active>{_.startCase(props.match.params.type)}</Breadcrumb.Section>
+                </>
+              )} />
               <Route path={`${basePath}/new`}>
                 <Breadcrumb.Section link as={Link} to={basePath}>Proposals</Breadcrumb.Section>
                 <Breadcrumb.Divider icon="right angle" />
@@ -68,10 +83,15 @@ function App (props: Props): React.ReactElement<Props> {
             path={`${basePath}/new/set-content-working-group-mint-capacity`}
             component={SetContentWorkingGroupMintCapForm}
           />
-          <Route exact path={`${basePath}/new/evict-storage-provider`} component={EvictStorageProviderForm} />
           <Route exact path={`${basePath}/new/set-validator-count`} component={SetMaxValidatorCountForm} />
-          <Route exact path={`${basePath}/new/set-storage-role-parameters`} component={SetStorageRoleParamsForm} />
           <Route exact path={`${basePath}/new/add-working-group-leader-opening`} component={AddWorkingGroupOpeningForm} />
+          <Route exact path={`${basePath}/new/set-working-group-mint-capacity`} component={SetWorkingGroupMintCapacityForm} />
+          <Route exact path={`${basePath}/new/begin-review-working-group-leader-application`} component={BeginReviewLeaderApplicationsForm} />
+          <Route exact path={`${basePath}/new/fill-working-group-leader-opening`} component={FillWorkingGroupLeaderOpeningForm} />
+          <Route exact path={`${basePath}/new/decrease-working-group-leader-stake`} component={DecreaseWorkingGroupLeadStakeFrom} />
+          <Route exact path={`${basePath}/new/slash-working-group-leader-stake`} component={SlashWorkingGroupLeadStakeForm} />
+          <Route exact path={`${basePath}/new/set-working-group-leader-reward`} component={SetWorkingGroupLeadRewardForm} />
+          <Route exact path={`${basePath}/new/terminate-working-group-leader-role`} component={TerminateWorkingGroupLeaderForm} />
           <Route exact path={`${basePath}/active`} component={NotDone} />
           <Route exact path={`${basePath}/finalized`} component={NotDone} />
           <Route exact path={`${basePath}/:id`} component={ProposalFromId} />

+ 0 - 6
pioneer/packages/joy-proposals/src/stories/ProposalForms.stories.tsx

@@ -1,11 +1,9 @@
 import '../index.css';
 import {
   SignalForm,
-  EvictStorageProviderForm,
   SpendingProposalForm,
   SetCouncilParamsForm,
   SetContentWorkingGroupLeadForm,
-  SetStorageRoleParamsForm,
   RuntimeUpgradeForm,
   SetContentWorkingGroupMintCapForm,
   SetCouncilMintCapForm,
@@ -19,16 +17,12 @@ export default {
 
 export const Signal = () => withMock(SignalForm);
 
-export const StorageProviders = () => withMock(EvictStorageProviderForm);
-
 export const SpendingProposal = () => withMock(SpendingProposalForm);
 
 export const SetCouncilParams = () => withMock(SetCouncilParamsForm);
 
 export const SetContentWorkingGroupLead = () => withMock(SetContentWorkingGroupLeadForm);
 
-export const SetStorageRoleParams = () => withMock(SetStorageRoleParamsForm);
-
 export const RuntimeUpgrade = () => withMock(RuntimeUpgradeForm);
 
 export const ContentWorkingGroupMintCap = () => withMock(SetContentWorkingGroupMintCapForm);

+ 3 - 3
pioneer/packages/joy-proposals/src/stories/data/ProposalTypesInfo.mock.ts

@@ -1,5 +1,5 @@
 import { ProposalTypeInfo } from '../../Proposal/ProposalTypePreview';
-import { Categories } from '../../Proposal/ChooseProposalType';
+import { Categories } from '@polkadot/joy-utils/types/proposals';
 
 const MockProposalTypesInfo: ProposalTypeInfo[] = [
   {
@@ -52,7 +52,7 @@ const MockProposalTypesInfo: ProposalTypeInfo[] = [
   },
   {
     type: 'EvictStorageProvider',
-    category: Categories.storage,
+    category: Categories.other,
     description:
         'Change the total reward across all validators in a given block.' +
         'This is not the direct reward, but base reward for Pallet staking module.' +
@@ -68,7 +68,7 @@ const MockProposalTypesInfo: ProposalTypeInfo[] = [
   },
   {
     type: 'SetStorageRoleParameters',
-    category: Categories.storage,
+    category: Categories.other,
     description:
         'Change the total reward across all validators in a given block.' +
         'This is not the direct reward, but base reward for Pallet staking module.' +

+ 163 - 185
pioneer/packages/joy-proposals/src/validationSchema.ts

@@ -1,5 +1,23 @@
 import * as Yup from 'yup';
 import { schemaValidator, ActivateOpeningAtKeys } from '@joystream/types/hiring';
+import { ProposalTypes } from '@polkadot/joy-utils/types/proposals';
+import { GenericFormValues } from './forms/GenericProposalForm';
+import { InputValidationLengthConstraint } from '@joystream/types/common';
+import { FormValues as SignalFormValues } from './forms/SignalForm';
+import { FormValues as RuntimeUpgradeFormValues } from './forms/RuntimeUpgradeForm';
+import { FormValues as SetCouncilParamsFormValues } from './forms/SetCouncilParamsForm';
+import { FormValues as SpendingProposalFormValues } from './forms/SpendingProposalForm';
+import { FormValues as SetContentWorkingGroupLeadFormValues } from './forms/SetContentWorkingGroupLeadForm';
+import { FormValues as SetContentWorkingGroupMintCapacityFormValues } from './forms/MintCapacityForm';
+import { FormValues as SetMaxValidatorCountFormValues } from './forms/SetMaxValidatorCountForm';
+import { FormValues as AddWorkingGroupLeaderOpeningFormValues } from './forms/AddWorkingGroupOpeningForm';
+import { FormValues as SetWorkingGroupMintCapacityFormValues } from './forms/SetWorkingGroupMintCapacityForm';
+import { FormValues as BeginReviewLeaderApplicationsFormValues } from './forms/BeginReviewLeaderApplicationsForm';
+import { FormValues as FillWorkingGroupLeaderOpeningFormValues } from './forms/FillWorkingGroupLeaderOpeningForm';
+import { FormValues as DecreaseWorkingGroupLeadStakeFormValues } from './forms/DecreaseWorkingGroupLeadStakeForm';
+import { FormValues as SlashWorkingGroupLeadStakeFormValues } from './forms/SlashWorkingGroupLeadStakeForm';
+import { FormValues as SetWorkingGroupLeadRewardFormValues } from './forms/SetWorkingGroupLeadRewardForm';
+import { FormValues as TerminateWorkingGroupLeaderFormValues } from './forms/TerminateWorkingGroupLeaderForm';
 
 // TODO: If we really need this (currency unit) we can we make "Validation" a functiction that returns an object.
 // We could then "instantialize" it in "withFormContainer" where instead of passing
@@ -49,28 +67,6 @@ const MAX_VALIDATOR_COUNT_MAX = 100;
 const MINT_CAPACITY_MIN = 0;
 const MINT_CAPACITY_MAX = 1000000;
 
-// Set Storage Role Parameters
-const MIN_STAKE_MIN = 1;
-const MIN_STAKE_MAX = 10000000;
-const MIN_ACTORS_MIN = 0;
-const MIN_ACTORS_MAX = 1;
-const MAX_ACTORS_MIN = 2;
-const MAX_ACTORS_MAX = 99;
-const REWARD_MIN = 1;
-const REWARD_MAX = 99999;
-const REWARD_PERIOD_MIN = 600;
-const REWARD_PERIOD_MAX = 3600;
-const BONDING_PERIOD_MIN = 600;
-const BONDING_PERIOD_MAX = 28800;
-const UNBONDING_PERIOD_MIN = 600;
-const UNBONDING_PERIOD_MAX = 28800;
-const MIN_SERVICE_PERIOD_MIN = 600;
-const MIN_SERVICE_PERIOD_MAX = 28800;
-const STARTUP_GRACE_PERIOD_MIN = 600;
-const STARTUP_GRACE_PERIOD_MAX = 28800;
-const ENTRY_REQUEST_FEE_MIN = 1;
-const ENTRY_REQUEST_FEE_MAX = 100000;
-
 // Add Working Group Leader Opening Parameters
 // TODO: Discuss the actual values
 const MIN_EXACT_BLOCK_MINUS_CURRENT = 14400 * 5; // ~5 days
@@ -88,6 +84,27 @@ const TERMINATE_ROLE_UNSTAKING_MAX = 14 * 14400; // 14 days
 const LEAVE_ROLE_UNSTAKING_MIN = 0;
 const LEAVE_ROLE_UNSTAKING_MAX = 14 * 14400; // 14 days
 
+// Set Working Group Mint Capacity
+// TODO: Discuss the actual values
+const WG_MINT_CAP_MIN = 0;
+const WG_MINT_CAP_MAX = 1000000;
+
+// Fill Working Group Leader Opening / Set Working Group Lead Reward
+// TODO: Discuss the actual values
+const MIN_REWARD_AMOUNT = 1;
+const MAX_REWARD_AMOUNT = 100000;
+const MIN_REWARD_INTERVAL = 1;
+const MAX_REWARD_INTERVAL = 30 * 14400; // 30 days
+// 3 days margin (voting_period) to prevent FillOpeningInvalidNextPaymentBlock
+// Should we worry that much about it though?
+const MIN_NEXT_PAYMENT_BLOCK_MINUS_CURRENT = 3 * 14400;
+const MAX_NEXT_PAYMENT_BLOCK_MINUS_CURRENT = 30 * 14400; // 30 days
+
+// Decrease/Slash Working Group Leader Stake
+const DECREASE_LEAD_STAKE_MIN = 1;
+const SLASH_LEAD_STAKE_MIN = 1;
+// Max is validated in form component, because it depends on selected working group's leader stake
+
 function errorMessage (name: string, min?: number | string, max?: number | string, unit?: string): string {
   return `${name} should be at least ${min} and no more than ${max}${unit ? ` ${unit}.` : '.'}`;
 }
@@ -97,80 +114,59 @@ Validation is used to validate a proposal form.
 Each proposal type should validate the fields of his form, anything is valid as long as it fits in a Yup Schema.
 In a form, validation should be injected in the Yup Schema just by accessing it in this object.
 Ex:
-// EvictStorageProvider Form
+// Text Form
 
 import Validation from 'path/to/validationSchema'
 ...
   validationSchema: Yup.object().shape({
     ...genericFormDefaultOptions.validationSchema,
-    storageProvider: Validation.EvictStorageProvider.storageProvider
+    ...Validation.Text()
   }),
 
 */
 
+type ProposalTypeKeys = typeof ProposalTypes[number];
+type OutdatedProposals = 'EvictStorageProvider' | 'SetStorageRoleParameters';
+type ValidationTypeKeys = Exclude<ProposalTypeKeys, OutdatedProposals> | 'All';
+
+/* eslint-disable @typescript-eslint/indent */
+// /\ This prevents eslint from trying to make "stairs" out of those multiple conditions.
+// They are more readable when one is directly under the other (switch-case style)
+type FormValuesByType<T extends ValidationTypeKeys> =
+  T extends 'All' ? GenericFormValues :
+  T extends 'Text' ? Omit<SignalFormValues, keyof GenericFormValues> :
+  T extends 'RuntimeUpgrade' ? Omit<RuntimeUpgradeFormValues, keyof GenericFormValues> :
+  T extends 'SetElectionParameters' ? Omit<SetCouncilParamsFormValues, keyof GenericFormValues> :
+  T extends 'Spending' ? Omit<SpendingProposalFormValues, keyof GenericFormValues> :
+  T extends 'SetLead' ? Omit<SetContentWorkingGroupLeadFormValues, keyof GenericFormValues> :
+  T extends 'SetContentWorkingGroupMintCapacity' ? Omit<SetContentWorkingGroupMintCapacityFormValues, keyof GenericFormValues> :
+  T extends 'SetValidatorCount' ? Omit<SetMaxValidatorCountFormValues, keyof GenericFormValues> :
+  T extends 'AddWorkingGroupLeaderOpening' ? Omit<AddWorkingGroupLeaderOpeningFormValues, keyof GenericFormValues> :
+  T extends 'SetWorkingGroupMintCapacity' ? Omit<SetWorkingGroupMintCapacityFormValues, keyof GenericFormValues> :
+  T extends 'BeginReviewWorkingGroupLeaderApplication' ? Omit<BeginReviewLeaderApplicationsFormValues, keyof GenericFormValues> :
+  T extends 'FillWorkingGroupLeaderOpening' ? Omit<FillWorkingGroupLeaderOpeningFormValues, keyof GenericFormValues> :
+  T extends 'DecreaseWorkingGroupLeaderStake' ? Omit<DecreaseWorkingGroupLeadStakeFormValues, keyof GenericFormValues> :
+  T extends 'SlashWorkingGroupLeaderStake' ? Omit<SlashWorkingGroupLeadStakeFormValues, keyof GenericFormValues> :
+  T extends 'SetWorkingGroupLeaderReward' ? Omit<SetWorkingGroupLeadRewardFormValues, keyof GenericFormValues> :
+  T extends 'TerminateWorkingGroupLeaderRole' ? Omit<TerminateWorkingGroupLeaderFormValues, keyof GenericFormValues> :
+  never;
+
+type ValidationSchemaFuncParamsByType<T extends ValidationTypeKeys> =
+  T extends 'AddWorkingGroupLeaderOpening' ? [number, InputValidationLengthConstraint] :
+  T extends 'FillWorkingGroupLeaderOpening' ? [number] :
+  T extends 'TerminateWorkingGroupLeaderRole' ? [InputValidationLengthConstraint] :
+  [];
+
+/* eslint-enable @typescript-eslint/indent */
+
+type ValidationSchemaFunc<FieldValuesT extends {}, ParamsT extends any[] = []> = (...params: ParamsT) =>
+({ [fieldK in keyof FieldValuesT]: Yup.Schema<any> });
+
 type ValidationType = {
-  All: {
-    title: Yup.StringSchema<string>;
-    rationale: Yup.StringSchema<string>;
-  };
-  Text: {
-    description: Yup.StringSchema<string>;
-  };
-  RuntimeUpgrade: {
-    WASM: Yup.MixedSchema<any>;
-  };
-  SetElectionParameters: {
-    announcingPeriod: Yup.NumberSchema<number>;
-    votingPeriod: Yup.NumberSchema<number>;
-    minVotingStake: Yup.NumberSchema<number>;
-    revealingPeriod: Yup.NumberSchema<number>;
-    minCouncilStake: Yup.NumberSchema<number>;
-    newTermDuration: Yup.NumberSchema<number>;
-    candidacyLimit: Yup.NumberSchema<number>;
-    councilSize: Yup.NumberSchema<number>;
-  };
-  Spending: {
-    tokens: Yup.NumberSchema<number>;
-    destinationAccount: Yup.StringSchema<string>;
-  };
-  SetLead: {
-    workingGroupLead: Yup.StringSchema<string>;
-  };
-  SetContentWorkingGroupMintCapacity: {
-    mintCapacity: Yup.NumberSchema<number>;
-  };
-  EvictStorageProvider: {
-    storageProvider: Yup.StringSchema<string | null>;
-  };
-  SetValidatorCount: {
-    maxValidatorCount: Yup.NumberSchema<number>;
-  };
-  SetStorageRoleParameters: {
-    min_stake: Yup.NumberSchema<number>;
-    min_actors: Yup.NumberSchema<number>;
-    max_actors: Yup.NumberSchema<number>;
-    reward: Yup.NumberSchema<number>;
-    reward_period: Yup.NumberSchema<number>;
-    bonding_period: Yup.NumberSchema<number>;
-    unbonding_period: Yup.NumberSchema<number>;
-    min_service_period: Yup.NumberSchema<number>;
-    startup_grace_period: Yup.NumberSchema<number>;
-    entry_request_fee: Yup.NumberSchema<number>;
-  };
-  AddWorkingGroupLeaderOpening: (currentBlock: number) => {
-    applicationsLimited: Yup.BooleanSchema<boolean>;
-    activateAt: Yup.StringSchema<string>;
-    activateAtBlock: Yup.NumberSchema<number>;
-    maxReviewPeriodLength: Yup.NumberSchema<number>;
-    maxApplications: Yup.NumberSchema<number>;
-    applicationStakeRequired: Yup.BooleanSchema<boolean>;
-    applicationStakeValue: Yup.NumberSchema<number>;
-    roleStakeRequired: Yup.BooleanSchema<boolean>;
-    roleStakeValue: Yup.NumberSchema<number>;
-    terminateRoleUnstakingPeriod: Yup.NumberSchema<number>;
-    leaveRoleUnstakingPeriod: Yup.NumberSchema<number>;
-    humanReadableText: Yup.StringSchema<string>;
-  };
+  [validationTypeK in ValidationTypeKeys]: ValidationSchemaFunc<
+  FormValuesByType<validationTypeK>,
+  ValidationSchemaFuncParamsByType<validationTypeK>
+  >
 };
 
 // Helpers for common validation
@@ -183,26 +179,26 @@ function minMaxInt (min: number, max: number, fieldName: string) {
 }
 
 const Validation: ValidationType = {
-  All: {
+  All: () => ({
     title: Yup.string()
       .required('Title is required!')
       .max(TITLE_MAX_LENGTH, `Title should be under ${TITLE_MAX_LENGTH} characters.`),
     rationale: Yup.string()
       .required('Rationale is required!')
       .max(RATIONALE_MAX_LENGTH, `Rationale should be under ${RATIONALE_MAX_LENGTH} characters.`)
-  },
-  Text: {
+  }),
+  Text: () => ({
     description: Yup.string()
       .required('Description is required!')
       .max(DESCRIPTION_MAX_LENGTH, `Description should be under ${DESCRIPTION_MAX_LENGTH}`)
-  },
-  RuntimeUpgrade: {
+  }),
+  RuntimeUpgrade: () => ({
     WASM: Yup.mixed()
       .test('fileArrayBuffer', 'Unexpected data format, file cannot be processed.', value => typeof value.byteLength !== 'undefined')
       .test('fileSizeMin', `Minimum file size is ${FILE_SIZE_BYTES_MIN} bytes.`, value => value.byteLength >= FILE_SIZE_BYTES_MIN)
       .test('fileSizeMax', `Maximum file size is ${FILE_SIZE_BYTES_MAX} bytes.`, value => value.byteLength <= FILE_SIZE_BYTES_MAX)
-  },
-  SetElectionParameters: {
+  }),
+  SetElectionParameters: () => ({
     announcingPeriod: Yup.number()
       .required('All fields must be filled!')
       .integer('This field must be an integer.')
@@ -273,8 +269,8 @@ const Validation: ValidationType = {
       .integer('This field must be an integer.')
       .min(COUNCIL_SIZE_MIN, errorMessage('The council size', COUNCIL_SIZE_MIN, COUNCIL_SIZE_MAX))
       .max(COUNCIL_SIZE_MAX, errorMessage('The council size', COUNCIL_SIZE_MIN, COUNCIL_SIZE_MAX))
-  },
-  Spending: {
+  }),
+  Spending: () => ({
     tokens: Yup.number()
       .positive('The token amount should be positive.')
       .integer('This field must be an integer.')
@@ -282,24 +278,19 @@ const Validation: ValidationType = {
       .required('You need to specify an amount of tokens.'),
     destinationAccount: Yup.string()
       .required('Select a destination account!')
-  },
-  SetLead: {
+  }),
+  SetLead: () => ({
     workingGroupLead: Yup.string().required('Select a proposed lead!')
-  },
-  SetContentWorkingGroupMintCapacity: {
-    mintCapacity: Yup.number()
+  }),
+  SetContentWorkingGroupMintCapacity: () => ({
+    capacity: Yup.number()
       .positive('Mint capacity should be positive.')
       .integer('This field must be an integer.')
       .min(MINT_CAPACITY_MIN, errorMessage('Mint capacity', MINT_CAPACITY_MIN, MINT_CAPACITY_MAX, CURRENCY_UNIT))
       .max(MINT_CAPACITY_MAX, errorMessage('Mint capacity', MINT_CAPACITY_MIN, MINT_CAPACITY_MAX, CURRENCY_UNIT))
       .required('You need to specify a mint capacity.')
-  },
-  EvictStorageProvider: {
-    storageProvider: Yup.string()
-      .nullable()
-      .required('Select a storage provider!')
-  },
-  SetValidatorCount: {
+  }),
+  SetValidatorCount: () => ({
     maxValidatorCount: Yup.number()
       .required('Enter the max validator count')
       .integer('This field must be an integer.')
@@ -311,84 +302,9 @@ const Validation: ValidationType = {
         MAX_VALIDATOR_COUNT_MAX,
         errorMessage('The max validator count', MAX_VALIDATOR_COUNT_MIN, MAX_VALIDATOR_COUNT_MAX)
       )
-  },
-  SetStorageRoleParameters: {
-    min_stake: Yup.number()
-      .required('All parameters are required')
-      .positive('The minimum stake should be positive.')
-      .integer('This field must be an integer.')
-      .max(MIN_STAKE_MAX, errorMessage('Minimum stake', MIN_STAKE_MIN, MIN_STAKE_MAX, CURRENCY_UNIT)),
-    min_actors: Yup.number()
-      .required('All parameters are required')
-      .integer('This field must be an integer.')
-      .min(MIN_ACTORS_MIN, errorMessage('Minimum actors', MIN_ACTORS_MIN, MIN_ACTORS_MAX))
-      .max(MIN_ACTORS_MAX, errorMessage('Minimum actors', MIN_ACTORS_MIN, MIN_ACTORS_MAX)),
-    max_actors: Yup.number()
-      .required('All parameters are required')
-      .integer('This field must be an integer.')
-      .min(MAX_ACTORS_MIN, errorMessage('Max actors', MAX_ACTORS_MIN, MAX_ACTORS_MAX))
-      .max(MAX_ACTORS_MAX, errorMessage('Max actors', MAX_ACTORS_MIN, MAX_ACTORS_MAX)),
-    reward: Yup.number()
-      .required('All parameters are required')
-      .integer('This field must be an integer.')
-      .min(REWARD_MIN, errorMessage('Reward', REWARD_MIN, REWARD_MAX, CURRENCY_UNIT))
-      .max(REWARD_MAX, errorMessage('Reward', REWARD_MIN, REWARD_MAX, CURRENCY_UNIT)),
-    reward_period: Yup.number()
-      .required('All parameters are required')
-      .integer('This field must be an integer.')
-      .min(REWARD_PERIOD_MIN, errorMessage('The reward period', REWARD_PERIOD_MIN, REWARD_PERIOD_MAX, 'blocks'))
-      .max(REWARD_PERIOD_MAX, errorMessage('The reward period', REWARD_PERIOD_MIN, REWARD_PERIOD_MAX, 'blocks')),
-    bonding_period: Yup.number()
-      .required('All parameters are required')
-      .integer('This field must be an integer.')
-      .min(BONDING_PERIOD_MIN, errorMessage('The bonding period', BONDING_PERIOD_MIN, BONDING_PERIOD_MAX, 'blocks'))
-      .max(BONDING_PERIOD_MAX, errorMessage('The bonding period', BONDING_PERIOD_MIN, BONDING_PERIOD_MAX, 'blocks')),
-    unbonding_period: Yup.number()
-      .required('All parameters are required')
-      .integer('This field must be an integer.')
-      .min(
-        UNBONDING_PERIOD_MIN,
-        errorMessage('The unbonding period', UNBONDING_PERIOD_MIN, UNBONDING_PERIOD_MAX, 'blocks')
-      )
-      .max(
-        UNBONDING_PERIOD_MAX,
-        errorMessage('The unbonding period', UNBONDING_PERIOD_MIN, UNBONDING_PERIOD_MAX, 'blocks')
-      ),
-    min_service_period: Yup.number()
-      .required('All parameters are required')
-      .integer('This field must be an integer.')
-      .min(
-        MIN_SERVICE_PERIOD_MIN,
-        errorMessage('The minimum service period', MIN_SERVICE_PERIOD_MIN, MIN_SERVICE_PERIOD_MAX, 'blocks')
-      )
-      .max(
-        MIN_SERVICE_PERIOD_MAX,
-        errorMessage('The minimum service period', MIN_SERVICE_PERIOD_MIN, MIN_SERVICE_PERIOD_MAX, 'blocks')
-      ),
-    startup_grace_period: Yup.number()
-      .required('All parameters are required')
-      .integer('This field must be an integer.')
-      .min(
-        STARTUP_GRACE_PERIOD_MIN,
-        errorMessage('The startup grace period', STARTUP_GRACE_PERIOD_MIN, STARTUP_GRACE_PERIOD_MAX, 'blocks')
-      )
-      .max(
-        STARTUP_GRACE_PERIOD_MAX,
-        errorMessage('The startup grace period', STARTUP_GRACE_PERIOD_MIN, STARTUP_GRACE_PERIOD_MAX, 'blocks')
-      ),
-    entry_request_fee: Yup.number()
-      .required('All parameters are required')
-      .integer('This field must be an integer.')
-      .min(
-        ENTRY_REQUEST_FEE_MIN,
-        errorMessage('The entry request fee', ENTRY_REQUEST_FEE_MIN, ENTRY_REQUEST_FEE_MAX, CURRENCY_UNIT)
-      )
-      .max(
-        STARTUP_GRACE_PERIOD_MAX,
-        errorMessage('The entry request fee', ENTRY_REQUEST_FEE_MIN, ENTRY_REQUEST_FEE_MAX, CURRENCY_UNIT)
-      )
-  },
-  AddWorkingGroupLeaderOpening: (currentBlock: number) => ({
+  }),
+  AddWorkingGroupLeaderOpening: (currentBlock: number, { min: HRTMin, max: HRTMax }: InputValidationLengthConstraint) => ({
+    workingGroup: Yup.string(),
     activateAt: Yup.string().required(),
     activateAtBlock: Yup.number()
       .when('activateAt', {
@@ -407,12 +323,14 @@ const Validation: ValidationType = {
         then: minMaxInt(MAX_APPLICATIONS_MIN, MAX_APPLICATIONS_MAX, 'Max. number of applications')
       }),
     applicationStakeRequired: Yup.boolean(),
+    applicationStakeMode: Yup.string(),
     applicationStakeValue: Yup.number()
       .when('applicationStakeRequired', {
         is: true,
         then: minMaxInt(APPLICATION_STAKE_VALUE_MIN, APPLICATION_STAKE_VALUE_MAX, 'Application stake value')
       }),
     roleStakeRequired: Yup.boolean(),
+    roleStakeMode: Yup.string(),
     roleStakeValue: Yup.number()
       .when('roleStakeRequired', {
         is: true,
@@ -450,6 +368,66 @@ const Validation: ValidationType = {
           return true;
         }
       )
+      .min(HRTMin.toNumber(), `human_readable_text must be at least ${HRTMin.toNumber()} character(s) long`)
+      .max(HRTMax.toNumber(), `human_readable_text cannot be more than ${HRTMax.toNumber()} character(s) long`)
+  }),
+  SetWorkingGroupMintCapacity: () => ({
+    workingGroup: Yup.string(),
+    capacity: minMaxInt(WG_MINT_CAP_MIN, WG_MINT_CAP_MAX, 'Mint capacity')
+  }),
+  BeginReviewWorkingGroupLeaderApplication: () => ({
+    workingGroup: Yup.string(),
+    openingId: Yup.number().required('Select an opening!')
+  }),
+  FillWorkingGroupLeaderOpening: (currentBlock: number) => ({
+    workingGroup: Yup.string(),
+    openingId: Yup.number().required('Select an opening!'),
+    successfulApplicant: Yup.number().required('Select a succesful applicant!'),
+    includeReward: Yup.boolean(),
+    rewardAmount: Yup.number()
+      .when('includeReward', {
+        is: true,
+        then: minMaxInt(MIN_REWARD_AMOUNT, MAX_REWARD_AMOUNT, 'Reward amount')
+      }),
+    rewardNextBlock: Yup.number()
+      .when('includeReward', {
+        is: true,
+        then: minMaxInt(
+          MIN_NEXT_PAYMENT_BLOCK_MINUS_CURRENT + currentBlock,
+          MAX_NEXT_PAYMENT_BLOCK_MINUS_CURRENT + currentBlock,
+          'Next payment block'
+        )
+      }),
+    rewardRecurring: Yup.boolean(),
+    rewardInterval: Yup.number()
+      .when(['includeReward', 'rewardRecurring'], {
+        is: true,
+        then: minMaxInt(MIN_REWARD_INTERVAL, MAX_REWARD_INTERVAL, 'Reward interval')
+      })
+  }),
+  DecreaseWorkingGroupLeaderStake: () => ({
+    workingGroup: Yup.string(),
+    amount: Yup.number()
+      .required('Amount is required!')
+      .min(DECREASE_LEAD_STAKE_MIN, `Amount must be greater than ${DECREASE_LEAD_STAKE_MIN}`)
+  }),
+  SlashWorkingGroupLeaderStake: () => ({
+    workingGroup: Yup.string(),
+    amount: Yup.number()
+      .required('Amount is required!')
+      .min(SLASH_LEAD_STAKE_MIN, `Amount must be greater than ${SLASH_LEAD_STAKE_MIN}`)
+  }),
+  SetWorkingGroupLeaderReward: () => ({
+    workingGroup: Yup.string(),
+    amount: minMaxInt(MIN_REWARD_AMOUNT, MAX_REWARD_AMOUNT, 'Reward amount')
+  }),
+  TerminateWorkingGroupLeaderRole: ({ min, max }: InputValidationLengthConstraint) => ({
+    workingGroup: Yup.string(),
+    terminationRationale: Yup.string()
+      .required('Termination rationale is required')
+      .min(min.toNumber(), `Termination rationale must be at least ${min.toNumber()} character(s) long`)
+      .max(max.toNumber(), `Termination rationale cannot be more than ${max.toNumber()} character(s) long`),
+    slashStake: Yup.boolean()
   })
 };
 

+ 19 - 20
pioneer/packages/joy-roles/src/classifiers.ts

@@ -7,7 +7,7 @@ import {
   Application,
   AcceptingApplications, ReviewPeriod,
   WaitingToBeingOpeningStageVariant,
-  ActiveOpeningStageVariant, ActiveOpeningStageKeys,
+  ActiveOpeningStageVariant,
   Opening,
   OpeningStageKeys,
   Deactivated, OpeningDeactivationCauseKeys,
@@ -133,25 +133,24 @@ async function classifyActiveOpeningStage (
   queryer: IBlockQueryer,
   stage: ActiveOpeningStageVariant
 ): Promise<OpeningStageClassification> {
-  switch (stage.stage.type) {
-    case ActiveOpeningStageKeys.AcceptingApplications:
-      return classifyActiveOpeningStageAcceptingApplications(
-        queryer,
-        stage.stage.value as AcceptingApplications
-      );
-
-    case ActiveOpeningStageKeys.ReviewPeriod:
-      return classifyActiveOpeningStageReviewPeriod(
-        opening,
-        queryer,
-        stage.stage.value as ReviewPeriod
-      );
-
-    case ActiveOpeningStageKeys.Deactivated:
-      return classifyActiveOpeningStageDeactivated(
-        queryer,
-        stage.stage.value as Deactivated
-      );
+  if (stage.stage.isOfType('AcceptingApplications')) {
+    return classifyActiveOpeningStageAcceptingApplications(
+      queryer,
+      stage.stage.asType('AcceptingApplications')
+    );
+  }
+  if (stage.stage.isOfType('ReviewPeriod')) {
+    return classifyActiveOpeningStageReviewPeriod(
+      opening,
+      queryer,
+      stage.stage.asType('ReviewPeriod')
+    );
+  }
+  if (stage.stage.isOfType('Deactivated')) {
+    return classifyActiveOpeningStageDeactivated(
+      queryer,
+      stage.stage.value as Deactivated
+    );
   }
 
   throw new Error('Unknown active opening stage: ' + stage.stage.type);

+ 4 - 0
pioneer/packages/joy-roles/src/tabs/MyRoles.tsx

@@ -129,6 +129,7 @@ export const CurrentRoles = Loadable<CurrentRolesProps>(
             <Table.Header>
               <Table.Row>
                 <Table.HeaderCell>Role</Table.HeaderCell>
+                <Table.HeaderCell>Worker / Curator ID</Table.HeaderCell>
                 <Table.HeaderCell>Earned</Table.HeaderCell>
                 <Table.HeaderCell>Stake</Table.HeaderCell>
                 <Table.HeaderCell></Table.HeaderCell>
@@ -140,6 +141,9 @@ export const CurrentRoles = Loadable<CurrentRolesProps>(
                   <Table.Cell>
                     <RoleName name={role.name} url={role.url} />
                   </Table.Cell>
+                  <Table.Cell>
+                    {role.workerId.toString()}
+                  </Table.Cell>
                   <Table.Cell>
                     {formatBalance(role.reward)}
                   </Table.Cell>

+ 18 - 8
pioneer/packages/joy-utils/src/MemberProfilePreview.tsx

@@ -25,23 +25,26 @@ const StyledProfilePreview = styled.div`
   }
 `;
 
-const Details = styled.div``;
+const Details = styled.div`
+  margin-left: 1rem;
+  display: grid;
+  grid-row-gap: 0.25rem;
+  grid-template-columns: 100%;
+`;
 
 const DetailsHandle = styled.h4`
   margin: 0;
-  margin-left: 1rem;
   font-weight: bold;
   color: #333;
 `;
 
 const DetailsID = styled.div`
-  margin: 0;
-  margin-top: 0.25rem;
-  margin-left: 1rem;
   color: #777;
 `;
 
-export default function ProfilePreview ({ id, avatar_uri, root_account, handle, link = false }: ProfileItemProps) {
+export default function ProfilePreview (
+  { id, avatar_uri, root_account, handle, link = false, children }: React.PropsWithChildren<ProfileItemProps>
+) {
   const Preview = (
     <StyledProfilePreview>
       {avatar_uri.toString() ? (
@@ -52,6 +55,7 @@ export default function ProfilePreview ({ id, avatar_uri, root_account, handle,
       <Details>
         <DetailsHandle>{handle.toString()}</DetailsHandle>
         { id !== undefined && <DetailsID>ID: {id.toString()}</DetailsID> }
+        { children }
       </Details>
     </StyledProfilePreview>
   );
@@ -69,7 +73,13 @@ type ProfilePreviewFromStructProps = {
   id?: number | MemberId;
 };
 
-export function ProfilePreviewFromStruct ({ profile, link, id }: ProfilePreviewFromStructProps) {
+export function ProfilePreviewFromStruct (
+  { profile, link, id, children }: React.PropsWithChildren<ProfilePreviewFromStructProps>
+) {
   const { avatar_uri, root_account, handle } = profile;
-  return <ProfilePreview {...{ avatar_uri, root_account, handle, link, id }} />;
+  return (
+    <ProfilePreview {...{ avatar_uri, root_account, handle, link, id }}>
+      {children}
+    </ProfilePreview>
+  );
 }

+ 99 - 14
pioneer/packages/joy-utils/src/consts/proposals.ts

@@ -3,12 +3,13 @@ import { ProposalType, ProposalMeta } from '../types/proposals';
 export const metadata: { [k in ProposalType]: ProposalMeta } = {
   EvictStorageProvider: {
     description: 'Evicting Storage Provider Proposal',
-    category: 'Storage',
+    category: 'Other',
     stake: 25000,
     approvalQuorum: 50,
     approvalThreshold: 75,
     slashingQuorum: 60,
-    slashingThreshold: 80
+    slashingThreshold: 80,
+    outdated: true
   },
   Text: {
     description: 'Signal Proposal',
@@ -21,12 +22,13 @@ export const metadata: { [k in ProposalType]: ProposalMeta } = {
   },
   SetStorageRoleParameters: {
     description: 'Set Storage Role Params Proposal',
-    category: 'Storage',
+    category: 'Other',
     stake: 100000,
     approvalQuorum: 66,
     approvalThreshold: 80,
     slashingQuorum: 60,
-    slashingThreshold: 80
+    slashingThreshold: 80,
+    outdated: true
   },
   SetValidatorCount: {
     description: 'Set Max Validator Count Proposal',
@@ -84,12 +86,75 @@ export const metadata: { [k in ProposalType]: ProposalMeta } = {
   },
   AddWorkingGroupLeaderOpening: {
     description: 'Add Working Group Leader Opening Proposal',
-    category: 'Other',
+    category: 'Working Groups',
     stake: 100000,
     approvalQuorum: 60,
     approvalThreshold: 80,
     slashingQuorum: 60,
     slashingThreshold: 80
+  },
+  SetWorkingGroupMintCapacity: {
+    description: 'Set Working Group Mint Capacity Proposal',
+    category: 'Working Groups',
+    stake: 50000,
+    approvalQuorum: 60,
+    approvalThreshold: 75,
+    slashingQuorum: 60,
+    slashingThreshold: 80
+  },
+  BeginReviewWorkingGroupLeaderApplication: {
+    description: 'Begin Working Group Leader Applications Review Proposal',
+    category: 'Working Groups',
+    stake: 25000,
+    approvalQuorum: 60,
+    approvalThreshold: 75,
+    slashingQuorum: 60,
+    slashingThreshold: 80
+  },
+  FillWorkingGroupLeaderOpening: {
+    description: 'Fill Working Group Leader Opening Proposal',
+    category: 'Working Groups',
+    stake: 50000,
+    approvalQuorum: 60,
+    approvalThreshold: 75,
+    slashingQuorum: 60,
+    slashingThreshold: 80
+  },
+  DecreaseWorkingGroupLeaderStake: {
+    description: 'Decrease Working Group Leader Stake Proposal',
+    category: 'Working Groups',
+    stake: 50000,
+    approvalQuorum: 60,
+    approvalThreshold: 75,
+    slashingQuorum: 60,
+    slashingThreshold: 80
+  },
+  SlashWorkingGroupLeaderStake: {
+    description: 'Slash Working Group Leader Stake Proposal',
+    category: 'Working Groups',
+    stake: 50000,
+    approvalQuorum: 60,
+    approvalThreshold: 75,
+    slashingQuorum: 60,
+    slashingThreshold: 80
+  },
+  SetWorkingGroupLeaderReward: {
+    description: 'Set Working Group Leader Reward Proposal',
+    category: 'Working Groups',
+    stake: 50000,
+    approvalQuorum: 60,
+    approvalThreshold: 75,
+    slashingQuorum: 60,
+    slashingThreshold: 80
+  },
+  TerminateWorkingGroupLeaderRole: {
+    description: 'Terminate Working Group Leader Role Proposal',
+    category: 'Working Groups',
+    stake: 100000,
+    approvalQuorum: 66,
+    approvalThreshold: 80,
+    slashingQuorum: 60,
+    slashingThreshold: 80
   }
 };
 
@@ -97,19 +162,11 @@ type ProposalsApiMethodNames = {
   votingPeriod: string;
   gracePeriod: string;
 }
-export const apiMethods: { [k in ProposalType]: ProposalsApiMethodNames } = {
-  EvictStorageProvider: {
-    votingPeriod: 'evictStorageProviderProposalVotingPeriod',
-    gracePeriod: 'evictStorageProviderProposalPeriod'
-  },
+export const apiMethods: { [k in ProposalType]?: ProposalsApiMethodNames } = {
   Text: {
     votingPeriod: 'textProposalVotingPeriod',
     gracePeriod: 'textProposalGracePeriod'
   },
-  SetStorageRoleParameters: {
-    votingPeriod: 'setStorageRoleParametersProposalVotingPeriod',
-    gracePeriod: 'setStorageRoleParametersProposalGracePeriod'
-  },
   SetValidatorCount: {
     votingPeriod: 'setValidatorCountProposalVotingPeriod',
     gracePeriod: 'setValidatorCountProposalGracePeriod'
@@ -137,6 +194,34 @@ export const apiMethods: { [k in ProposalType]: ProposalsApiMethodNames } = {
   AddWorkingGroupLeaderOpening: {
     votingPeriod: 'addWorkingGroupOpeningProposalVotingPeriod',
     gracePeriod: 'addWorkingGroupOpeningProposalGracePeriod'
+  },
+  SetWorkingGroupMintCapacity: {
+    votingPeriod: 'setWorkingGroupMintCapacityProposalVotingPeriod',
+    gracePeriod: 'setWorkingGroupMintCapacityProposalGracePeriod'
+  },
+  BeginReviewWorkingGroupLeaderApplication: {
+    votingPeriod: 'beginReviewWorkingGroupLeaderApplicationsProposalVotingPeriod',
+    gracePeriod: 'beginReviewWorkingGroupLeaderApplicationsProposalGracePeriod'
+  },
+  FillWorkingGroupLeaderOpening: {
+    votingPeriod: 'fillWorkingGroupLeaderOpeningProposalVotingPeriod',
+    gracePeriod: 'fillWorkingGroupLeaderOpeningProposalGracePeriod'
+  },
+  DecreaseWorkingGroupLeaderStake: {
+    votingPeriod: 'decreaseWorkingGroupLeaderStakeProposalVotingPeriod',
+    gracePeriod: 'decreaseWorkingGroupLeaderStakeProposalGracePeriod'
+  },
+  SlashWorkingGroupLeaderStake: {
+    votingPeriod: 'slashWorkingGroupLeaderStakeProposalVotingPeriod',
+    gracePeriod: 'slashWorkingGroupLeaderStakeProposalGracePeriod'
+  },
+  SetWorkingGroupLeaderReward: {
+    votingPeriod: 'setWorkingGroupLeaderRewardProposalVotingPeriod',
+    gracePeriod: 'setWorkingGroupLeaderRewardProposalGracePeriod'
+  },
+  TerminateWorkingGroupLeaderRole: {
+    votingPeriod: 'terminateWorkingGroupLeaderRoleProposalVotingPeriod',
+    gracePeriod: 'terminateWorkingGroupLeaderRoleProposalGracePeriod'
   }
 } as const;
 

+ 2 - 2
pioneer/packages/joy-utils/src/consts/workingGroups.ts

@@ -1,4 +1,4 @@
-import { WorkingGroupKeys } from '@joystream/types/common';
-export const apiModuleByGroup: { [k in WorkingGroupKeys]: string } = {
+import { WorkingGroupKey } from '@joystream/types/common';
+export const apiModuleByGroup: { [k in WorkingGroupKey]: string } = {
   Storage: 'storageWorkingGroup'
 };

+ 22 - 0
pioneer/packages/joy-utils/src/functions/format.ts

@@ -0,0 +1,22 @@
+import { RewardRelationship } from '@joystream/types/recurring-rewards';
+import { formatBalance } from '@polkadot/util';
+import { Option } from '@polkadot/types';
+import { RewardPolicy } from '@joystream/types/working-group';
+
+export const formatReward = (
+  {
+    amount_per_payout: amount,
+    payout_interval: interval,
+    next_payment_at_block
+  }: RewardRelationship | RewardPolicy,
+  showNextPaymentBlock = false
+) => {
+  const nextPaymentBlock = (next_payment_at_block instanceof Option)
+    ? next_payment_at_block.unwrapOr(null)
+    : next_payment_at_block;
+
+  return (
+    `${formatBalance(amount)}${interval.isSome ? ` / ${interval.unwrap()} block(s)` : ''}` +
+    ((showNextPaymentBlock && nextPaymentBlock) ? ` (Next payment: #${nextPaymentBlock})` : '')
+  );
+};

+ 3 - 3
pioneer/packages/joy-utils/src/index.ts

@@ -7,7 +7,7 @@ import keyring from '@polkadot/ui-keyring';
 // Joystream Stake utils
 // --------------------------------------
 
-import { Stake, Backer } from '@joystream/types/council';
+import { ElectionStake, Backer } from '@joystream/types/council';
 
 // Substrate/Polkadot API utils
 // --------------------------------------
@@ -117,11 +117,11 @@ export function newOptionalText (str?: string): OptionalText {
   return new Option(Text, text);
 }
 
-export function calcTotalStake (stakes: Stake | Stake[] | undefined): BN {
+export function calcTotalStake (stakes: ElectionStake | ElectionStake[] | undefined): BN {
   if (typeof stakes === 'undefined') {
     return ZERO;
   }
-  const total = (stake: Stake) => stake.new.add(stake.transferred);
+  const total = (stake: ElectionStake) => stake.new.add(stake.transferred);
   try {
     if (Array.isArray(stakes)) {
       return stakes.reduce((accum, stake) => {

+ 102 - 0
pioneer/packages/joy-utils/src/react/components/working-groups/ApplicationDetails.tsx

@@ -0,0 +1,102 @@
+import React, { useState } from 'react';
+import { ParsedApplication } from '../../../types/workingGroups';
+import { ProfilePreviewFromStruct as MemberPreview } from '../../../MemberProfilePreview';
+import { useTransport, usePromise } from '../../hooks';
+import { Item, Label, Button } from 'semantic-ui-react';
+import { formatBalance } from '@polkadot/util';
+import { WorkingGroupKey } from '@joystream/types/common';
+import PromiseComponent from '../PromiseComponent';
+
+type ApplicationsDetailsProps = {
+  applications: ParsedApplication[];
+  acceptedIds?: number[];
+}
+
+export const ApplicationsDetails = ({ applications, acceptedIds }: ApplicationsDetailsProps) => {
+  const rejectedApplications = acceptedIds !== undefined ? applications.filter(a => !acceptedIds.includes(a.wgApplicationId)) : [];
+  const [showAll, setShowAll] = useState(!rejectedApplications.length);
+  const shownApplications = applications.filter(a => showAll || acceptedIds?.includes(a.wgApplicationId));
+  return (<>
+    <Item.Group>
+      {
+        shownApplications.map(({ member, stakes, wgApplicationId, humanReadableText }) => {
+          let HRT = humanReadableText.toString();
+          const accepted = acceptedIds?.includes(wgApplicationId);
+          try { HRT = JSON.stringify(JSON.parse(HRT), undefined, 4); } catch (e) { /* Do nothing */ }
+          return (
+            <Item key={wgApplicationId} style={{
+              background: 'white',
+              padding: '1em 1.5em',
+              boxShadow: `0 0 0.5rem 1px ${accepted ? '#21ba45' : (acceptedIds !== undefined ? '#db282899' : '#00000050')}`
+            }}>
+              <Item.Content>
+                <Item.Header><MemberPreview profile={member}></MemberPreview></Item.Header>
+                <Item.Meta>
+                  <Label>Application id: {wgApplicationId}</Label>
+                  { stakes.application > 0 && <Label>Appl. stake: {formatBalance(stakes.application)}</Label> }
+                  { stakes.role > 0 && <Label>Role stake: {formatBalance(stakes.role)}</Label> }
+                </Item.Meta>
+                <Item.Description>
+                  <pre style={{
+                    whiteSpace: 'pre-wrap',
+                    fontWeight: 'normal'
+                  }}>
+                    {HRT}
+                  </pre>
+                </Item.Description>
+              </Item.Content>
+            </Item>
+          );
+        })
+      }
+    </Item.Group>
+    {rejectedApplications.length > 0 && (
+      <Button fluid onClick={() => setShowAll(current => !current)}>
+        { showAll ? 'Hide rejected applications' : 'Show rejected applications' }
+      </Button>
+    )}
+  </>);
+};
+
+type ApplicationsDetailsByIdsProps = {
+  group: WorkingGroupKey;
+  ids: number[];
+  acceptedIds?: number[];
+};
+
+export const ApplicationsDetailsByIds = ({ group, ids, acceptedIds }: ApplicationsDetailsByIdsProps) => {
+  const transport = useTransport();
+  const [applications, error, loading] = usePromise<ParsedApplication[]>(
+    () => Promise.all(ids.map(id => transport.workingGroups.parsedApplicationById(group, id))),
+    [],
+    [ids]
+  );
+
+  return (
+    <PromiseComponent {...{ error, loading }} message="Fetching application(s)...">
+      <ApplicationsDetails applications={applications} acceptedIds={acceptedIds}/>
+    </PromiseComponent>
+  );
+};
+
+type ApplicationsDetailsByOpeningProps = {
+  group: WorkingGroupKey;
+  openingId: number;
+  acceptedIds?: number[];
+};
+
+export const ApplicationsDetailsByOpening = ({ group, openingId, acceptedIds }: ApplicationsDetailsByOpeningProps) => {
+  const transport = useTransport();
+  const [applications, error, loading] = usePromise<ParsedApplication[]>(
+    // Cannot filter by active, otherwise the details will be broken once opening is filled!
+    () => transport.workingGroups.openingApplications(group, openingId),
+    [],
+    [openingId]
+  );
+
+  return (
+    <PromiseComponent {...{ error, loading }} message="Fetching applications...">
+      <ApplicationsDetails applications={applications} acceptedIds={acceptedIds}/>
+    </PromiseComponent>
+  );
+};

+ 56 - 0
pioneer/packages/joy-utils/src/react/components/working-groups/LeadInfo.tsx

@@ -0,0 +1,56 @@
+import React from 'react';
+import { WorkerData } from '../../../types/workingGroups';
+import { ProfilePreviewFromStruct as MemberPreview } from '../../../MemberProfilePreview';
+import { Label, Message } from 'semantic-ui-react';
+import { formatBalance } from '@polkadot/util';
+import { WorkingGroupKey } from '@joystream/types/common';
+import { useTransport, usePromise } from '../../hooks';
+import PromiseComponent from '../PromiseComponent';
+import { formatReward } from '@polkadot/joy-utils/functions/format';
+
+type LeadInfoProps = {
+  lead: WorkerData | null;
+  group?: WorkingGroupKey;
+  header?: boolean;
+  emptyMessage?: string;
+};
+
+export const LeadInfo = ({ lead, group, header = false, emptyMessage = 'NONE' }: LeadInfoProps) => (
+  <Message>
+    <Message.Content>
+      { header && <Message.Header>Current {group && `${group} `}Working Group lead:</Message.Header> }
+      <div style={{ padding: '0.5rem 0' }}>
+        { lead
+          ? (
+            <MemberPreview profile={lead.profile}>
+              <div>
+                <Label>Role stake: <b>{ lead.stake ? formatBalance(lead.stake) : 'NONE'}</b></Label>
+                <Label>Reward: <b>{ lead.reward ? formatReward(lead.reward) : 'NONE' }</b></Label>
+              </div>
+            </MemberPreview>
+          ) : emptyMessage
+        }
+      </div>
+    </Message.Content>
+  </Message>
+);
+
+type LeadInfoFromIdProps = {
+  leadId: number;
+  group: WorkingGroupKey;
+};
+
+export const LeadInfoFromId = ({ leadId, group }: LeadInfoFromIdProps) => {
+  const transport = useTransport();
+  const [lead, error, loading] = usePromise<WorkerData | null>(
+    () => transport.workingGroups.groupMemberById(group, leadId),
+    null,
+    [leadId]
+  );
+
+  return (
+    <PromiseComponent error={error} loading={loading} message="Fetching current lead...">
+      <LeadInfo lead={lead} group={group} header={false} emptyMessage="Leader no longer active!"/>
+    </PromiseComponent>
+  );
+};

+ 22 - 3
pioneer/packages/joy-utils/src/react/hooks/usePromise.tsx

@@ -2,7 +2,12 @@ import { useState, useEffect, useCallback } from 'react';
 
 export type UsePromiseReturnValues<T> = [T, any, boolean, () => Promise<void|null>];
 
-export default function usePromise<T> (promise: () => Promise<T>, defaultValue: T, dependsOn: any[] = []): UsePromiseReturnValues<T> {
+export default function usePromise<T> (
+  promise: () => Promise<T>,
+  defaultValue: T,
+  dependsOn: any[] = [],
+  onUpdate?: (newValue: T) => void
+): UsePromiseReturnValues<T> {
   const [state, setState] = useState<{
     value: T;
     error: any;
@@ -12,8 +17,22 @@ export default function usePromise<T> (promise: () => Promise<T>, defaultValue:
   let isSubscribed = true;
   const execute = useCallback(() => {
     return promise()
-      .then(value => (isSubscribed ? setState({ value, error: null, isPending: false }) : null))
-      .catch(error => (isSubscribed ? setState({ value: defaultValue, error: error, isPending: false }) : null));
+      .then(value => {
+        if (isSubscribed) {
+          setState({ value, error: null, isPending: false });
+          if (onUpdate) {
+            onUpdate(value);
+          }
+        }
+      })
+      .catch(error => {
+        if (isSubscribed) {
+          setState({ value: defaultValue, error: error, isPending: false });
+          if (onUpdate) {
+            onUpdate(defaultValue); // This should represent an empty value in most cases
+          }
+        }
+      });
   }, [promise]);
 
   useEffect(() => {

+ 12 - 0
pioneer/packages/joy-utils/src/transport/base.ts

@@ -44,6 +44,18 @@ export default abstract class BaseTransport {
     return this.api.query.minting;
   }
 
+  protected get hiring () {
+    return this.api.query.hiring;
+  }
+
+  protected get stake () {
+    return this.api.query.stake;
+  }
+
+  protected get recurringRewards () {
+    return this.api.query.recurringRewards;
+  }
+
   protected queryMethodByName (name: string) {
     const [module, method] = name.split('.');
     return this.api.query[module][method];

+ 8 - 9
pioneer/packages/joy-utils/src/transport/proposals.ts

@@ -154,15 +154,14 @@ export default class ProposalsTransport extends BaseTransport {
   }
 
   async parametersFromProposalType (type: ProposalType) {
-    const { votingPeriod: votingPeriodMethod, gracePeriod: gracePeriodMethod } = proposalsApiMethods[type];
-    // TODO: Remove the fallback after outdated proposals are removed
-    const votingPeriod = this.proposalsCodex[votingPeriodMethod]
-      ? ((await this.proposalsCodex[votingPeriodMethod]()) as u32).toNumber()
-      : 0;
-    const gracePeriod = this.proposalsCodex[gracePeriodMethod]
-      ? ((await this.proposalsCodex[gracePeriodMethod]()) as u32).toNumber()
-      : 0;
-    // Currently it's same for all types, but this will change soon
+    const methods = proposalsApiMethods[type];
+    let votingPeriod = 0;
+    let gracePeriod = 0;
+    if (methods) {
+      votingPeriod = ((await this.proposalsCodex[methods.votingPeriod]()) as u32).toNumber();
+      gracePeriod = ((await this.proposalsCodex[methods.gracePeriod]()) as u32).toNumber();
+    }
+    // Currently it's same for all types, but this will change soon (?)
     const cancellationFee = this.cancellationFee();
     return {
       type,

+ 140 - 15
pioneer/packages/joy-utils/src/transport/workingGroups.ts

@@ -1,12 +1,17 @@
 import { Option } from '@polkadot/types/';
+import { Balance } from '@polkadot/types/interfaces';
 import BaseTransport from './base';
 import { ApiPromise } from '@polkadot/api';
 import MembersTransport from './members';
 import { SingleLinkedMapEntry } from '../index';
-import { Worker, WorkerId } from '@joystream/types/working-group';
+import { Worker, WorkerId, Opening as WGOpening, Application as WGApplication, OpeningTypeKey } from '@joystream/types/working-group';
 import { apiModuleByGroup } from '../consts/workingGroups';
-import { WorkingGroupKeys } from '@joystream/types/common';
-import { LeadWithProfile } from '../types/workingGroups';
+import { WorkingGroupKey } from '@joystream/types/common';
+import { WorkerData, OpeningData, ParsedApplication } from '../types/workingGroups';
+import { OpeningId, ApplicationId, Opening, Application, ActiveOpeningStageKey } from '@joystream/types/hiring';
+import { MultipleLinkedMapEntry } from '../LinkedMapEntry';
+import { Stake, StakeId } from '@joystream/types/stake';
+import { RewardRelationshipId, RewardRelationship } from '@joystream/types/recurring-rewards';
 
 export default class WorkingGroupsTransport extends BaseTransport {
   private membersT: MembersTransport;
@@ -16,32 +21,152 @@ export default class WorkingGroupsTransport extends BaseTransport {
     this.membersT = membersTransport;
   }
 
-  protected queryByGroup (group: WorkingGroupKeys) {
+  protected queryByGroup (group: WorkingGroupKey) {
     const module = apiModuleByGroup[group];
     return this.api.query[module];
   }
 
-  public async currentLead (group: WorkingGroupKeys): Promise <LeadWithProfile | null> {
+  public async groupMemberById (group: WorkingGroupKey, workerId: number): Promise<WorkerData | null> {
+    const workerLink = new SingleLinkedMapEntry(
+      Worker,
+      await this.queryByGroup(group).workerById(workerId)
+    );
+    const worker = workerLink.value;
+
+    if (!worker.is_active) {
+      return null;
+    }
+
+    const stake = worker.role_stake_profile.isSome
+      ? (await this.stakeValue(worker.role_stake_profile.unwrap().stake_id)).toNumber()
+      : undefined;
+
+    const reward = worker.reward_relationship.isSome
+      ? (await this.rewardRelationship(worker.reward_relationship.unwrap()))
+      : undefined;
+
+    const profile = await this.membersT.expectedMemberProfile(worker.member_id);
+
+    return { group, workerId, worker, profile, stake, reward };
+  }
+
+  public async currentLead (group: WorkingGroupKey): Promise<WorkerData | null> {
     const optLeadId = (await this.queryByGroup(group).currentLead()) as Option<WorkerId>;
 
     if (!optLeadId.isSome) {
       return null;
     }
 
-    const leadWorkerId = optLeadId.unwrap();
-    const leadWorkerLink = new SingleLinkedMapEntry(
-      Worker,
-      await this.queryByGroup(group).workerById(leadWorkerId)
-    );
-    const leadWorker = leadWorkerLink.value;
+    const leadWorkerId = optLeadId.unwrap().toNumber();
 
-    if (!leadWorker.is_active) {
-      return null;
+    return this.groupMemberById(group, leadWorkerId);
+  }
+
+  public async allOpenings (group: WorkingGroupKey, type?: OpeningTypeKey): Promise<OpeningData[]> {
+    const nextId = (await this.queryByGroup(group).nextOpeningId()) as OpeningId;
+
+    if (nextId.eq(0)) {
+      return [];
+    }
+
+    const query = this.queryByGroup(group).openingById();
+    const result = new MultipleLinkedMapEntry(OpeningId, WGOpening, await query);
+
+    const { linked_keys: openingIds, linked_values: openings } = result;
+    return (await Promise.all(openings.map(opening => this.hiring.openingById(opening.hiring_opening_id))))
+      .map((hiringOpeningRes, index) => {
+        const id = openingIds[index];
+        const opening = openings[index];
+        const hiringOpening = (new SingleLinkedMapEntry(Opening, hiringOpeningRes)).value;
+        return { id, opening, hiringOpening };
+      })
+      .filter(openingData => !type || openingData.opening.opening_type.isOfType(type));
+  }
+
+  public async activeOpenings (group: WorkingGroupKey, substage?: ActiveOpeningStageKey, type?: OpeningTypeKey) {
+    return (await this.allOpenings(group, type))
+      .filter(od =>
+        od.hiringOpening.stage.isOfType('Active') &&
+        (!substage || od.hiringOpening.stage.asType('Active').stage.isOfType(substage))
+      );
+  }
+
+  async wgApplicationById (group: WorkingGroupKey, wgApplicationId: number | ApplicationId): Promise<WGApplication> {
+    const nextAppId = await this.queryByGroup(group).nextApplicationId() as ApplicationId;
+
+    if (wgApplicationId < 0 || wgApplicationId >= nextAppId.toNumber()) {
+      throw new Error(`Invalid working group application ID (${wgApplicationId})!`);
     }
 
+    return new SingleLinkedMapEntry(
+      WGApplication,
+      await this.queryByGroup(group).applicationById(wgApplicationId)
+    ).value;
+  }
+
+  protected async hiringApplicationById (id: number | ApplicationId): Promise<Application> {
+    return new SingleLinkedMapEntry(
+      Application,
+      await this.hiring.applicationById(id)
+    ).value;
+  }
+
+  protected async stakeValue (stakeId: StakeId): Promise<Balance> {
+    return new SingleLinkedMapEntry(
+      Stake,
+      await this.stake.stakes(stakeId)
+    ).value.value;
+  }
+
+  protected async rewardRelationship (relationshipId: RewardRelationshipId): Promise<RewardRelationship> {
+    return new SingleLinkedMapEntry(
+      RewardRelationship,
+      await this.recurringRewards.rewardRelationships(relationshipId)
+    ).value;
+  }
+
+  protected async parseApplication (wgApplicationId: number, wgApplication: WGApplication): Promise<ParsedApplication> {
+    const appId = wgApplication.application_id;
+    const application = await this.hiringApplicationById(appId);
+
+    const { active_role_staking_id: roleStakingId, active_application_staking_id: appStakingId } = application;
+
     return {
-      worker: leadWorker,
-      profile: await this.membersT.expectedMemberProfile(leadWorker.member_id)
+      wgApplicationId,
+      applicationId: appId.toNumber(),
+      member: await this.membersT.expectedMemberProfile(wgApplication.member_id),
+      roleAccout: wgApplication.role_account_id,
+      stakes: {
+        application: appStakingId.isSome ? (await this.stakeValue(appStakingId.unwrap())).toNumber() : 0,
+        role: roleStakingId.isSome ? (await this.stakeValue(roleStakingId.unwrap())).toNumber() : 0
+      },
+      humanReadableText: application.human_readable_text.toString(),
+      stage: application.stage
     };
   }
+
+  async parsedApplicationById (group: WorkingGroupKey, wgApplicationId: number): Promise<ParsedApplication> {
+    const wgApplication = await this.wgApplicationById(group, wgApplicationId);
+    return this.parseApplication(wgApplicationId, wgApplication);
+  }
+
+  async openingApplications (group: WorkingGroupKey, wgOpeningId: number): Promise<ParsedApplication[]> {
+    const applications: ParsedApplication[] = [];
+
+    const nextAppId = await this.queryByGroup(group).nextApplicationId() as ApplicationId;
+    for (let i = 0; i < nextAppId.toNumber(); i++) {
+      const wgApplication = await this.wgApplicationById(group, i);
+      if (wgApplication.opening_id.toNumber() !== wgOpeningId) {
+        continue;
+      }
+      applications.push(await this.parseApplication(i, wgApplication));
+    }
+
+    return applications;
+  }
+
+  async openingActiveApplications (group: WorkingGroupKey, wgOpeningId: number): Promise<ParsedApplication[]> {
+    return (await this.openingApplications(group, wgOpeningId))
+      .filter(a => a.stage.isOfType('Active'));
+  }
 }

+ 10 - 2
pioneer/packages/joy-utils/src/types/proposals.ts

@@ -13,7 +13,14 @@ export const ProposalTypes = [
   'EvictStorageProvider',
   'SetValidatorCount',
   'SetStorageRoleParameters',
-  'AddWorkingGroupLeaderOpening'
+  'AddWorkingGroupLeaderOpening',
+  'SetWorkingGroupMintCapacity',
+  'BeginReviewWorkingGroupLeaderApplication',
+  'FillWorkingGroupLeaderOpening',
+  'SlashWorkingGroupLeaderStake',
+  'DecreaseWorkingGroupLeaderStake',
+  'SetWorkingGroupLeaderReward',
+  'TerminateWorkingGroupLeaderRole'
 ] as const;
 
 export type ProposalType = typeof ProposalTypes[number];
@@ -53,10 +60,10 @@ export type ProposalVotes = {
 };
 
 export const Categories = {
-  storage: 'Storage',
   council: 'Council',
   validators: 'Validators',
   cwg: 'Content Working Group',
+  wg: 'Working Groups',
   other: 'Other'
 } as const;
 
@@ -70,6 +77,7 @@ export type ProposalMeta = {
   approvalThreshold: number;
   slashingQuorum: number;
   slashingThreshold: number;
+  outdated?: boolean;
 }
 
 export type ParsedPost = {

+ 29 - 2
pioneer/packages/joy-utils/src/types/workingGroups.ts

@@ -1,7 +1,34 @@
-import { Worker } from '@joystream/types/working-group';
+import { Worker, Opening as WGOpening } from '@joystream/types/working-group';
 import { Profile } from '@joystream/types/members';
+import { OpeningId, Opening, ApplicationStage } from '@joystream/types/hiring';
+import { AccountId } from '@polkadot/types/interfaces';
+import { WorkingGroupKey } from '@joystream/types/common';
+import { RewardRelationship } from '@joystream/types/recurring-rewards';
 
-export type LeadWithProfile = {
+export type WorkerData = {
+  workerId: number;
   worker: Worker;
   profile: Profile;
+  stake?: number;
+  reward?: RewardRelationship;
+  group: WorkingGroupKey;
 };
+
+export type OpeningData = {
+  id: OpeningId;
+  opening: WGOpening;
+  hiringOpening: Opening;
+}
+
+export type ParsedApplication = {
+  wgApplicationId: number;
+  applicationId: number;
+  member: Profile;
+  roleAccout: AccountId;
+  stakes: {
+    application: number;
+    role: number;
+  };
+  humanReadableText: string;
+  stage: ApplicationStage;
+}

+ 1 - 0
storage-node/.prettierignore

@@ -0,0 +1 @@
+packages/cli/dist

+ 3 - 4
storage-node/.travis.yml

@@ -1,9 +1,9 @@
 language: node_js
 
 node_js:
-    - 10
-    - 12
-    - 13
+  - 10
+  - 12
+  - 13
 
 services:
   - docker
@@ -12,4 +12,3 @@ script:
   - docker-compose -f ./scripts/compose/devchain-and-ipfs-node/docker-compose.yaml up -d
   - yarn test
   - docker-compose -f ./scripts/compose/devchain-and-ipfs-node/docker-compose.yaml stop
-

+ 70 - 70
storage-node/LICENSE.md

@@ -217,23 +217,23 @@ produce it from the Program, in the form of source code under the
 terms of section 4, provided that you also meet all of these
 conditions:
 
--   a) The work must carry prominent notices stating that you modified
-    it, and giving a relevant date.
--   b) The work must carry prominent notices stating that it is
-    released under this License and any conditions added under
-    section 7. This requirement modifies the requirement in section 4
-    to "keep intact all notices".
--   c) You must license the entire work, as a whole, under this
-    License to anyone who comes into possession of a copy. This
-    License will therefore apply, along with any applicable section 7
-    additional terms, to the whole of the work, and all its parts,
-    regardless of how they are packaged. This License gives no
-    permission to license the work in any other way, but it does not
-    invalidate such permission if you have separately received it.
--   d) If the work has interactive user interfaces, each must display
-    Appropriate Legal Notices; however, if the Program has interactive
-    interfaces that do not display Appropriate Legal Notices, your
-    work need not make them do so.
+- a) The work must carry prominent notices stating that you modified
+  it, and giving a relevant date.
+- b) The work must carry prominent notices stating that it is
+  released under this License and any conditions added under
+  section 7. This requirement modifies the requirement in section 4
+  to "keep intact all notices".
+- c) You must license the entire work, as a whole, under this
+  License to anyone who comes into possession of a copy. This
+  License will therefore apply, along with any applicable section 7
+  additional terms, to the whole of the work, and all its parts,
+  regardless of how they are packaged. This License gives no
+  permission to license the work in any other way, but it does not
+  invalidate such permission if you have separately received it.
+- d) If the work has interactive user interfaces, each must display
+  Appropriate Legal Notices; however, if the Program has interactive
+  interfaces that do not display Appropriate Legal Notices, your
+  work need not make them do so.
 
 A compilation of a covered work with other separate and independent
 works, which are not by their nature extensions of the covered work,
@@ -252,42 +252,42 @@ sections 4 and 5, provided that you also convey the machine-readable
 Corresponding Source under the terms of this License, in one of these
 ways:
 
--   a) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by the
-    Corresponding Source fixed on a durable physical medium
-    customarily used for software interchange.
--   b) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by a
-    written offer, valid for at least three years and valid for as
-    long as you offer spare parts or customer support for that product
-    model, to give anyone who possesses the object code either (1) a
-    copy of the Corresponding Source for all the software in the
-    product that is covered by this License, on a durable physical
-    medium customarily used for software interchange, for a price no
-    more than your reasonable cost of physically performing this
-    conveying of source, or (2) access to copy the Corresponding
-    Source from a network server at no charge.
--   c) Convey individual copies of the object code with a copy of the
-    written offer to provide the Corresponding Source. This
-    alternative is allowed only occasionally and noncommercially, and
-    only if you received the object code with such an offer, in accord
-    with subsection 6b.
--   d) Convey the object code by offering access from a designated
-    place (gratis or for a charge), and offer equivalent access to the
-    Corresponding Source in the same way through the same place at no
-    further charge. You need not require recipients to copy the
-    Corresponding Source along with the object code. If the place to
-    copy the object code is a network server, the Corresponding Source
-    may be on a different server (operated by you or a third party)
-    that supports equivalent copying facilities, provided you maintain
-    clear directions next to the object code saying where to find the
-    Corresponding Source. Regardless of what server hosts the
-    Corresponding Source, you remain obligated to ensure that it is
-    available for as long as needed to satisfy these requirements.
--   e) Convey the object code using peer-to-peer transmission,
-    provided you inform other peers where the object code and
-    Corresponding Source of the work are being offered to the general
-    public at no charge under subsection 6d.
+- a) Convey the object code in, or embodied in, a physical product
+  (including a physical distribution medium), accompanied by the
+  Corresponding Source fixed on a durable physical medium
+  customarily used for software interchange.
+- b) Convey the object code in, or embodied in, a physical product
+  (including a physical distribution medium), accompanied by a
+  written offer, valid for at least three years and valid for as
+  long as you offer spare parts or customer support for that product
+  model, to give anyone who possesses the object code either (1) a
+  copy of the Corresponding Source for all the software in the
+  product that is covered by this License, on a durable physical
+  medium customarily used for software interchange, for a price no
+  more than your reasonable cost of physically performing this
+  conveying of source, or (2) access to copy the Corresponding
+  Source from a network server at no charge.
+- c) Convey individual copies of the object code with a copy of the
+  written offer to provide the Corresponding Source. This
+  alternative is allowed only occasionally and noncommercially, and
+  only if you received the object code with such an offer, in accord
+  with subsection 6b.
+- d) Convey the object code by offering access from a designated
+  place (gratis or for a charge), and offer equivalent access to the
+  Corresponding Source in the same way through the same place at no
+  further charge. You need not require recipients to copy the
+  Corresponding Source along with the object code. If the place to
+  copy the object code is a network server, the Corresponding Source
+  may be on a different server (operated by you or a third party)
+  that supports equivalent copying facilities, provided you maintain
+  clear directions next to the object code saying where to find the
+  Corresponding Source. Regardless of what server hosts the
+  Corresponding Source, you remain obligated to ensure that it is
+  available for as long as needed to satisfy these requirements.
+- e) Convey the object code using peer-to-peer transmission,
+  provided you inform other peers where the object code and
+  Corresponding Source of the work are being offered to the general
+  public at no charge under subsection 6d.
 
 A separable portion of the object code, whose source code is excluded
 from the Corresponding Source as a System Library, need not be
@@ -363,23 +363,23 @@ Notwithstanding any other provision of this License, for material you
 add to a covered work, you may (if authorized by the copyright holders
 of that material) supplement the terms of this License with terms:
 
--   a) Disclaiming warranty or limiting liability differently from the
-    terms of sections 15 and 16 of this License; or
--   b) Requiring preservation of specified reasonable legal notices or
-    author attributions in that material or in the Appropriate Legal
-    Notices displayed by works containing it; or
--   c) Prohibiting misrepresentation of the origin of that material,
-    or requiring that modified versions of such material be marked in
-    reasonable ways as different from the original version; or
--   d) Limiting the use for publicity purposes of names of licensors
-    or authors of the material; or
--   e) Declining to grant rights under trademark law for use of some
-    trade names, trademarks, or service marks; or
--   f) Requiring indemnification of licensors and authors of that
-    material by anyone who conveys the material (or modified versions
-    of it) with contractual assumptions of liability to the recipient,
-    for any liability that these contractual assumptions directly
-    impose on those licensors and authors.
+- a) Disclaiming warranty or limiting liability differently from the
+  terms of sections 15 and 16 of this License; or
+- b) Requiring preservation of specified reasonable legal notices or
+  author attributions in that material or in the Appropriate Legal
+  Notices displayed by works containing it; or
+- c) Prohibiting misrepresentation of the origin of that material,
+  or requiring that modified versions of such material be marked in
+  reasonable ways as different from the original version; or
+- d) Limiting the use for publicity purposes of names of licensors
+  or authors of the material; or
+- e) Declining to grant rights under trademark law for use of some
+  trade names, trademarks, or service marks; or
+- f) Requiring indemnification of licensors and authors of that
+  material by anyone who conveys the material (or modified versions
+  of it) with contractual assumptions of liability to the recipient,
+  for any liability that these contractual assumptions directly
+  impose on those licensors and authors.
 
 All other non-permissive additional terms are considered "further
 restrictions" within the meaning of section 10. If the Program as you

+ 31 - 14
storage-node/README.md

@@ -3,17 +3,17 @@
 This repository contains several Node packages, located under the `packages/`
 subdirectory. See each individual package for details:
 
-* [colossus](./packages/colossus/README.md) - the main colossus app.
-* [storage-node-backend](./packages/storage/README.md) - abstraction over the storage backend.
-* [storage-runtime-api](./packages/runtime-api/README.md) - convenience wrappers for the runtime API.
-* [storage-utils](./packages/util/README.md) - general utility functions.
-* [discovery](./packages/discovery/README.md) - service discovery using IPNS.
-* [storage-cli](./packages/cli/README.md) - cli for uploading and downloading content from the network
+- [colossus](./packages/colossus/README.md) - the main colossus app.
+- [storage-node-backend](./packages/storage/README.md) - abstraction over the storage backend.
+- [storage-runtime-api](./packages/runtime-api/README.md) - convenience wrappers for the runtime API.
+- [storage-utils](./packages/util/README.md) - general utility functions.
+- [discovery](./packages/discovery/README.md) - service discovery using IPNS.
+- [storage-cli](./packages/cli/README.md) - cli for uploading and downloading content from the network
+- [helios](./packages/helios/README.md) - cli tool for getting status of storage network
 
-Installation
-------------
+## Installation
 
-*Requirements*
+_Requirements_
 
 This project uses [yarn](https://yarnpkg.com/) as Node package manager. It also
 uses some node packages with native components, so make sure to install your
@@ -31,7 +31,7 @@ On Mac OS (using [homebrew](https://brew.sh/)):
 $ brew install libtool automake autoconf
 ```
 
-*Building*
+_Building_
 
 ```bash
 $ yarn install
@@ -43,7 +43,7 @@ The command will install dependencies, and make a `colossus` executable availabl
 $ yarn colossus --help
 ```
 
-*Testing*
+_Testing_
 
 Run an ipfs node and a joystream-node development chain (in separate terminals)
 
@@ -65,7 +65,7 @@ Running a development environment, after starting the ipfs node and development
 yarn storage-cli dev-init
 ```
 
-This will configure the running chain with alice as the storage lead and with a know role key for
+This will configure the running chain with alice as the storage lead and with a known role key for
 the storage provider.
 
 Run colossus in development mode:
@@ -77,11 +77,28 @@ yarn colossus --dev
 Start pioneer ui:
 ``sh
 yarn workspace pioneer start
-```
+
+````
 
 Browse pioneer on http://localhost:3000/
 You should find Alice account is the storage working group lead and is a storage provider
-Create a media channel. And upload a file.
+Create a media channel. And upload a file. You may have to wait a couple of minutes before
+the ipns of the storage-node is registered before you can upload a file, or you will get an error
+in pioneer.
 
 ## Detailed Setup and Configuration Guide
 For details on how to setup a storage node on the Joystream network, follow this [step by step guide](https://github.com/Joystream/helpdesk/tree/master/roles/storage-providers).
+
+## Running a development instance with Docker
+If you have docker installed you can run a fresh development setup using the utility scripts provided:
+
+First build a docker image of joystream-node from the root:
+
+```sh
+# Build the latest image
+scripts/build-joystream-node-docker-image.sh
+
+# Run docker-compose to start an ipfs node, and joystream-node in development mode
+# initializes the chain with development settings, and start a storage-node
+storage-node/scripts/run-dev-instance.sh
+````

+ 10 - 10
storage-node/docs/json-signing.md

@@ -5,15 +5,15 @@ on the order in which keys are added or even the system's collation method,
 signing JSON cryptographically is fraught with issues. We circumvent them
 by wrapping any JSON to be signed in another JSON object:
 
-* `version` contains the version of the wrapper JSON, currently always `1`.
-* `serialized` contains the serialized version of the data, currently this
+- `version` contains the version of the wrapper JSON, currently always `1`.
+- `serialized` contains the serialized version of the data, currently this
   will be the base64 encoded, serialized JSON payload.
-* `signature` contains the base64 encoded signature of the `serialized` field
+- `signature` contains the base64 encoded signature of the `serialized` field
   value prior to its base64 encoding.
-* `payload` [optional] contains the deserialized JSON object corresponding
+- `payload` [optional] contains the deserialized JSON object corresponding
   to the `serialized` payload.
 
-For signing and verification, we'll use polkadot's *ed25519* or *sr25519* keys
+For signing and verification, we'll use polkadot's _ed25519_ or _sr25519_ keys
 directly.
 
 ## Signing Process
@@ -33,21 +33,21 @@ Given some structured data:
 1. Currently, verify that the `version` field's value is `1`.
 1. Try to base64 decode the `serialized` and `signature` fields.
 1. Verify that the decoded `signature` is valid for the decoded `serialized`
-  field.
+   field.
 1. JSON deserialize the decoded `serialized` field.
 1. Add the resulting structured data as the `payload` field, and return the
-  modified object.
+   modified object.
 
 # Alternatives
 
 There are alternative schemes available for signing JSON objects, but they
 have specific issues we'd like to avoid.
 
-* [JOSE](https://jose.readthedocs.io/en/latest/) has no support for the *ed25519*
-  or *sr25519* keys used in polkadot apps, and
+- [JOSE](https://jose.readthedocs.io/en/latest/) has no support for the _ed25519_
+  or _sr25519_ keys used in polkadot apps, and
   [appears to be fraught with security issues](https://paragonie.com/blog/2017/03/jwt-json-web-tokens-is-bad-standard-that-everyone-should-avoid).
   Either makes its use hard to justify.
-* While [PASETO](https://paseto.io/) does use *ed25519* keys and seems to have
+- While [PASETO](https://paseto.io/) does use _ed25519_ keys and seems to have
   a reasonably robuts JavaScript implementation, it requires its secret keys to
   be 512 bits long, while polkadot provides 256 bit secret keys. The implication
   is that we would have to manage 512 bit keys and their corresponding public

+ 1 - 1
storage-node/package.json

@@ -35,7 +35,7 @@
     "lint": "eslint --ignore-path .gitignore .",
     "build": "yarn workspace @joystream/storage-cli run build",
     "checks": "yarn lint && prettier . --check",
-    "format": "prettier ./ --write"
+    "format": "prettier . --write"
   },
   "devDependencies": {
     "@types/chai": "^4.2.11",

+ 1 - 1
storage-node/packages/cli/README.md

@@ -37,4 +37,4 @@ $ yarn storage-cli --help
     dev-init          Setup chain with Alice as lead and storage provider.
     dev-check         Check the chain is setup with Alice as lead and storage provider.
 
-```
+```

+ 6 - 1
storage-node/packages/cli/src/cli.ts

@@ -49,6 +49,7 @@ const usage = `
   Dev Commands:       Commands to run on a development chain.
     dev-init          Setup chain with Alice as lead and storage provider.
     dev-check         Check the chain is setup with Alice as lead and storage provider.
+    vstore-init      Initialize versioned store, Requires SURI of ContentWorking Lead.
     
   Type 'storage-cli command' for the exact command usage examples.
   `
@@ -68,11 +69,15 @@ const commands = {
     // dev accounts are automatically loaded, no need to add explicitly to keyring using loadIdentity(api)
     return dev.init(api)
   },
-  // Checks that the setup done by dev-init command was successful.
+  // Checks that the setup done by dev-init command was successful
   'dev-check': async (api) => {
     // dev accounts are automatically loaded, no need to add explicitly to keyring using loadIdentity(api)
     return dev.check(api)
   },
+  // Runs the versioned store initialization with given SURI of content working group lead
+  'vstore-init': async (api, suri: string) => {
+    return dev.vstoreInit(api, suri)
+  },
   // Uploads the file to the system. Registers new data object in the runtime, obtains proper colossus instance URL.
   upload: async (
     api: any,

+ 129 - 38
storage-node/packages/cli/src/commands/dev.ts

@@ -1,30 +1,115 @@
 'use strict'
 
-const debug = require('debug')('joystream:storage-cli:dev')
+import dbug from 'debug'
+import { KeyringPair } from '@polkadot/keyring/types'
+import { RuntimeApi } from '@joystream/storage-runtime-api'
+const debug = dbug('joystream:storage-cli:dev')
 
 // Derivation path appended to well known development seed used on
 // development chains
 const ALICE_URI = '//Alice'
 const ROLE_ACCOUNT_URI = '//Colossus'
 
-function aliceKeyPair(api) {
+function aliceKeyPair(api: RuntimeApi): KeyringPair {
   return api.identities.keyring.addFromUri(ALICE_URI, null, 'sr25519')
 }
 
-function roleKeyPair(api) {
+function roleKeyPair(api: RuntimeApi): KeyringPair {
   return api.identities.keyring.addFromUri(ROLE_ACCOUNT_URI, null, 'sr25519')
 }
 
-function developmentPort() {
+function getKeyFromAddressOrSuri(api: RuntimeApi, addressOrSuri: string) {
+  // Get key from keyring if it is an address
+  try {
+    return api.identities.keyring.getPair(addressOrSuri)
+  } catch (err) {
+    debug('supplied argument was not an address')
+  }
+
+  // Assume a SURI, add to keyring and return keypair
+  return api.identities.keyring.addFromUri(addressOrSuri, null, 'sr25519')
+}
+
+function developmentPort(): number {
   return 3001
 }
 
-const check = async (api) => {
+// Sign and broadcast multiple transactions concurrently (so they may all be finalized in a single block)
+// Resolves when last transaction is finalized.
+const batchDispatchCalls = async (
+  runtimeApi: RuntimeApi,
+  senderAddress: string | Uint8Array,
+  rawCalls: any[]
+): Promise<any> => {
+  const api = runtimeApi.api
+
+  debug(`dispatching ${rawCalls.length} transactions.`)
+
+  await rawCalls
+    .map((call) => {
+      const { methodName, sectionName, args } = call
+      const tx = api.tx[sectionName][methodName](...args)
+      return runtimeApi.signAndSend(senderAddress, tx)
+    })
+    .reverse()
+    .shift()
+}
+
+// Dispatch pre-prepared calls to runtime to initialize the versioned store
+const vstoreInit = async (api: RuntimeApi, contentLead: string): Promise<any> => {
+  // If any existing classes are found we will skip initializing
+  // because the pre-prepared transactions make the assumption
+  // that the versioned store is not initialized.
+  const firstClassStorageKey = api.api.query.versionedStore.classById.key(1)
+  const firstClass = await api.api.rpc.state.getStorage(firstClassStorageKey)
+  if (firstClass.isSome) {
+    debug('Skipping Initializing Content Directory, classes already exist.')
+    return
+  } else {
+    debug('Initializing Content Directory.')
+  }
+
+  if (!contentLead) {
+    throw new Error('SURI of content lead not provided')
+  }
+
+  // Get address and load key into keyring if a SURI was supplied
+  const contentLeadAddress = getKeyFromAddressOrSuri(api, contentLead).address
+
+  // Load pre-pared calls
+  const classes = require('../../../../../devops/vstore/classes.json')
+  const entities = require('../../../../../devops/vstore/entities.json')
+
+  // To create all classes in a single block,
+  // select all createClass calls first
+  debug('Creating Classes in versioned store.')
+  const createClasses = classes.filter((call) => {
+    return call.methodName === 'createClass'
+  })
+  await batchDispatchCalls(api, contentLeadAddress, createClasses)
+
+  // To add schemas to all classes in a single block
+  // select all addClassSchema calls
+  debug('Adding Schemas to classes in versioned store.')
+  const addClassSchema = classes.filter((call) => {
+    return call.methodName === 'addClassSchema'
+  })
+  await batchDispatchCalls(api, contentLeadAddress, addClassSchema)
+
+  // Combine all calls to create entities into a single block
+  debug('Creating entities in versioned store.')
+  await batchDispatchCalls(api, contentLeadAddress, entities)
+}
+
+// Checks the chain state for the storage provider setup we expect
+// to have if the initialization was successfully run prior.
+// Returns the provider id if found, throws otherwise.
+const check = async (api): Promise<any> => {
   const roleAccountId = roleKeyPair(api).address
   const providerId = await api.workers.findProviderIdByRoleAccount(roleAccountId)
 
   if (providerId === null) {
-    throw new Error('Dev storage provider not found on chain!')
+    throw new Error('Dev storage provider not found on chain.')
   }
 
   console.log(`
@@ -40,7 +125,14 @@ const check = async (api) => {
 // Setup Alice account on a developement chain as
 // a member, storage lead, and a storage provider using a deterministic
 // development key for the role account
-const init = async (api) => {
+const init = async (api: RuntimeApi): Promise<any> => {
+  debug('Ensuring we are on Development chain')
+  if (!(await api.system.isDevelopmentChain())) {
+    console.log('This command should only be run on a Development chain')
+    return
+  }
+
+  // check if the initialization was previously run, skip if so.
   try {
     await check(api)
     return
@@ -48,10 +140,11 @@ const init = async (api) => {
     // We didn't find a storage provider with expected role account
   }
 
+  // Load alice keypair into keyring
   const alice = aliceKeyPair(api).address
   const roleAccount = roleKeyPair(api).address
 
-  debug(`Ensuring Alice is sudo`)
+  debug(`Ensuring Alice ${alice} is sudo.`)
 
   // make sure alice is sudo - indirectly checking this is a dev chain
   const sudo = await api.identities.getSudoAccount()
@@ -60,33 +153,39 @@ const init = async (api) => {
     throw new Error('Setup requires Alice to be sudo. Are you sure you are running a devchain?')
   }
 
-  console.log('Running setup')
-
-  // set localhost colossus as discovery provider
-  // assuming pioneer dev server is running on port 3000 we should run
-  // the storage dev server on a different port than the default for colossus which is also
-  // 3000
-  debug('Setting Local development node as bootstrap endpoint')
-  await api.discovery.setBootstrapEndpoints(alice, [`http://localhost:${developmentPort()}/`])
+  console.log('Running setup.')
 
-  debug('Transferring tokens to storage role account')
-  // Give role account some tokens to work with
-  api.balances.transfer(alice, roleAccount, 100000)
-
-  debug('Ensuring Alice is as member..')
+  debug('Ensuring Alice is as member.')
   let aliceMemberId = await api.identities.firstMemberIdOf(alice)
 
   if (aliceMemberId === undefined) {
-    debug('Registering Alice as member..')
+    debug('Registering Alice as member.')
     aliceMemberId = await api.identities.registerMember(alice, {
       handle: 'alice',
     })
   } else {
-    debug('Alice is already a member')
+    debug('Alice is already a member.')
   }
 
+  debug('Setting Alice as content working group lead.')
+  await api.signAndSend(alice, api.api.tx.sudo.sudo(api.api.tx.contentWorkingGroup.replaceLead([aliceMemberId, alice])))
+
+  // Initialize classes and entities in the versioned store
+  await vstoreInit(api, alice)
+
+  // set localhost colossus as discovery provider
+  // assuming pioneer dev server is running on port 3000 we should run
+  // the storage dev server on a different port than the default for colossus which is also
+  // 3000
+  debug('Setting Local development node as bootstrap endpoint.')
+  await api.discovery.setBootstrapEndpoints(alice, [`http://localhost:${developmentPort()}/`])
+
+  debug('Transferring tokens to storage role account.')
+  // Give role account some tokens to work with
+  api.balances.transfer(alice, roleAccount, 100000)
+
   // Make alice the storage lead
-  debug('Making Alice the storage Lead')
+  debug('Making Alice the storage Lead.')
   const leadOpeningId = await api.workers.devAddStorageLeadOpening()
   const leadApplicationId = await api.workers.devApplyOnOpening(leadOpeningId, aliceMemberId, alice, alice)
   api.workers.devBeginLeadOpeningReview(leadOpeningId)
@@ -94,21 +193,21 @@ const init = async (api) => {
 
   const leadAccount = await api.workers.getLeadRoleAccount()
   if (!leadAccount.eq(alice)) {
-    throw new Error('Setting alice as lead failed')
+    throw new Error('Setting alice as lead failed.')
   }
 
   // Create a storage openinging, apply, start review, and fill opening
-  debug(`Making ${ROLE_ACCOUNT_URI} account a storage provider`)
+  debug(`Making ${ROLE_ACCOUNT_URI} account a storage provider.`)
 
   const openingId = await api.workers.devAddStorageOpening()
-  debug(`created new storage opening: ${openingId}`)
+  debug(`Created new storage opening: ${openingId}`)
 
   const applicationId = await api.workers.devApplyOnOpening(openingId, aliceMemberId, alice, roleAccount)
-  debug(`applied with application id: ${applicationId}`)
+  debug(`Applied with application id: ${applicationId}`)
 
   api.workers.devBeginStorageOpeningReview(openingId)
 
-  debug(`filling storage opening`)
+  debug(`Filling storage opening.`)
   const providerId = await api.workers.devFillStorageOpening(openingId, applicationId)
 
   debug(`Assigned storage provider id: ${providerId}`)
@@ -116,12 +215,4 @@ const init = async (api) => {
   return check(api)
 }
 
-module.exports = {
-  init,
-  check,
-  aliceKeyPair,
-  roleKeyPair,
-  developmentPort,
-}
-
-export { init, check, aliceKeyPair, roleKeyPair, developmentPort }
+export { init, check, aliceKeyPair, roleKeyPair, developmentPort, vstoreInit }

+ 1 - 3
storage-node/packages/cli/tsconfig.json

@@ -1,7 +1,5 @@
 {
-  "include": [
-    "src"
-  ],
+  "include": ["src"],
   "extends": "../../tsconfig.json",
   "compilerOptions": {
     "outDir": "dist",

+ 6 - 13
storage-node/packages/colossus/README.md

@@ -1,7 +1,6 @@
 ![Storage Nodes for Joystream](../../banner.svg)
 
-Development
------------
+## Development
 
 Run a development server (an ipfs node and development chain should be running on the local machine)
 
@@ -16,9 +15,7 @@ The setup can be done by running the dev-init command for the storage-cli:
 yarn storage-cli dev-init
 ```
 
-
-Command-Line
-------------
+## Command-Line
 
 ```sh
 $ yarn colossus --help
@@ -50,9 +47,7 @@ $ yarn colossus --help
 To run a storage server in production you will need to enroll on the network first to
 obtain your provider-id and role account.
 
-
-API Packages
-------------
+## API Packages
 
 Since it's not entirely clear yet how APIs will develop in future, the approach
 taken here is to package individual APIs up individually. That is, instead of
@@ -62,11 +57,10 @@ API package's path.
 For example, for a `foo` API in its version `v1`, its definitions should live
 in `./paths/foo/v1.js` and `./paths/foo/v1/*.js` respectively.
 
-*Note:* until a reasonably stable API is reached, this project uses a `v0`
+_Note:_ until a reasonably stable API is reached, this project uses a `v0`
 version prefix.
 
-Interface/implementation
-------------------------
+## Interface/implementation
 
 For reusability across API versions, it's best to keep files in the `paths`
 subfolder very thin, and instead inject implementations via the `dependencies`
@@ -75,8 +69,7 @@ configuration value of `express-openapi`.
 These implementations line to the `./lib` subfolder. Adjust `app.js` as
 needed to make them available to API packages.
 
-Streaming Notes
----------------
+## Streaming Notes
 
 For streaming content, it is required that stream metadata is located at the
 start of the stream. Most software writes metadata at the end of the stream,

+ 1 - 1
storage-node/packages/colossus/api-base.yml

@@ -2,7 +2,7 @@ openapi: '3.0.0'
 info:
   title: 'Joystream Storage Node API.'
   version: '1.0.0'
-paths: {}  # Will be populated by express-openapi
+paths: {} # Will be populated by express-openapi
 
 components:
   # Re-usable parameter definitions

+ 12 - 6
storage-node/packages/colossus/bin/cli.js

@@ -29,15 +29,19 @@ const FLAG_DEFINITIONS = {
   },
   keyFile: {
     type: 'string',
-    isRequired: (flags) => {
-      return !flags.dev
+    isRequired: (flags, input) => {
+      // Only required if running server command and not in dev mode
+      const serverCmd = input[0] === 'server'
+      return !flags.dev && serverCmd
     },
   },
   publicUrl: {
     type: 'string',
     alias: 'u',
-    isRequired: (flags) => {
-      return !flags.dev
+    isRequired: (flags, input) => {
+      // Only required if running server command and not in dev mode
+      const serverCmd = input[0] === 'server'
+      return !flags.dev && serverCmd
     },
   },
   passphrase: {
@@ -50,8 +54,10 @@ const FLAG_DEFINITIONS = {
   providerId: {
     type: 'number',
     alias: 'i',
-    isRequired: (flags) => {
-      return !flags.dev
+    isRequired: (flags, input) => {
+      // Only required if running server command and not in dev mode
+      const serverCmd = input[0] === 'server'
+      return !flags.dev && serverCmd
     },
   },
 }

+ 10 - 9
storage-node/packages/discovery/README.md

@@ -22,13 +22,14 @@ used in a browser environment, or the local ipfs node otherwise.
 There is a distinction in the discovery workflow:
 
 1. If run in the browser environment, a HTTP request to a participating node
-  is performed to discover nodes.
+   is performed to discover nodes.
 2. If run in a node.js process, instead:
-  - A trusted (local) IPFS node must be configured.
-  - The chain is queried to resolve a worker id to an IPNS id.
-  - The trusted IPFS node is used to resolve the IPNS id to an IPFS
-    file.
-  - The IPFS file is fetched; this contains the structured data.
+
+- A trusted (local) IPFS node must be configured.
+- The chain is queried to resolve a worker id to an IPNS id.
+- The trusted IPFS node is used to resolve the IPNS id to an IPFS
+  file.
+- The IPFS file is fetched; this contains the structured data.
 
 Web services providing the HTTP endpoint used in the first approach will
 themselves use the second approach for fulfilling queries.
@@ -61,8 +62,8 @@ use of the information.
 Additionally, some services may only provide an `endpoint` value, as defined
 here:
 
-* `version`: A numeric version identifier for the service info field.
-* `endpoint`: A publicly accessible base URL for a service API.
+- `version`: A numeric version identifier for the service info field.
+- `endpoint`: A publicly accessible base URL for a service API.
 
 The `endpoint` should include a scheme and full authority, such that appending
 `swagger.json` to the path resolves the OpenAPI definition of the API served
@@ -107,7 +108,7 @@ always `1`.
   "discovery": {
     "version": 1,
     "endpoint": "http://quux.io/"
-  },
+  }
 }
 ```
 

+ 0 - 2
storage-node/packages/helios/README.md

@@ -2,10 +2,8 @@
 
 A basic tool to scan the joystream storage network to get a birds eye view of the health of the storage providers and content replication status.
 
-
 ## Scanning
 
 ```
 yarn helios
 ```
-

+ 1 - 2
storage-node/packages/runtime-api/README.md

@@ -1,5 +1,4 @@
-Summary
-=======
+# Summary
 
 This package contains convenience functions for the runtime API.
 

+ 1 - 1
storage-node/packages/runtime-api/index.js

@@ -65,7 +65,7 @@ class RuntimeApi {
 
     // Ok, create individual APIs
     this.identities = await IdentitiesApi.create(this, {
-      account_file: options.account_file,
+      accountFile: options.account_file,
       passphrase: options.passphrase,
       canPromptForPassphrase: options.canPromptForPassphrase,
     })

+ 6 - 1
storage-node/packages/runtime-api/test/data/edwards.json

@@ -1 +1,6 @@
-{"address":"5HDnLpCjdbUBR6eyuz5geBJWzoZdXmWFXahEYrLg44rvToCK","encoded":"0x475f0c37c7893517f5a93c88b81208346211dfa9b0fd09e08bfd34f6e14da5468f48c6d9b0b4cbfbd7dd03a6f0730f5ee9a01b0cd30265e6b1b9fb652958889d5b174624568f49f3a671b8c330c3920814e938383749aa9046366ae6881281e0d053a9aa913a54ad53bd2f1dcf6c26e6b476495ea058832a36f122d09c18154577f951298ac72e6f471a6dca41e4d5741ed5db966001ae5ffd2b99d4c7","encoding":{"content":["pkcs8","ed25519"],"type":"xsalsa20-poly1305","version":"2"},"meta":{"name":"Edwards keypair for testing","whenCreated":1558974074691}}
+{
+  "address": "5HDnLpCjdbUBR6eyuz5geBJWzoZdXmWFXahEYrLg44rvToCK",
+  "encoded": "0x475f0c37c7893517f5a93c88b81208346211dfa9b0fd09e08bfd34f6e14da5468f48c6d9b0b4cbfbd7dd03a6f0730f5ee9a01b0cd30265e6b1b9fb652958889d5b174624568f49f3a671b8c330c3920814e938383749aa9046366ae6881281e0d053a9aa913a54ad53bd2f1dcf6c26e6b476495ea058832a36f122d09c18154577f951298ac72e6f471a6dca41e4d5741ed5db966001ae5ffd2b99d4c7",
+  "encoding": { "content": ["pkcs8", "ed25519"], "type": "xsalsa20-poly1305", "version": "2" },
+  "meta": { "name": "Edwards keypair for testing", "whenCreated": 1558974074691 }
+}

+ 6 - 1
storage-node/packages/runtime-api/test/data/edwards_unlocked.json

@@ -1 +1,6 @@
-{"address":"5EZxbX2arChvhYL7cEgSybJL3kzEeuPqqNYyLqRBJxZx7Mao","encoded":"0x3053020101300506032b65700422042071f2096e5857177f03768478d0c006f60d1ee684f14feaede0f9c17e139e65586ec832e5db75112b0a4585b6a9ffe58fa056e5b1228f02663e9e64743e65c9a5a1230321006ec832e5db75112b0a4585b6a9ffe58fa056e5b1228f02663e9e64743e65c9a5","encoding":{"content":["pkcs8","ed25519"],"type":"none","version":"2"},"meta":{"name":"Unlocked keypair for testing","whenCreated":1558975434890}}
+{
+  "address": "5EZxbX2arChvhYL7cEgSybJL3kzEeuPqqNYyLqRBJxZx7Mao",
+  "encoded": "0x3053020101300506032b65700422042071f2096e5857177f03768478d0c006f60d1ee684f14feaede0f9c17e139e65586ec832e5db75112b0a4585b6a9ffe58fa056e5b1228f02663e9e64743e65c9a5a1230321006ec832e5db75112b0a4585b6a9ffe58fa056e5b1228f02663e9e64743e65c9a5",
+  "encoding": { "content": ["pkcs8", "ed25519"], "type": "none", "version": "2" },
+  "meta": { "name": "Unlocked keypair for testing", "whenCreated": 1558975434890 }
+}

+ 6 - 1
storage-node/packages/runtime-api/test/data/schnorr.json

@@ -1 +1,6 @@
-{"address":"5GjxHjq9rtcxsfgcNswLGjYNRu8UmHAnYq7KfACE3yTjfYVk","encoded":"0x3dd5965708bbf4316c431ba8274b885a6017d82bc8bcb8c8b02e00c0c90356fb8a379f4be44bd454c76799d9d09bda7fc03c695340e23818f60cfcf00f3b48f42fb8d362e74f261354e99fff9cb2f91d899a722f0051db74d985602f3e95e49a99c73f77951022f98a99bb90981e3c1f60a5642ed583cd65b0161f8461d30f8b320bcd98cd7fb7ec71886d76825696d6fc11ac14a7391f2cdcb2b721d4","encoding":{"content":["pkcs8","sr25519"],"type":"xsalsa20-poly1305","version":"2"},"meta":{"name":"Schnorr keypair for testing","whenCreated":1558974091206}}
+{
+  "address": "5GjxHjq9rtcxsfgcNswLGjYNRu8UmHAnYq7KfACE3yTjfYVk",
+  "encoded": "0x3dd5965708bbf4316c431ba8274b885a6017d82bc8bcb8c8b02e00c0c90356fb8a379f4be44bd454c76799d9d09bda7fc03c695340e23818f60cfcf00f3b48f42fb8d362e74f261354e99fff9cb2f91d899a722f0051db74d985602f3e95e49a99c73f77951022f98a99bb90981e3c1f60a5642ed583cd65b0161f8461d30f8b320bcd98cd7fb7ec71886d76825696d6fc11ac14a7391f2cdcb2b721d4",
+  "encoding": { "content": ["pkcs8", "sr25519"], "type": "xsalsa20-poly1305", "version": "2" },
+  "meta": { "name": "Schnorr keypair for testing", "whenCreated": 1558974091206 }
+}

+ 5 - 6
storage-node/packages/util/README.md

@@ -1,12 +1,11 @@
-Summary
-=======
+# Summary
 
 This package contains general utility functions for running the colossus
 storage node.
 
-* `lru` contains an in-memory least-recently-used cache abstraction.
-* `fs/*` contains helpers for resolving path names and walking file system
+- `lru` contains an in-memory least-recently-used cache abstraction.
+- `fs/*` contains helpers for resolving path names and walking file system
   hierarchies.
-* `pagination` contains utility functions for paginating APIs.
-* `ranges` contains functions for dealing with `Range` headers in download
+- `pagination` contains utility functions for paginating APIs.
+- `ranges` contains functions for dealing with `Range` headers in download
   requests.

+ 2 - 2
storage-node/scripts/compose/devchain-and-ipfs-node/docker-compose.yaml

@@ -3,13 +3,13 @@ services:
   ipfs:
     image: ipfs/go-ipfs:latest
     ports:
-      - "127.0.0.1:5001:5001"
+      - '127.0.0.1:5001:5001'
     volumes:
       - ipfs-data:/data/ipfs
   chain:
     image: joystream/node:latest
     ports:
-      - "127.0.0.1:9944:9944"
+      - '127.0.0.1:9944:9944'
     volumes:
       - chain-data:/data
     command: --dev --ws-external --base-path /data

+ 4 - 3
storage-node/scripts/run-dev-instance.sh

@@ -25,7 +25,8 @@ docker-compose -f ${SCRIPT_PATH}/compose/devchain-and-ipfs-node/docker-compose.y
 DEBUG=joystream:storage-cli:dev yarn storage-cli dev-init
 
 # Run the tests
-yarn workspace storage-node test
+# Tests sometimes fail, so skip for now
+# yarn workspace storage-node test
 
 # Run the server in background
 # DEBUG=joystream:storage* yarn colossus --dev > ${SCRIPT_PATH}/colossus.log 2>&1 &
@@ -35,5 +36,5 @@ yarn workspace storage-node test
 # kill colossus and docker containers...
 # docker-compose -f ${SCRIPT_PATH}/compose/devchain-and-ipfs-node/docker-compose.yaml down -v
 
-# Run the server
-DEBUG=joystream:* yarn colossus --dev
+# Run the server, without logging ranges debug info, too verbose
+DEBUG=joystream:*,-joystream:util:ranges yarn colossus --dev

+ 3 - 6
storage-node/tsconfig.json

@@ -9,15 +9,12 @@
     "esModuleInterop": true,
     "baseUrl": ".",
     "skipLibCheck": true,
-    "types" : [ "node", "mocha" ]
+    "types": ["node", "mocha"]
   },
   "files": [],
-  "exclude": [
-    "**/node_modules/*",
-    "build"
-  ],
+  "exclude": ["**/node_modules/*", "build"],
   "references": [
     { "path": "packages/cli" }
- //   { "path": "packages/storage" }
+    //   { "path": "packages/storage" }
   ]
 }

+ 8 - 1
types/src/common.ts

@@ -96,6 +96,13 @@ export class InputValidationLengthConstraint extends JoyStruct<InputValidationLe
       }, value);
     }
 
+    static createWithMaxAllowed() {
+      return new InputValidationLengthConstraint({
+        min: new u16(1),
+        max_min_diff: new u16(65534) // Max allowed without causing u16 overflow
+      })
+    }
+
     get min (): u16 {
       return this.getField('min');
     }
@@ -112,7 +119,7 @@ export class InputValidationLengthConstraint extends JoyStruct<InputValidationLe
 export const WorkingGroupDef = {
   Storage: Null
 } as const;
-export type WorkingGroupKeys = keyof typeof WorkingGroupDef;
+export type WorkingGroupKey = keyof typeof WorkingGroupDef;
 export class WorkingGroup extends JoyEnum(WorkingGroupDef) { };
 
 export function registerCommonTypes() {

+ 2 - 2
types/src/council/index.ts

@@ -9,7 +9,7 @@ export type TransferableStake = {
     backing: Balance;
 };
 
-export type Stake = {
+export type ElectionStake = {
     new: Balance;
     transferred: Balance;
 };
@@ -65,7 +65,7 @@ export class Seats extends Vec.with(Seat) {}
 export type SealedVote = {
     voter: AccountId;
     commitment: Hash;
-    stake: Stake;
+    stake: ElectionStake;
     vote: Option<AccountId>;
 };
 

+ 14 - 25
types/src/hiring/index.ts

@@ -93,23 +93,17 @@ export class InactiveApplicationStage extends JoyStruct<InactiveApplicationStage
 
 export class ActiveApplicationStage extends Null { };
 
+// TODO: Find usages and replace with "JoyEnum-standard"
 export enum ApplicationStageKeys {
   Active = 'Active',
   Unstaking = 'Unstaking',
   Inactive = 'Inactive',
 }
-
-export class ApplicationStage extends Enum {
-  constructor(value?: any, index?: number) {
-    super(
-      {
-        [ApplicationStageKeys.Active]: ActiveApplicationStage,
-        [ApplicationStageKeys.Unstaking]: UnstakingApplicationStage,
-        [ApplicationStageKeys.Inactive]: InactiveApplicationStage,
-      },
-      value, index);
-  }
-}
+export class ApplicationStage extends JoyEnum({
+  Active: ActiveApplicationStage,
+  Unstaking: UnstakingApplicationStage,
+  Inactive: InactiveApplicationStage
+} as const) { };
 
 export type IApplicationRationingPolicy = {
   max_active_applicants: u32,
@@ -233,14 +227,14 @@ export class Deactivated extends JoyStruct<IDeactivated> {
   }
 };
 
-// TODO: Find usages and replace them with JoyEnum helpers
-export enum ActiveOpeningStageKeys {
-  AcceptingApplications = 'AcceptingApplications',
-  ReviewPeriod = 'ReviewPeriod',
-  Deactivated = 'Deactivated',
-}
+export const ActiveOpeningStageDef = {
+  AcceptingApplications: AcceptingApplications,
+  ReviewPeriod: ReviewPeriod,
+  Deactivated: Deactivated
+} as const;
+export type ActiveOpeningStageKey = keyof typeof ActiveOpeningStageDef;
 
-export class ActiveOpeningStage extends JoyEnum({AcceptingApplications, ReviewPeriod, Deactivated} as const) { }
+export class ActiveOpeningStage extends JoyEnum(ActiveOpeningStageDef) { }
 
 export type ActiveOpeningStageVariantType = {
   stage: ActiveOpeningStage,
@@ -265,12 +259,7 @@ export class ActiveOpeningStageVariant extends JoyStruct<ActiveOpeningStageVaria
   }
 
   get is_active(): boolean {
-    switch (this.stage.type) {
-      case ActiveOpeningStageKeys.AcceptingApplications:
-        return true
-    }
-
-	  return false
+    return this.stage.isOfType('AcceptingApplications');
   }
 }
 

+ 51 - 32
types/src/index.ts

@@ -1,22 +1,41 @@
 
 import { getTypeRegistry } from "@polkadot/types";
 
-import { registerCommonTypes } from "./common";
-import { registerMembershipTypes } from "./members";
-import { registerCouncilAndElectionTypes } from "./council";
-import { registerRolesTypes } from "./roles";
-import { registerForumTypes } from "./forum";
-import { registerStakeTypes } from "./stake";
-import { registerMintTypes } from "./mint";
-import { registerRecurringRewardsTypes } from "./recurring-rewards";
-import { registerHiringTypes } from "./hiring";
-import { registerVersionedStoreTypes } from "./versioned-store";
-import { registerVersionedStorePermissionsTypes } from "./versioned-store/permissions";
-import { registerContentWorkingGroupTypes } from "./content-working-group";
-import { registerWorkingGroupTypes } from "./working-group";
-import { registerDiscoveryTypes } from "./discovery";
-import { registerMediaTypes } from "./media";
-import { registerProposalTypes } from "./proposals";
+import * as common from "./common";
+import * as members from "./members";
+import * as council from "./council";
+import * as roles from "./roles";
+import * as forum from "./forum";
+import * as stake from "./stake";
+import * as mint from "./mint";
+import * as recurringRewards from "./recurring-rewards";
+import * as hiring from "./hiring";
+import * as versionedStore from "./versioned-store";
+import * as versionedStorePermissions from "./versioned-store/permissions";
+import * as contentWorkingGroup from "./content-working-group";
+import * as workingGroup from "./working-group";
+import * as discovery from "./discovery";
+import * as media from "./media";
+import * as proposals from "./proposals";
+
+export {
+  common,
+  members,
+  council,
+  roles,
+  forum,
+  stake,
+  mint,
+  recurringRewards,
+  hiring,
+  versionedStore,
+  versionedStorePermissions,
+  contentWorkingGroup,
+  workingGroup,
+  discovery,
+  media,
+  proposals
+};
 
 export function registerJoystreamTypes() {
   const typeRegistry = getTypeRegistry();
@@ -25,20 +44,20 @@ export function registerJoystreamTypes() {
     MemoText: "Text", // for the memo module
   });
 
-  registerCommonTypes();
-  registerMembershipTypes();
-  registerCouncilAndElectionTypes();
-  registerRolesTypes();
-  registerForumTypes();
-  registerStakeTypes();
-  registerMintTypes();
-  registerRecurringRewardsTypes();
-  registerHiringTypes();
-  registerVersionedStoreTypes();
-  registerVersionedStorePermissionsTypes();
-  registerContentWorkingGroupTypes();
-  registerWorkingGroupTypes();
-  registerDiscoveryTypes();
-  registerMediaTypes();
-  registerProposalTypes();
+  common.registerCommonTypes();
+  members.registerMembershipTypes();
+  council.registerCouncilAndElectionTypes();
+  roles.registerRolesTypes();
+  forum.registerForumTypes();
+  stake.registerStakeTypes();
+  mint.registerMintTypes();
+  recurringRewards.registerRecurringRewardsTypes();
+  hiring.registerHiringTypes();
+  versionedStore.registerVersionedStoreTypes();
+  versionedStorePermissions.registerVersionedStorePermissionsTypes();
+  contentWorkingGroup.registerContentWorkingGroupTypes();
+  workingGroup.registerWorkingGroupTypes();
+  discovery.registerDiscoveryTypes();
+  media.registerMediaTypes();
+  proposals.registerProposalTypes();
 }

+ 13 - 2
types/src/working-group/index.ts

@@ -243,10 +243,12 @@ export class WorkingGroupOpeningPolicyCommitment extends JoyStruct<IWorkingGroup
 
 export class OpeningType_Leader extends Null { };
 export class OpeningType_Worker extends Null { };
-export class OpeningType extends JoyEnum({
+export const OpeningTypeDef = {
   Leader: OpeningType_Leader,
   Worker: OpeningType_Worker
-} as const) { };
+} as const;
+export type OpeningTypeKey = keyof typeof OpeningTypeDef;
+export class OpeningType extends JoyEnum(OpeningTypeDef) { };
 
 export type IOpening = {
   hiring_opening_id: OpeningId,
@@ -300,6 +302,15 @@ export class RewardPolicy extends JoyStruct<IRewardPolicy> {
       payout_interval: 'Option<BlockNumber>',
     }, value);
   }
+  get amount_per_payout(): Balance {
+    return this.getField<Balance>('amount_per_payout');
+  }
+  get next_payment_at_block(): BlockNumber {
+    return this.getField<BlockNumber>('next_payment_at_block');
+  }
+  get payout_interval(): Option<BlockNumber> {
+    return this.getField<Option<BlockNumber>>('payout_interval');
+  }
 };
 
 export function registerWorkingGroupTypes() {