{
  "type": "object",
  "properties": [
    {
      "type": "object",
      "key": "topology",
      "properties": [
        {
          "type": "map",
          "key": "layers",
          "elements": [
            {
              "type": "object",
              "properties": [
                {
                  "type": "property",
                  "key": "layertype",
                  "value": {
                    "type": "topology_layer_type_first",
                    "bitLength": 3
                  }
                },
                {
                  "type": "property",
                  "key": "activation",
                  "value": {
                    "type": "topology_layer_activation_first",
                    "bitLength": 3
                  }
                },
                {
                  "type": "property",
                  "key": "units",
                  "value": {
                    "type": "topology_layer_units_first",
                    "bitLength": 3
                  }
                },
                {
                  "type": "property",
                  "key": "dropout",
                  "value": {
                    "type": "topology_layer_dropout_first",
                    "bitLength": 1
                  }
                },
                {
                  "type": "property",
                  "key": "kernel_regularizer",
                  "value": {
                    "type": "topology_layer_kernel_regularizer_first",
                    "bitLength": 2
                  }
                },
                {
                  "type": "property",
                  "key": "dummy",
                  "value": {
                    "type": "number",
                    "bitLength": 12
                  }
                }
              ]
            },
            {
              "type": "object",
              "properties": [
                {
                  "type": "property",
                  "key": "layertype",
                  "value": {
                    "type": "topology_layer_type_hidden_1",
                    "bitLength": 3
                  }
                },
                {
                  "type": "property",
                  "key": "activation",
                  "value": {
                    "type": "topology_layer_activation_hidden_1",
                    "bitLength": 3
                  }
                },
                {
                  "type": "property",
                  "key": "units",
                  "value": {
                    "type": "topology_layer_units_hidden_1",
                    "bitLength": 3
                  }
                },
                {
                  "type": "property",
                  "key": "dropout",
                  "value": {
                    "type": "topology_layer_dropout_hidden_1",
                    "bitLength": 1
                  }
                },
                {
                  "type": "property",
                  "key": "kernel_regularizer",
                  "value": {
                    "type": "topology_layer_kernel_regularizer_hidden_1",
                    "bitLength": 2
                  }
                },
                {
                  "type": "property",
                  "key": "dummy",
                  "value": {
                    "type": "number",
                    "bitLength": 12
                  }
                }
              ]
            },
            {
              "type": "object",
              "properties": [
                {
                  "type": "property",
                  "key": "layertype",
                  "value": {
                    "type": "topology_layer_type_hidden_2",
                    "bitLength": 3
                  }
                },
                {
                  "type": "property",
                  "key": "activation",
                  "value": {
                    "type": "topology_layer_activation_hidden_2",
                    "bitLength": 3
                  }
                },
                {
                  "type": "property",
                  "key": "units",
                  "value": {
                    "type": "topology_layer_units_hidden_2",
                    "bitLength": 3
                  }
                },
                {
                  "type": "property",
                  "key": "dropout",
                  "value": {
                    "type": "topology_layer_dropout_hidden_2",
                    "bitLength": 1
                  }
                },
                {
                  "type": "property",
                  "key": "kernel_regularizer",
                  "value": {
                    "type": "topology_layer_kernel_regularizer_hidden_2",
                    "bitLength": 2
                  }
                },
                {
                  "type": "property",
                  "key": "dummy",
                  "value": {
                    "type": "number",
                    "bitLength": 12
                  }
                }
              ]
            },
            {
              "type": "object",
              "properties": [
                {
                  "type": "property",
                  "key": "layertype",
                  "value": {
                    "type": "topology_layer_type_hidden_3",
                    "bitLength": 3
                  }
                },
                {
                  "type": "property",
                  "key": "activation",
                  "value": {
                    "type": "topology_layer_activation_hidden_3",
                    "bitLength": 3
                  }
                },
                {
                  "type": "property",
                  "key": "units",
                  "value": {
                    "type": "topology_layer_units_hidden_3",
                    "bitLength": 3
                  }
                },
                {
                  "type": "property",
                  "key": "dropout",
                  "value": {
                    "type": "topology_layer_dropout_hidden_3",
                    "bitLength": 1
                  }
                },
                {
                  "type": "property",
                  "key": "kernel_regularizer",
                  "value": {
                    "type": "topology_layer_kernel_regularizer_hidden_3",
                    "bitLength": 2
                  }
                },
                {
                  "type": "property",
                  "key": "dummy",
                  "value": {
                    "type": "number",
                    "bitLength": 12
                  }
                }
              ]
            },
            {
              "type": "object",
              "properties": [
                {
                  "type": "property",
                  "key": "layertype",
                  "value": "Dense"
                },
                {
                  "type": "property",
                  "key": "activation",
                  "value": {
                    "type": "topology_layer_activation_last",
                    "bitLength": 2
                  }
                },
                {
                  "type": "property",
                  "key": "units",
                  "value": {
                    "type": "topology_layer_units_last",
                    "bitLength": 3
                  }
                },
                {
                  "type": "property",
                  "key": "dropout",
                  "value": 0
                },
                {
                  "type": "property",
                  "key": "kernel_regularizer",
                  "value": "None"
                },
                {
                  "type": "property",
                  "key": "dummy",
                  "value": {
                    "type": "number",
                    "bitLength": 10
                  }
                }
              ]
            }
          ]
        },
        {
          "type": "object",
          "key": "config",
          "properties": [
            {
              "type": "property",
              "key": "dummy",
              "value": {
                "type": "number",
                "bitLength": 13
              }
            },
            {
              "type": "property",
              "key": "special",
              "value": {
                "type": "number",
                "bitLength": 4
              }
            }
          ]
        }
      ]
    },
    {
      "type": "object",
      "key": "training",
      "properties": [
        {
          "type": "property",
          "key": "loss",
          "value": {
            "type": "training_loss",
            "bitLength": 4
          }
        },
        {
          "type": "object",
          "key": "optimizer",
          "properties": [
            {
              "type": "property",
              "key": "learningrate",
              "value": {
                "type": "training_optimizer_learningrate",
                "bitLength": 4
              }
            },
            {
              "type": "property",
              "key": "function",
              "value": {
                "type": "training_optimizer_function",
                "bitLength": 4
              }
            }
          ]
        },
        {
          "type": "property",
          "key": "epochs",
          "value": {
            "type": "training_epochs",
            "bitLength": 4
          }
        },
        {
          "type": "property",
          "key": "batchsize",
          "value": {
            "type": "training_batchsize",
            "bitLength": 4
          }
        },
        {
          "type": "object",
          "key": "earlystopping",
          "properties": [
            {
              "type": "property",
              "key": "monitor",
              "value": {
                "type": "training_earlystopping_monitor",
                "bitLength": 4
              }
            },
            {
              "type": "property",
              "key": "patience",
              "value": {
                "type": "training_earlystopping_patience",
                "bitLength": 4
              }
            },
            {
              "type": "property",
              "key": "dummy",
              "value": {
                "type": "number",
                "bitLength": 4
              }
            }
          ]
        },
        {
          "type": "property",
          "key": "shuffle",
          "value": {
            "type": "boolean",
            "bitLength": 1
          }
        },
        {
          "type": "property",
          "key": "validation_split",
          "value": {
            "type": "training_validation_split",
            "bitLength": 2
          }
        },
        {
          "type": "property",
          "key": "version",
          "value": {
            "type": "number",
            "bitLength": 4
          }
        },
        {
          "type": "property",
          "key": "special",
          "value": {
            "type": "number",
            "bitLength": 4
          }
        },
        {
          "type": "property",
          "key": "dummy",
          "value": {
            "type": "number",
            "bitLength": 21
          }
        }
      ]
    },
    {
      "type": "object",
      "key": "training_data",
      "properties": [
        {
          "type": "property",
          "key": "instrument_set",
          "value": {
            "type": "number",
            "bitLength": 6
          }
        },
        {
          "type": "property",
          "key": "interval",
          "value": {
            "type": "trainingdata_interval",
            "bitLength": 4
          }
        },
        {
          "type": "property",
          "key": "signal",
          "value": {
            "type": "number",
            "bitLength": 10
          }
        },
        {
          "type": "property",
          "key": "only_normal_market_time",
          "value": {
            "type": "boolean",
            "bitLength": 1
          }
        },
        {
          "type": "property",
          "key": "look_back_time_length",
          "value": {
            "type": "trainingdata_look_back_time_length",
            "bitLength": 5
          }
        },
        {
          "type": "property",
          "key": "dummy",
          "value": {
            "type": "number",
            "bitLength": 6
          }
        },
        {
          "type": "object",
          "key": "inputs",
          "properties": [
            {
              "type": "property",
              "key": "indicator_set",
              "value": {
                "type": "number",
                "bitLength": 8
              }
            },
            {
              "type": "property",
              "key": "scaling",
              "value": {
                "type": "trainingdata_inputs_scaling",
                "bitLength": 4
              }
            },
            {
              "type": "property",
              "key": "windowsize",
              "value": {
                "type": "trainingdata_inputs_windowsize",
                "bitLength": 4
              }
            },
            {
              "type": "property",
              "key": "dummy",
              "value": {
                "type": "number",
                "bitLength": 8
              }
            }
          ]
        },
        {
          "type": "object",
          "key": "output",
          "properties": [
            {
              "type": "property",
              "key": "scaling",
              "value": {
                "type": "trainingdata_output_scaling",
                "bitLength": 1
              }
            },
            {
              "type": "property",
              "key": "indicator",
              "value": {
                "type": "number",
                "bitLength": 7
              }
            }
          ]
        }
      ]
    }
  ]
}