{
  "schema": "degrees-of-satoshi-analysis-availability-v1",
  "release_id": "bitcoin-address-graph-v1.0.0",
  "methodology_version": "1.0.0",
  "generated_assets": [
    {
      "analysis_id": "exact_degree_distribution",
      "status": "available",
      "asset": "degree-distribution.csv"
    },
    {
      "analysis_id": "terminal_threshold_sensitivity",
      "status": "available",
      "asset": "hub-threshold-sensitivity.csv"
    },
    {
      "analysis_id": "anchor_set_sensitivity",
      "status": "available",
      "asset": "anchor-set-sensitivity.csv"
    },
    {
      "analysis_id": "first_seen_year_denominators",
      "status": "available",
      "asset": "first-seen-year-counts.csv"
    },
    {
      "analysis_id": "full_population_path_audit",
      "status": "available",
      "asset": "path-audit.json"
    }
  ],
  "unavailable_assets": [
    {
      "analysis_id": "degree_by_first_seen_year",
      "requested_asset": "degree-by-first-seen-year.csv",
      "status": "unavailable",
      "reason_code": "source_cross_tab_not_in_release_evidence",
      "explanation": "The checked source artifacts contain first-seen-year denominators, but not the degree-by-year cross-tab required for a heatmap.",
      "substitute_asset": "first-seen-year-counts.csv"
    },
    {
      "analysis_id": "connection_lag",
      "requested_asset": "connection-lag.csv",
      "status": "unavailable",
      "reason_code": "aggregate_not_in_release_evidence",
      "explanation": "No reviewed connection-lag aggregate is present in the immutable source package, so no values are inferred or fabricated.",
      "substitute_asset": null
    },
    {
      "analysis_id": "deterministic_path_sample",
      "requested_asset": "deterministic-path-sample.csv",
      "status": "unavailable",
      "reason_code": "sample_output_bytes_absent",
      "explanation": "The historical 50-path command was deterministic rather than statistically random, and its output bytes are not present in this release.",
      "substitute_asset": "path-audit.json"
    },
    {
      "analysis_id": "same_anchor_direction_comparison",
      "requested_asset": "directional-versus-undirected.csv",
      "status": "unavailable",
      "reason_code": "identical_anchor_rerun_not_completed",
      "explanation": "The existing directional and undirected results do not use identical anchors and therefore are not a publishable comparison.",
      "substitute_asset": null
    },
    {
      "analysis_id": "post_patoshi_labelled_only_threshold",
      "requested_asset": "labelled-only-terminal-sensitivity.csv",
      "status": "unavailable",
      "reason_code": "checked_run_not_present",
      "explanation": "The checked release evidence does not contain a post-Patoshi labelled-only terminal run.",
      "substitute_asset": "hub-threshold-sensitivity.csv"
    },
    {
      "analysis_id": "maximum_degree_path_inspection",
      "requested_asset": "maximum-degree-path-audit.json",
      "status": "unavailable",
      "reason_code": "independent_path_inspection_not_completed",
      "explanation": "The 25,349-hop maximum is reported only as an artifact boundary and receives no behavioral interpretation.",
      "substitute_asset": null
    }
  ]
}
