{
  "$comment": "Generated from the Buildish Release Tooling Pydantic models. Do not edit by hand; regenerate with `make schemas`.",
  "$defs": {
    "ArtifactReproducibilityBuildOverrideReport": {
      "additionalProperties": false,
      "description": "Sparse local override delta applied to one canonical build recipe.",
      "properties": {
        "command": {
          "anyOf": [
            {
              "items": {
                "minLength": 1,
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Literal argv list that Buildish executed or recommends for the related step.",
          "title": "Command"
        },
        "env_keys": {
          "description": "Environment variable names referenced by the related recipe or override without exposing their values.",
          "items": {
            "minLength": 1,
            "type": "string"
          },
          "title": "Env Keys",
          "type": "array"
        },
        "output_globs": {
          "anyOf": [
            {
              "items": {
                "minLength": 1,
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Repository-root-relative glob patterns that identify expected outputs of the related build recipe.",
          "title": "Output Globs"
        },
        "working_directory": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Repository-root-relative working directory that Buildish recorded in the related canonical recipe, effective execution, or local override block.",
          "title": "Working Directory"
        }
      },
      "title": "ArtifactReproducibilityBuildOverrideReport",
      "type": "object",
      "x-buildish-contract": {
        "category": "emitted",
        "ownership": "tooling-derived"
      }
    },
    "ArtifactReproducibilityCanonicalBuildRecipeReport": {
      "additionalProperties": false,
      "description": "Canonical build recipe declared by the verified source tree for one profile.",
      "properties": {
        "command": {
          "description": "Literal argv list that Buildish executed or recommends for the related step.",
          "items": {
            "minLength": 1,
            "type": "string"
          },
          "title": "Command",
          "type": "array"
        },
        "env_keys": {
          "description": "Environment variable names referenced by the related recipe or override without exposing their values.",
          "items": {
            "minLength": 1,
            "type": "string"
          },
          "title": "Env Keys",
          "type": "array"
        },
        "output_globs": {
          "description": "Repository-root-relative glob patterns that identify expected outputs of the related build recipe.",
          "items": {
            "minLength": 1,
            "type": "string"
          },
          "title": "Output Globs",
          "type": "array"
        },
        "working_directory": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Repository-root-relative working directory that Buildish recorded in the related canonical recipe, effective execution, or local override block.",
          "title": "Working Directory"
        }
      },
      "title": "ArtifactReproducibilityCanonicalBuildRecipeReport",
      "type": "object",
      "x-buildish-contract": {
        "category": "emitted",
        "ownership": "tooling-derived"
      }
    },
    "ArtifactReproducibilityCanonicalRecipeReport": {
      "additionalProperties": false,
      "description": "Canonical repo-defined recipe for one reproducibility profile.",
      "properties": {
        "build": {
          "$ref": "#/$defs/ArtifactReproducibilityCanonicalBuildRecipeReport",
          "description": "Nested build recipe or effective build execution block for one reproducibility contract."
        }
      },
      "required": [
        "build"
      ],
      "title": "ArtifactReproducibilityCanonicalRecipeReport",
      "type": "object",
      "x-buildish-contract": {
        "category": "emitted",
        "ownership": "tooling-derived"
      }
    },
    "ArtifactReproducibilityEffectiveBuildExecutionReport": {
      "additionalProperties": false,
      "description": "Observed build invocation details for one executed reproducibility profile.",
      "properties": {
        "command": {
          "description": "Literal argv list that Buildish executed or recommends for the related step.",
          "items": {
            "minLength": 1,
            "type": "string"
          },
          "title": "Command",
          "type": "array"
        },
        "injected_environment_keys": {
          "description": "Environment variable names that Buildish injected into the effective rebuild subprocess.",
          "items": {
            "minLength": 1,
            "type": "string"
          },
          "title": "Injected Environment Keys",
          "type": "array"
        },
        "output_paths": {
          "description": "Concrete output paths that Buildish observed from the effective rebuild execution.",
          "items": {
            "minLength": 1,
            "type": "string"
          },
          "title": "Output Paths",
          "type": "array"
        },
        "working_directory": {
          "anyOf": [
            {
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Repository-root-relative working directory that Buildish recorded in the related canonical recipe, effective execution, or local override block.",
          "title": "Working Directory"
        }
      },
      "title": "ArtifactReproducibilityEffectiveBuildExecutionReport",
      "type": "object",
      "x-buildish-contract": {
        "category": "emitted",
        "ownership": "tooling-derived"
      }
    },
    "ArtifactReproducibilityEffectiveExecutionReport": {
      "additionalProperties": false,
      "description": "Effective execution details for one reproducibility run.",
      "properties": {
        "backend": {
          "const": "host-direct",
          "default": "host-direct",
          "description": "Execution backend name that performed the related Buildish action or reproducibility run.",
          "title": "Backend",
          "type": "string"
        },
        "build": {
          "$ref": "#/$defs/ArtifactReproducibilityEffectiveBuildExecutionReport",
          "description": "Nested build recipe or effective build execution block for one reproducibility contract."
        }
      },
      "required": [
        "build"
      ],
      "title": "ArtifactReproducibilityEffectiveExecutionReport",
      "type": "object",
      "x-buildish-contract": {
        "category": "emitted",
        "ownership": "tooling-derived"
      }
    },
    "ArtifactReproducibilityOverrideReport": {
      "additionalProperties": false,
      "description": "Structured local override metadata for one reproducibility run.",
      "properties": {
        "applied": {
          "default": false,
          "description": "Whether the related local override block was applied to the effective rebuild execution.",
          "title": "Applied",
          "type": "boolean"
        },
        "build": {
          "anyOf": [
            {
              "$ref": "#/$defs/ArtifactReproducibilityBuildOverrideReport"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Nested build recipe or effective build execution block for one reproducibility contract."
        }
      },
      "title": "ArtifactReproducibilityOverrideReport",
      "type": "object",
      "x-buildish-contract": {
        "category": "emitted",
        "ownership": "tooling-derived"
      }
    },
    "MavenRepositoryPathResultReport": {
      "additionalProperties": false,
      "description": "One comparable staged Maven repository path result retained for inspection.",
      "properties": {
        "detail": {
          "description": "Human-readable comparison detail for one verification or reproducibility result entry.",
          "minLength": 1,
          "title": "Detail",
          "type": "string"
        },
        "mode": {
          "description": "Comparison mode that Buildish applied when comparing this staged Maven repository path to the rebuilt local path.",
          "enum": [
            "exact-bytes",
            "zip-normalized",
            "content-only",
            "remote-only"
          ],
          "title": "Mode",
          "type": "string"
        },
        "normalized_match": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether the staged and rebuilt repository path matched after applying the selected normalization mode.",
          "title": "Normalized Match"
        },
        "path": {
          "description": "Filesystem path, relative artifact path, or retained evidence path associated with the related record.",
          "minLength": 1,
          "title": "Path",
          "type": "string"
        },
        "raw_bytes_equal": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether raw staged and rebuilt bytes matched before any archive-aware normalization.",
          "title": "Raw Bytes Equal"
        },
        "rebuilt_sha512": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "SHA-512 digest computed from the rebuilt source or secondary artifact bytes.",
          "title": "Rebuilt Sha512"
        },
        "staged_sha512": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "SHA-512 digest computed from the staged repository entry or retained artifact bytes.",
          "title": "Staged Sha512"
        },
        "verdict": {
          "description": "Structured verification or reproducibility verdict for the related subject.",
          "enum": [
            "verified",
            "failed",
            "skipped"
          ],
          "title": "Verdict",
          "type": "string"
        }
      },
      "required": [
        "path",
        "mode",
        "verdict",
        "detail"
      ],
      "title": "MavenRepositoryPathResultReport",
      "type": "object",
      "x-buildish-contract": {
        "category": "emitted",
        "ownership": "tooling-derived"
      }
    },
    "MavenRepositoryPathRuleReport": {
      "additionalProperties": false,
      "description": "One regex-based Maven repository path rule retained for inspection.",
      "properties": {
        "mode": {
          "description": "Comparison mode that the associated regex path rule applies to matching staged Maven repository paths.",
          "enum": [
            "exact-bytes",
            "zip-normalized",
            "content-only",
            "remote-only"
          ],
          "title": "Mode",
          "type": "string"
        },
        "pattern": {
          "description": "Regular-expression pattern used to match one family of repository paths.",
          "minLength": 1,
          "title": "Pattern",
          "type": "string"
        }
      },
      "required": [
        "pattern",
        "mode"
      ],
      "title": "MavenRepositoryPathRuleReport",
      "type": "object",
      "x-buildish-contract": {
        "category": "emitted",
        "ownership": "tooling-derived"
      }
    }
  },
  "$id": "https://buildish.org/components/release-tooling/schemas/maven-repository-reproducibility-metadata.schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "Retained comparison metadata for one Maven repository reproducibility run.",
  "properties": {
    "artifact_id": {
      "description": "Stable identifier for one source, secondary, or emitted artifact within Buildish release tooling.",
      "minLength": 1,
      "title": "Artifact Id",
      "type": "string"
    },
    "canonical_recipe": {
      "anyOf": [
        {
          "$ref": "#/$defs/ArtifactReproducibilityCanonicalRecipeReport"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Canonical rebuild recipe resolved from the verified source tree or other authoritative Buildish configuration."
    },
    "comparison_mode": {
      "const": "repository-tree",
      "default": "repository-tree",
      "description": "Declared reproducibility comparison mode used for the related artifact or profile.",
      "title": "Comparison Mode",
      "type": "string"
    },
    "effective_execution": {
      "anyOf": [
        {
          "$ref": "#/$defs/ArtifactReproducibilityEffectiveExecutionReport"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Effective build execution details that Buildish actually ran after applying local overrides or runtime defaults."
    },
    "failed_path_count": {
      "anyOf": [
        {
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Number of Maven repository paths whose reproducibility comparison ended in a failure state.",
      "title": "Failed Path Count"
    },
    "failure_class": {
      "anyOf": [
        {
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Structured failure classification that summarizes the main reason why verification or reproducibility failed.",
      "title": "Failure Class"
    },
    "issues": {
      "description": "Collected human-readable issues observed for the related verification, inspection, or reproducibility subject.",
      "items": {
        "type": "string"
      },
      "title": "Issues",
      "type": "array"
    },
    "kind": {
      "const": "maven-repository",
      "default": "maven-repository",
      "description": "Declared artifact or report kind discriminator.",
      "title": "Kind",
      "type": "string"
    },
    "matches_remote_bytes": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Whether the rebuilt artifact bytes matched the staged or signed remote bytes exactly.",
      "title": "Matches Remote Bytes"
    },
    "override": {
      "$ref": "#/$defs/ArtifactReproducibilityOverrideReport",
      "description": "Explicit local reproducibility override details applied on top of the canonical recipe."
    },
    "path_results": {
      "description": "Per-path Maven repository reproducibility results retained for later inspection or reporting.",
      "items": {
        "$ref": "#/$defs/MavenRepositoryPathResultReport"
      },
      "title": "Path Results",
      "type": "array"
    },
    "path_rules": {
      "description": "Regex-based per-path comparison rules that specialize the default Maven repository comparison behavior.",
      "items": {
        "$ref": "#/$defs/MavenRepositoryPathRuleReport"
      },
      "title": "Path Rules",
      "type": "array"
    },
    "profile_id": {
      "description": "Reproducibility profile identifier selected for the related artifact or source verification.",
      "minLength": 1,
      "title": "Profile Id",
      "type": "string"
    },
    "repository_dir": {
      "anyOf": [
        {
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Repository-root-relative rebuild output directory that should contain the local Maven repository tree.",
      "title": "Repository Dir"
    },
    "require_signatures": {
      "default": false,
      "description": "Whether Maven repository reproducibility should require detached signature files to exist and compare successfully.",
      "title": "Require Signatures",
      "type": "boolean"
    },
    "skipped_path_count": {
      "anyOf": [
        {
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Number of Maven repository paths that Buildish skipped from local comparison because policy marked them remote-only.",
      "title": "Skipped Path Count"
    },
    "verified_path_count": {
      "anyOf": [
        {
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Number of Maven repository paths that Buildish compared locally under the active repository-tree policy.",
      "title": "Verified Path Count"
    }
  },
  "required": [
    "artifact_id",
    "profile_id"
  ],
  "title": "Buildish Release Tooling MavenRepositoryReproducibilityMetadata",
  "type": "object",
  "x-buildish-contract": {
    "category": "emitted",
    "ownership": "tooling-derived",
    "summary": "Inspection-bundle metadata payload for Maven repository reproducibility evidence."
  }
}
