{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://blochmarkets.xyz/schemas/local-qualification-v1.json",
  "title": "Local Ustav qualification report v1",
  "description": "Unsigned named-test evidence. The application additionally reconciles counts, exit codes and time bounds; this schema does not establish execution authenticity.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema",
    "environment",
    "chain_transaction",
    "production_finality",
    "started_at_utc",
    "finished_at_utc",
    "provenance",
    "suites"
  ],
  "properties": {
    "schema": {
      "const": "bloch-markets-qualification/1"
    },
    "environment": {
      "const": "local_sandbox_only"
    },
    "chain_transaction": {
      "const": false
    },
    "production_finality": {
      "const": false
    },
    "started_at_utc": {
      "type": "string",
      "format": "date-time",
      "maxLength": 40
    },
    "finished_at_utc": {
      "type": "string",
      "format": "date-time",
      "maxLength": 40
    },
    "provenance": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "repository",
        "revision",
        "rust_toolchain",
        "cargo_lock_sha256",
        "relevant_worktree_clean"
      ],
      "properties": {
        "repository": {
          "type": "string",
          "format": "uri",
          "pattern": "^https://",
          "maxLength": 250
        },
        "revision": {
          "type": "string",
          "pattern": "^[a-f0-9]{40}$"
        },
        "rust_toolchain": {
          "type": "string",
          "minLength": 1,
          "maxLength": 40
        },
        "cargo_lock_sha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "relevant_worktree_clean": {
          "const": true
        }
      }
    },
    "suites": {
      "type": "array",
      "minItems": 3,
      "maxItems": 3,
      "items": {
        "oneOf": [
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "source_sha256",
              "command",
              "cases",
              "summary",
              "exit_code",
              "elapsed_ms",
              "harness_seconds",
              "stdout_sha256",
              "stderr_sha256"
            ],
            "properties": {
              "id": {
                "const": "crypto_kernel"
              },
              "source_sha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "command": {
                "type": "array",
                "minItems": 1,
                "maxItems": 25,
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 250
                }
              },
              "cases": {
                "type": "array",
                "minItems": 4,
                "maxItems": 4,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "id",
                    "status"
                  ],
                  "properties": {
                    "id": {
                      "enum": [
                        "real_hybrid_registration_mint_transfer_and_burn",
                        "malformed_keys_suites_and_each_tampered_signature_leg_fail",
                        "native_custody_requires_two_real_pq_custodians_plus_owner",
                        "classical_shaped_owner_key_is_not_native_authorization"
                      ]
                    },
                    "status": {
                      "enum": [
                        "passed",
                        "failed",
                        "ignored"
                      ]
                    }
                  }
                },
                "allOf": [
                  {
                    "contains": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "const": "real_hybrid_registration_mint_transfer_and_burn"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "minContains": 1,
                    "maxContains": 1
                  },
                  {
                    "contains": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "const": "malformed_keys_suites_and_each_tampered_signature_leg_fail"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "minContains": 1,
                    "maxContains": 1
                  },
                  {
                    "contains": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "const": "native_custody_requires_two_real_pq_custodians_plus_owner"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "minContains": 1,
                    "maxContains": 1
                  },
                  {
                    "contains": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "const": "classical_shaped_owner_key_is_not_native_authorization"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "minContains": 1,
                    "maxContains": 1
                  }
                ]
              },
              "summary": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "passed",
                  "failed",
                  "ignored"
                ],
                "properties": {
                  "passed": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 8
                  },
                  "failed": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 8
                  },
                  "ignored": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 8
                  }
                }
              },
              "exit_code": {
                "enum": [
                  0,
                  101
                ]
              },
              "elapsed_ms": {
                "type": "integer",
                "minimum": 0,
                "maximum": 305000
              },
              "harness_seconds": {
                "type": "number",
                "minimum": 0,
                "maximum": 300
              },
              "stdout_sha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "stderr_sha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "source_sha256",
              "command",
              "cases",
              "summary",
              "exit_code",
              "elapsed_ms",
              "harness_seconds",
              "stdout_sha256",
              "stderr_sha256"
            ],
            "properties": {
              "id": {
                "const": "native_pairs_crypto"
              },
              "source_sha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "command": {
                "type": "array",
                "minItems": 1,
                "maxItems": 25,
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 250
                }
              },
              "cases": {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "id",
                    "status"
                  ],
                  "properties": {
                    "id": {
                      "enum": [
                        "hybrid_joint_authorization_exchanges_both_native_assets",
                        "either_tampered_hybrid_component_in_second_leg_rolls_back_first",
                        "ordinary_leg_signatures_cannot_authorize_pair_owners_or_governance"
                      ]
                    },
                    "status": {
                      "enum": [
                        "passed",
                        "failed",
                        "ignored"
                      ]
                    }
                  }
                },
                "allOf": [
                  {
                    "contains": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "const": "hybrid_joint_authorization_exchanges_both_native_assets"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "minContains": 1,
                    "maxContains": 1
                  },
                  {
                    "contains": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "const": "either_tampered_hybrid_component_in_second_leg_rolls_back_first"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "minContains": 1,
                    "maxContains": 1
                  },
                  {
                    "contains": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "const": "ordinary_leg_signatures_cannot_authorize_pair_owners_or_governance"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "minContains": 1,
                    "maxContains": 1
                  }
                ]
              },
              "summary": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "passed",
                  "failed",
                  "ignored"
                ],
                "properties": {
                  "passed": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 8
                  },
                  "failed": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 8
                  },
                  "ignored": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 8
                  }
                }
              },
              "exit_code": {
                "enum": [
                  0,
                  101
                ]
              },
              "elapsed_ms": {
                "type": "integer",
                "minimum": 0,
                "maximum": 305000
              },
              "harness_seconds": {
                "type": "number",
                "minimum": 0,
                "maximum": 300
              },
              "stdout_sha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "stderr_sha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "source_sha256",
              "command",
              "cases",
              "summary",
              "exit_code",
              "elapsed_ms",
              "harness_seconds",
              "stdout_sha256",
              "stderr_sha256"
            ],
            "properties": {
              "id": {
                "const": "native_pool_crypto"
              },
              "source_sha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "command": {
                "type": "array",
                "minItems": 1,
                "maxItems": 25,
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 250
                }
              },
              "cases": {
                "type": "array",
                "minItems": 1,
                "maxItems": 1,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "id",
                    "status"
                  ],
                  "properties": {
                    "id": {
                      "enum": [
                        "real_pq_pool_custody_add_swap_lp_theft_rejection_remove_and_restore"
                      ]
                    },
                    "status": {
                      "enum": [
                        "passed",
                        "failed",
                        "ignored"
                      ]
                    }
                  }
                },
                "allOf": [
                  {
                    "contains": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "const": "real_pq_pool_custody_add_swap_lp_theft_rejection_remove_and_restore"
                        }
                      },
                      "required": [
                        "id"
                      ]
                    },
                    "minContains": 1,
                    "maxContains": 1
                  }
                ]
              },
              "summary": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "passed",
                  "failed",
                  "ignored"
                ],
                "properties": {
                  "passed": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 8
                  },
                  "failed": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 8
                  },
                  "ignored": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 8
                  }
                }
              },
              "exit_code": {
                "enum": [
                  0,
                  101
                ]
              },
              "elapsed_ms": {
                "type": "integer",
                "minimum": 0,
                "maximum": 305000
              },
              "harness_seconds": {
                "type": "number",
                "minimum": 0,
                "maximum": 300
              },
              "stdout_sha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "stderr_sha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              }
            }
          }
        ]
      },
      "allOf": [
        {
          "contains": {
            "type": "object",
            "properties": {
              "id": {
                "const": "crypto_kernel"
              }
            },
            "required": [
              "id"
            ]
          },
          "minContains": 1,
          "maxContains": 1
        },
        {
          "contains": {
            "type": "object",
            "properties": {
              "id": {
                "const": "native_pairs_crypto"
              }
            },
            "required": [
              "id"
            ]
          },
          "minContains": 1,
          "maxContains": 1
        },
        {
          "contains": {
            "type": "object",
            "properties": {
              "id": {
                "const": "native_pool_crypto"
              }
            },
            "required": [
              "id"
            ]
          },
          "minContains": 1,
          "maxContains": 1
        }
      ]
    }
  }
}
