+ *
+ * The following properties are optional
+ *
+ * | %Property Name | Type |
+ * |-------------------------|------------------|
+ * | customShader | MAP |
+ *
+ * where custom-shader is a map with the following properties:
+ * | %Property Name | Type |
+ * |-------------------------|------------------|
+ * | vertexShader | STRING |
+ * | fragmentShader | STRING |
+ * | subdivideGridX | INT |
+ * | subdivideGridY | INT |
+ * | shaderHints | INT |