{
  "oneOf":[
    {
      "type":"object",
      "properties":{
        "app_status":{
          "const":"idle"
        }
      },
      "required":[
        "app_status"
      ],
      "additionalProperties":false
    },
    {
      "type":"object",
      "properties":{
        "app_status":{
          "const":"busy"
        },
        "busy_resources":{
          "type":"array",
          "minItems":1,
          "items":{
            "type":"object",
            "anyOf":[
              {
                "properties":{
                  "name":{
                    "const":"delayed_perform_selector"
                  },
                  "description":{
                    "type":"object",
                    "properties":{
                      "pending_selectors":{
                        "type":"number",
                        "minimum":1
                      }
                    },
                    "required":[
                      "pending_selectors"
                    ],
                    "additionalProperties":false
                  }
                },
                "required":[
                  "name",
                  "description"
                ],
                "additionalProperties":false
              },
              {
                "properties":{
                  "name":{
                    "const":"dispatch_queue"
                  },
                  "description":{
                    "type":"object",
                    "properties":{
                      "queue":{
                        "type":"string"
                      },
                      "works_count":{
                        "type":"number",
                        "minimum":1
                      }
                    },
                    "required":[
                      "queue",
                      "works_count"
                    ],
                    "additionalProperties":false
                  }
                },
                "required":[
                  "name",
                  "description"
                ],
                "additionalProperties":false
              },
              {
                "properties":{
                  "name":{
                    "const":"run_loop"
                  },
                  "description":{
                    "type":"object",
                    "properties":{
                      "name":{
                        "type":"string"
                      }
                    },
                    "required":[
                      "name"
                    ],
                    "additionalProperties":false
                  }
                },
                "required":[
                  "name",
                  "description"
                ],
                "additionalProperties":false
              },
              {
                "properties":{
                  "name":{
                    "const":"one_time_events"
                  },
                  "description":{
                    "type":"object",
                    "properties":{
                      "event":{
                        "type":"string"
                      },
                      "object":{
                        "type":"string"
                      }
                    },
                    "required":[
                      "event"
                    ],
                    "additionalProperties":false
                  }
                },
                "required":[
                  "name",
                  "description"
                ],
                "additionalProperties":false
              },
              {
                "properties":{
                  "name":{
                    "const":"timers"
                  },
                  "description":{
                    "type":"object",
                    "properties":{
                      "timers":{
                        "type":"array",
                        "items":{
                          "type":"object",
                          "properties":{
                            "fire_date":{
                              "type":"string"
                            },
                            "time_until_fire":{
                              "type":"number"
                            },
                            "repeat_interval":{
                              "type":"number"
                            },
                            "is_recurring":{
                              "type":"boolean"
                            }
                          },
                          "required":[
                            "fire_date",
                            "time_until_fire",
                            "repeat_interval",
                            "is_recurring"
                          ],
                          "additionalProperties":false
                        },
                        "minItems":1
                      }
                    },
                    "required":[],
                    "additionalProperties":false
                  }
                },
                "required":[
                  "name"
                ],
                "additionalProperties":false
              },
              {
                "properties":{
                  "name":{
                    "const":"ui"
                  },
                  "description":{
                    "type":"object",
                    "properties":{
                      "layer_animation_pending_count":{
                        "type":"number",
                        "minimum":1
                      },
                      "layer_needs_display_count":{
                        "type":"number",
                        "minimum":1
                      },
                      "layer_needs_layout_count":{
                        "type":"number",
                        "minimum":1
                      },
                      "layer_pending_animation_count":{
                        "type":"number",
                        "minimum":1
                      },
                      "view_animation_pending_count":{
                        "type":"number",
                        "minimum":1
                      },
                      "view_controller_will_appear_count":{
                        "type":"number",
                        "minimum":1
                      },
                      "view_controller_will_disappear_count":{
                        "type":"number",
                        "minimum":1
                      },
                      "view_needs_display_count":{
                        "type":"number",
                        "minimum":1
                      },
                      "view_needs_layout_count":{
                        "type":"number",
                        "minimum":1
                      },
                      "mount_items":{
                        "type":"number"
                      },
                      "view_command_mount_items":{
                        "type":"number"
                      },
                      "reason":{
                        "type":"string"
                      }
                    },
                    "additionalProperties":false
                  }
                },
                "required":[
                  "name",
                  "description"
                ],
                "additionalProperties":false
              },
              {
                "properties":{
                  "name":{
                    "const":"bg"
                  },
                  "description":{
                    "type":"object",
                    "properties":{
                      "reason":{
                        "type":"string"
                      }
                    },
                    "additionalProperties":false
                  }
                },
                "required":[
                  "name",
                  "description"
                ],
                "additionalProperties":false
              },
              {
                "properties":{
                  "name":{
                    "const":"network"
                  },
                  "description":{
                    "type":"object",
                    "properties":{
                      "urls":{
                        "type":"array",
                        "items":{
                          "type":"string"
                        },
                        "minItems":1
                      }
                    },
                    "required":[
                      "urls"
                    ],
                    "additionalProperties":false
                  }
                },
                "required":[
                  "name",
                  "description"
                ],
                "additionalProperties":false
              },
              {
                "properties":{
                  "name":{
                    "const":"js_timers"
                  },
                  "description":{
                    "type":"object",
                    "properties":{
                      "timers":{
                        "type":"array",
                        "items":{
                          "type":"object",
                          "properties":{
                            "timer_id":{
                              "type":"number"
                            },
                            "duration":{
                              "type":"number"
                            },
                            "elapsed":{
                              "type":"number"
                            },
                            "is_recurring":{
                              "type":"boolean"
                            }
                          },
                          "required":[
                            "timer_id",
                            "duration"
                          ],
                          "additionalProperties":false
                        },
                        "minItems":1
                      }
                    },
                    "additionalProperties":false
                  }
                },
                "required":[
                  "name",
                  "description"
                ],
                "additionalProperties":false
              },
              {
                "properties":{
                  "name":{
                    "const":"looper"
                  },
                  "description":{
                    "type":"object",
                    "properties":{
                      "thread":{
                        "type":"string"
                      },
                      "execution_type":{
                        "type":"string"
                      }
                    },
                    "required":[
                      "thread"
                    ],
                    "additionalProperties":false
                  }
                },
                "required":[
                  "name",
                  "description"
                ],
                "additionalProperties":false
              },
              {
                "properties":{
                  "name":{
                    "const":"io"
                  }
                },
                "required":[
                  "name"
                ],
                "additionalProperties":false
              },
              {
                "properties":{
                  "name":{
                    "const":"bridge"
                  }
                },
                "required":[
                  "name"
                ],
                "additionalProperties":false
              },
              {
                "properties": {
                  "name": {
                    "const": "animation_updates"
                  },
                  "description": {
                    "type": "object",
                    "properties": {
                      "pending_updates": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "pending_updates"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "name",
                  "description"
                ],
                "additionalProperties": false
              },
              {
                "properties":{
                  "name":{
                    "const":"unknown"
                  },
                  "description":{
                    "type":"object",
                    "properties":{
                      "identifier":{
                        "type":"string"
                      }
                    },
                    "required":[
                      "identifier"
                    ],
                    "additionalProperties":false
                  }
                },
                "required":[
                  "name",
                  "description"
                ],
                "additionalProperties":false
              }
            ]
          }
        }
      },
      "required":[
        "app_status",
        "busy_resources"
      ],
      "additionalProperties":false
    }
  ]
}
