docs: public static boolean hasCriteria(JSONObject jo) {
          try {
              return jo != null
                  && jo.has(IS_PAUSED) && (jo.getBoolean(IS_PAUSED) ? true : true)
                  && jo.has(IS_BARE) && (jo.getBoolean(IS_BARE) ? true : true)
                  && jo.has(IS_ENTERPRISE) && (jo.getBoolean(IS_ENTERPRISE) ? true : true)
                  && jo.has(ADD_ALLOWED) && (jo.getBoolean(ADD_ALLOWED) ? true : true)
                  && jo.has(SAFE_MODE) && (jo.getBoolean(SAFE_MODE) ? true : true)
                  && jo.has(CONFIG_HASH) && jo.getString(CONFIG_HASH) != null && !jo.getString(CONFIG_HASH).trim().isEmpty()
                  && jo.has(MESH_HASH) && jo.getString(MESH_HASH) != null && !jo.getString(MESH_HASH).trim().isEmpty()
                  && jo.has(START_ACTION) && jo.getString(START_ACTION) != null && !jo.getString(START_ACTION).trim().isEmpty()
                  && jo.has(NODE_STATE) && jo.getString(NODE_STATE) != null && !jo.getString(NODE_STATE).trim().isEmpty()
                  && jo.has(HOST_COUNT) && jo.getInt(HOST_COUNT) > 0
                  && (jo.optString(TERMINUS_NONCE, null) == null || !jo.optString(TERMINUS_NONCE).trim().isEmpty());
          } catch (JSONException e) {
              return false;
          }
      }