{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "AFROCite frozen public dashboard data — Phase 2",
  "type": "object",
  "properties": {
    "schema_version": {
      "const": "1.1.0"
    },
    "release": {
      "const": "0.2.2"
    },
    "assessment_state": {
      "const": "frozen"
    },
    "scope_counts": {
      "type": "object",
      "properties": {
        "pilot_journals": {
          "type": "object",
          "properties": {
            "unit": {
              "const": "journal"
            },
            "count": {
              "const": 25
            }
          },
          "required": [
            "unit",
            "count"
          ],
          "additionalProperties": false
        },
        "operational_pool": {
          "type": "object",
          "properties": {
            "unit": {
              "const": "journal"
            },
            "count": {
              "const": 85
            }
          },
          "required": [
            "unit",
            "count"
          ],
          "additionalProperties": false
        },
        "primary_articles": {
          "type": "object",
          "properties": {
            "unit": {
              "const": "article"
            },
            "count": {
              "const": 250
            }
          },
          "required": [
            "unit",
            "count"
          ],
          "additionalProperties": false
        },
        "c2_eligible_articles": {
          "type": "object",
          "properties": {
            "unit": {
              "const": "article"
            },
            "count": {
              "const": 86
            }
          },
          "required": [
            "unit",
            "count"
          ],
          "additionalProperties": false
        },
        "reference_assertions": {
          "type": "object",
          "properties": {
            "unit": {
              "const": "pid_assertion"
            },
            "count": {
              "const": 398
            }
          },
          "required": [
            "unit",
            "count"
          ],
          "additionalProperties": false
        },
        "adjudicated_reference_assertions": {
          "type": "object",
          "properties": {
            "unit": {
              "const": "pid_assertion"
            },
            "count": {
              "const": 396
            }
          },
          "required": [
            "unit",
            "count"
          ],
          "additionalProperties": false
        },
        "stage0_assessed_journals": {
          "type": "object",
          "properties": {
            "unit": {
              "const": "journal"
            },
            "count": {
              "const": 100
            }
          },
          "required": [
            "unit",
            "count"
          ],
          "additionalProperties": false
        },
        "candidate_frame": {
          "type": "object",
          "properties": {
            "unit": {
              "const": "journal"
            },
            "count": {
              "const": 137
            }
          },
          "required": [
            "unit",
            "count"
          ],
          "additionalProperties": false
        },
        "stage0_gate_pass_journals": {
          "type": "object",
          "properties": {
            "unit": {
              "const": "journal"
            },
            "count": {
              "const": 93
            }
          },
          "required": [
            "unit",
            "count"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "pilot_journals",
        "operational_pool",
        "primary_articles",
        "c2_eligible_articles",
        "reference_assertions",
        "adjudicated_reference_assertions",
        "stage0_assessed_journals",
        "candidate_frame",
        "stage0_gate_pass_journals"
      ],
      "additionalProperties": false
    },
    "availability": {
      "type": "object",
      "properties": {
        "full_sample_flow": {
          "const": "available"
        },
        "stage0_results": {
          "const": "available"
        },
        "stage0_rubric": {
          "const": "available"
        },
        "indicator_definitions": {
          "const": "available"
        },
        "dimension_normalized_scores": {
          "const": "available"
        },
        "weight_dictionary": {
          "const": "available"
        },
        "weighting_sensitivity": {
          "const": "stored_comparator_scores_and_summary"
        }
      },
      "required": [
        "full_sample_flow",
        "stage0_results",
        "stage0_rubric",
        "indicator_definitions",
        "dimension_normalized_scores",
        "weight_dictionary",
        "weighting_sensitivity"
      ],
      "additionalProperties": false
    },
    "sample_flow": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "stage": {
            "enum": [
              "candidates",
              "eligible",
              "stage0_gate_pass",
              "operational_stage1_pool",
              "pilot"
            ]
          },
          "count": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          },
          "availability": {
            "enum": [
              "available",
              "unavailable"
            ]
          }
        },
        "required": [
          "stage",
          "count",
          "availability"
        ],
        "additionalProperties": false
      },
      "minItems": 5,
      "maxItems": 5
    },
    "core_structure": {
      "type": "object",
      "properties": {
        "dimension_ids": {
          "const": [
            "D1",
            "D2",
            "D3",
            "D4"
          ]
        },
        "indicator_ids": {
          "const": [
            "I1.1",
            "I1.2",
            "I1.3",
            "I2.1",
            "I2.2",
            "I2.3",
            "I3.1",
            "I3.2",
            "I3.3",
            "I4.1",
            "I4.2",
            "I4.3"
          ]
        },
        "indicator_scale": {
          "const": [
            0,
            100
          ]
        },
        "dimension_measure": {
          "const": "weighted_contribution_to_m1"
        },
        "m1_scale": {
          "const": [
            0,
            100
          ]
        },
        "dimension_normalized_scale": {
          "const": [
            0,
            100
          ]
        }
      },
      "required": [
        "dimension_ids",
        "indicator_ids",
        "indicator_scale",
        "dimension_measure",
        "m1_scale",
        "dimension_normalized_scale"
      ],
      "additionalProperties": false
    },
    "filter_categories": {
      "type": "object",
      "properties": {
        "region": {
          "type": "array",
          "items": {
            "enum": [
              "northern_africa",
              "western_africa",
              "central_africa",
              "eastern_africa",
              "southern_africa"
            ]
          },
          "uniqueItems": true,
          "minItems": 5,
          "maxItems": 5
        },
        "recorded_language": {
          "type": "array",
          "items": {
            "enum": [
              "english",
              "arabic",
              "french",
              "afaan_oromo",
              "portuguese"
            ]
          },
          "uniqueItems": true,
          "minItems": 5,
          "maxItems": 5
        },
        "platform_category": {
          "type": "array",
          "items": {
            "enum": [
              "commercial_publisher",
              "repository_digital_commons",
              "other_institutional_platform",
              "asjp_national_platform",
              "imist_linked_platform",
              "university_institutional_ojs",
              "university_ojs_ajol",
              "ajol_linked_journal",
              "direct_institutional_web",
              "independent_institutional_site",
              "university_journal_portal",
              "repository_journal",
              "university_ojs_scielo"
            ]
          },
          "uniqueItems": true,
          "minItems": 13,
          "maxItems": 13
        },
        "selection_doi_status": {
          "type": "array",
          "items": {
            "enum": [
              "yes",
              "none",
              "mixed",
              "pending"
            ]
          },
          "uniqueItems": true,
          "minItems": 4,
          "maxItems": 4
        }
      },
      "required": [
        "region",
        "recorded_language",
        "platform_category",
        "selection_doi_status"
      ],
      "additionalProperties": false
    },
    "headlines": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/metric"
      },
      "minItems": 16,
      "maxItems": 16
    },
    "core_summary": {
      "type": "object",
      "properties": {
        "journal_count": {
          "type": "integer",
          "minimum": 0
        },
        "indicator_states": {
          "type": "integer",
          "minimum": 0
        },
        "numeric_states": {
          "type": "integer",
          "minimum": 0
        },
        "structural_na_states": {
          "type": "integer",
          "minimum": 0
        },
        "unresolved_states": {
          "type": "integer",
          "minimum": 0
        },
        "numeric_zero_states": {
          "type": "integer",
          "minimum": 0
        },
        "numeric_100_states": {
          "type": "integer",
          "minimum": 0
        },
        "d3_zero_journals": {
          "type": "integer",
          "minimum": 0
        },
        "m1_floor_journals": {
          "type": "integer",
          "minimum": 0
        },
        "m1_stored_rounded_statistics": {
          "type": "object",
          "properties": {
            "mean": {
              "type": "number",
              "minimum": 0,
              "maximum": 100
            },
            "median": {
              "type": "number",
              "minimum": 0,
              "maximum": 100
            },
            "sample_sd": {
              "type": "number",
              "minimum": 0,
              "maximum": 100
            },
            "min": {
              "type": "number",
              "minimum": 0,
              "maximum": 100
            },
            "max": {
              "type": "number",
              "minimum": 0,
              "maximum": 100
            }
          },
          "required": [
            "mean",
            "median",
            "sample_sd",
            "min",
            "max"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "journal_count",
        "indicator_states",
        "numeric_states",
        "structural_na_states",
        "unresolved_states",
        "numeric_zero_states",
        "numeric_100_states",
        "d3_zero_journals",
        "m1_floor_journals",
        "m1_stored_rounded_statistics"
      ],
      "additionalProperties": false
    },
    "journals": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/journal"
      },
      "minItems": 25,
      "maxItems": 25
    },
    "reference_pid": {
      "type": "object",
      "properties": {
        "applicable_journal_ids": {
          "const": [
            "C001",
            "C021"
          ]
        },
        "deep_audit_articles": {
          "const": 10
        },
        "deposited_reference_rows": {
          "const": 471
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/reference_result"
          },
          "minItems": 3,
          "maxItems": 3
        }
      },
      "required": [
        "applicable_journal_ids",
        "deep_audit_articles",
        "deposited_reference_rows",
        "results"
      ],
      "additionalProperties": false
    },
    "weighting_sensitivity": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "comparison": {
            "enum": [
              "m1_vs_equal_within_dimension_weights",
              "m1_vs_equal_dimension_budgets"
            ]
          },
          "mean_absolute_difference": {
            "type": "number",
            "minimum": 0
          },
          "spearman_rho": {
            "type": "number",
            "minimum": -1,
            "maximum": 1
          }
        },
        "required": [
          "comparison",
          "mean_absolute_difference",
          "spearman_rho"
        ],
        "additionalProperties": false
      },
      "minItems": 2,
      "maxItems": 2
    },
    "selection_comparisons": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "filter": {
            "enum": [
              "region",
              "recorded_language",
              "platform_category",
              "selection_doi_status"
            ]
          },
          "category": {
            "type": "string",
            "pattern": "^[a-z0-9_]+$"
          },
          "pool_n": {
            "type": "integer",
            "minimum": 0
          },
          "pool_proportion": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "pilot_n": {
            "type": "integer",
            "minimum": 0
          },
          "pilot_proportion": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "absolute_pp_difference": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          }
        },
        "required": [
          "filter",
          "category",
          "pool_n",
          "pool_proportion",
          "pilot_n",
          "pilot_proportion",
          "absolute_pp_difference"
        ],
        "additionalProperties": false
      },
      "minItems": 27,
      "maxItems": 27
    },
    "interpretation_keys": {
      "const": [
        "pilot_is_purposive",
        "no_population_prevalence",
        "no_journal_quality_ranking",
        "context_does_not_replace_core",
        "c2_empty_response_is_not_verified_absence",
        "c2_zero_eligible_is_undefined",
        "reference_pid_conditional_scope",
        "selection_descriptors_are_not_final_outcomes",
        "unresolved_is_final_assessment_state"
      ]
    },
    "stage0": {
      "type": "object",
      "properties": {
        "release": {
          "const": "0.2.1"
        },
        "assessed_journals": {
          "const": 100
        },
        "criterion_ids": {
          "const": [
            "G1",
            "G2",
            "G3",
            "G4",
            "G5"
          ]
        },
        "criterion_scale": {
          "const": [
            0,
            2
          ]
        },
        "total_scale": {
          "const": [
            0,
            10
          ]
        },
        "rule": {
          "type": "object",
          "properties": {
            "minimum_total": {
              "const": 7
            },
            "minimum_g3": {
              "const": 1
            },
            "minimum_g4": {
              "const": 1
            },
            "unverifiable_prevents_final_gate": {
              "const": true
            },
            "included_in_core": {
              "const": false
            },
            "status": {
              "const": "frozen_for_pilot_provisional_beyond_pilot"
            }
          },
          "required": [
            "minimum_total",
            "minimum_g3",
            "minimum_g4",
            "unverifiable_prevents_final_gate",
            "included_in_core",
            "status"
          ],
          "additionalProperties": false
        },
        "outcome_counts": {
          "type": "object",
          "properties": {
            "core_assessment_accessible": {
              "type": "integer",
              "minimum": 0
            },
            "conditional_core_assessment": {
              "type": "integer",
              "minimum": 0
            },
            "foundational_capacity_building": {
              "type": "integer",
              "minimum": 0
            },
            "unresolved": {
              "type": "integer",
              "minimum": 0
            }
          },
          "required": [
            "core_assessment_accessible",
            "conditional_core_assessment",
            "foundational_capacity_building",
            "unresolved"
          ],
          "additionalProperties": false
        },
        "gate_pass_counts": {
          "type": "object",
          "properties": {
            "yes": {
              "type": "integer",
              "minimum": 0
            },
            "no": {
              "type": "integer",
              "minimum": 0
            },
            "unresolved": {
              "type": "integer",
              "minimum": 0
            }
          },
          "required": [
            "yes",
            "no",
            "unresolved"
          ],
          "additionalProperties": false
        },
        "criterion_distributions": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "criterion": {
                "enum": [
                  "G1",
                  "G2",
                  "G3",
                  "G4",
                  "G5"
                ]
              },
              "score_0": {
                "type": "integer",
                "minimum": 0
              },
              "score_1": {
                "type": "integer",
                "minimum": 0
              },
              "score_2": {
                "type": "integer",
                "minimum": 0
              },
              "unverifiable": {
                "type": "integer",
                "minimum": 0
              },
              "denominator": {
                "const": 100
              }
            },
            "required": [
              "criterion",
              "score_0",
              "score_1",
              "score_2",
              "unverifiable",
              "denominator"
            ],
            "additionalProperties": false
          },
          "minItems": 5,
          "maxItems": 5
        },
        "assessments": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^C[0-9]{3}$"
              },
              "region": {
                "enum": [
                  "northern_africa",
                  "western_africa",
                  "central_africa",
                  "eastern_africa",
                  "southern_africa"
                ]
              },
              "criteria": {
                "type": "object",
                "properties": {
                  "G1": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "state": {
                            "const": "observed"
                          },
                          "value": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 2
                          }
                        },
                        "required": [
                          "state",
                          "value"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "state": {
                            "const": "unverifiable"
                          },
                          "value": {
                            "type": "null"
                          }
                        },
                        "required": [
                          "state",
                          "value"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "G2": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "state": {
                            "const": "observed"
                          },
                          "value": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 2
                          }
                        },
                        "required": [
                          "state",
                          "value"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "state": {
                            "const": "unverifiable"
                          },
                          "value": {
                            "type": "null"
                          }
                        },
                        "required": [
                          "state",
                          "value"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "G3": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "state": {
                            "const": "observed"
                          },
                          "value": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 2
                          }
                        },
                        "required": [
                          "state",
                          "value"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "state": {
                            "const": "unverifiable"
                          },
                          "value": {
                            "type": "null"
                          }
                        },
                        "required": [
                          "state",
                          "value"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "G4": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "state": {
                            "const": "observed"
                          },
                          "value": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 2
                          }
                        },
                        "required": [
                          "state",
                          "value"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "state": {
                            "const": "unverifiable"
                          },
                          "value": {
                            "type": "null"
                          }
                        },
                        "required": [
                          "state",
                          "value"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "G5": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "state": {
                            "const": "observed"
                          },
                          "value": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 2
                          }
                        },
                        "required": [
                          "state",
                          "value"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "state": {
                            "const": "unverifiable"
                          },
                          "value": {
                            "type": "null"
                          }
                        },
                        "required": [
                          "state",
                          "value"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                },
                "required": [
                  "G1",
                  "G2",
                  "G3",
                  "G4",
                  "G5"
                ],
                "additionalProperties": false
              },
              "gate_total": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "state": {
                        "const": "observed"
                      },
                      "value": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 10
                      }
                    },
                    "required": [
                      "state",
                      "value"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "state": {
                        "const": "unverifiable"
                      },
                      "value": {
                        "type": "null"
                      }
                    },
                    "required": [
                      "state",
                      "value"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "gate_outcome": {
                "enum": [
                  "core_assessment_accessible",
                  "conditional_core_assessment",
                  "foundational_capacity_building",
                  "unresolved"
                ]
              },
              "gate_pass": {
                "enum": [
                  "yes",
                  "no",
                  "unresolved"
                ]
              }
            },
            "required": [
              "id",
              "region",
              "criteria",
              "gate_total",
              "gate_outcome",
              "gate_pass"
            ],
            "additionalProperties": false
          },
          "minItems": 100,
          "maxItems": 100
        },
        "interpretation_keys": {
          "const": [
            "stage0_assessability_not_quality",
            "stage0_unverifiable_not_zero",
            "stage0_g4_location_agnostic",
            "stage0_g5_reproducible_evidence_chain"
          ]
        }
      },
      "required": [
        "release",
        "assessed_journals",
        "criterion_ids",
        "criterion_scale",
        "total_scale",
        "rule",
        "outcome_counts",
        "gate_pass_counts",
        "criterion_distributions",
        "assessments",
        "interpretation_keys"
      ],
      "additionalProperties": false
    },
    "gate_pass_exclusions": {
      "type": "object",
      "properties": {
        "count": {
          "const": 8
        },
        "reason": {
          "const": "not_sampleable_under_frozen_article_protocol"
        },
        "note_key": {
          "const": "gate_pass_does_not_establish_sampleability"
        }
      },
      "required": [
        "count",
        "reason",
        "note_key"
      ],
      "additionalProperties": false
    },
    "methodology": {
      "const": {
        "version": "0.2.2",
        "dimensions": [
          {
            "id": "D1",
            "weight": 20,
            "name_key": "core.dimensions.D1.name"
          },
          {
            "id": "D2",
            "weight": 25,
            "name_key": "core.dimensions.D2.name"
          },
          {
            "id": "D3",
            "weight": 35,
            "name_key": "core.dimensions.D3.name"
          },
          {
            "id": "D4",
            "weight": 20,
            "name_key": "core.dimensions.D4.name"
          }
        ],
        "indicators": [
          {
            "id": "I1.1",
            "dimension_id": "D1",
            "internal_weight": 5,
            "name_key": "core.indicators.I1_1.name",
            "operational_definition_key": "core.indicators.I1_1.operationalDefinition",
            "scoring_rule_key": "core.indicators.I1_1.scoringRule",
            "structural_na_rule_key": "core.indicators.I1_1.structuralNA",
            "unverifiable_rule_key": "core.indicators.I1_1.unverifiable"
          },
          {
            "id": "I1.2",
            "dimension_id": "D1",
            "internal_weight": 10,
            "name_key": "core.indicators.I1_2.name",
            "operational_definition_key": "core.indicators.I1_2.operationalDefinition",
            "scoring_rule_key": "core.indicators.I1_2.scoringRule",
            "structural_na_rule_key": "core.indicators.I1_2.structuralNA",
            "unverifiable_rule_key": "core.indicators.I1_2.unverifiable"
          },
          {
            "id": "I1.3",
            "dimension_id": "D1",
            "internal_weight": 5,
            "name_key": "core.indicators.I1_3.name",
            "operational_definition_key": "core.indicators.I1_3.operationalDefinition",
            "scoring_rule_key": "core.indicators.I1_3.scoringRule",
            "structural_na_rule_key": "core.indicators.I1_3.structuralNA",
            "unverifiable_rule_key": "core.indicators.I1_3.unverifiable"
          },
          {
            "id": "I2.1",
            "dimension_id": "D2",
            "internal_weight": 12,
            "name_key": "core.indicators.I2_1.name",
            "operational_definition_key": "core.indicators.I2_1.operationalDefinition",
            "scoring_rule_key": "core.indicators.I2_1.scoringRule",
            "structural_na_rule_key": "core.indicators.I2_1.structuralNA",
            "unverifiable_rule_key": "core.indicators.I2_1.unverifiable"
          },
          {
            "id": "I2.2",
            "dimension_id": "D2",
            "internal_weight": 8,
            "name_key": "core.indicators.I2_2.name",
            "operational_definition_key": "core.indicators.I2_2.operationalDefinition",
            "scoring_rule_key": "core.indicators.I2_2.scoringRule",
            "structural_na_rule_key": "core.indicators.I2_2.structuralNA",
            "unverifiable_rule_key": "core.indicators.I2_2.unverifiable"
          },
          {
            "id": "I2.3",
            "dimension_id": "D2",
            "internal_weight": 5,
            "name_key": "core.indicators.I2_3.name",
            "operational_definition_key": "core.indicators.I2_3.operationalDefinition",
            "scoring_rule_key": "core.indicators.I2_3.scoringRule",
            "structural_na_rule_key": "core.indicators.I2_3.structuralNA",
            "unverifiable_rule_key": "core.indicators.I2_3.unverifiable"
          },
          {
            "id": "I3.1",
            "dimension_id": "D3",
            "internal_weight": 15,
            "name_key": "core.indicators.I3_1.name",
            "operational_definition_key": "core.indicators.I3_1.operationalDefinition",
            "scoring_rule_key": "core.indicators.I3_1.scoringRule",
            "structural_na_rule_key": "core.indicators.I3_1.structuralNA",
            "unverifiable_rule_key": "core.indicators.I3_1.unverifiable"
          },
          {
            "id": "I3.2",
            "dimension_id": "D3",
            "internal_weight": 10,
            "name_key": "core.indicators.I3_2.name",
            "operational_definition_key": "core.indicators.I3_2.operationalDefinition",
            "scoring_rule_key": "core.indicators.I3_2.scoringRule",
            "structural_na_rule_key": "core.indicators.I3_2.structuralNA",
            "unverifiable_rule_key": "core.indicators.I3_2.unverifiable"
          },
          {
            "id": "I3.3",
            "dimension_id": "D3",
            "internal_weight": 10,
            "name_key": "core.indicators.I3_3.name",
            "operational_definition_key": "core.indicators.I3_3.operationalDefinition",
            "scoring_rule_key": "core.indicators.I3_3.scoringRule",
            "structural_na_rule_key": "core.indicators.I3_3.structuralNA",
            "unverifiable_rule_key": "core.indicators.I3_3.unverifiable"
          },
          {
            "id": "I4.1",
            "dimension_id": "D4",
            "internal_weight": 6,
            "name_key": "core.indicators.I4_1.name",
            "operational_definition_key": "core.indicators.I4_1.operationalDefinition",
            "scoring_rule_key": "core.indicators.I4_1.scoringRule",
            "structural_na_rule_key": "core.indicators.I4_1.structuralNA",
            "unverifiable_rule_key": "core.indicators.I4_1.unverifiable"
          },
          {
            "id": "I4.2",
            "dimension_id": "D4",
            "internal_weight": 8,
            "name_key": "core.indicators.I4_2.name",
            "operational_definition_key": "core.indicators.I4_2.operationalDefinition",
            "scoring_rule_key": "core.indicators.I4_2.scoringRule",
            "structural_na_rule_key": "core.indicators.I4_2.structuralNA",
            "unverifiable_rule_key": "core.indicators.I4_2.unverifiable"
          },
          {
            "id": "I4.3",
            "dimension_id": "D4",
            "internal_weight": 6,
            "name_key": "core.indicators.I4_3.name",
            "operational_definition_key": "core.indicators.I4_3.operationalDefinition",
            "scoring_rule_key": "core.indicators.I4_3.scoringRule",
            "structural_na_rule_key": "core.indicators.I4_3.structuralNA",
            "unverifiable_rule_key": "core.indicators.I4_3.unverifiable"
          }
        ],
        "renormalisation": "within_dimension_applicable_indicators_only",
        "cross_dimension_weight_transfer": false,
        "stage0_included_in_core": false,
        "d3_audit_max_primary_articles": 5,
        "rule_keys": [
          "core.states.zero",
          "core.states.structuralNA",
          "core.states.unverifiable",
          "core.evidenceSource",
          "core.noImputation",
          "core.sameFrozenPrimarySample",
          "core.d3AuditSubset",
          "core.i33LinkabilityRoutes",
          "core.renormalisation"
        ]
      }
    },
    "dimension_descriptives": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "dimension": {
            "enum": [
              "D1",
              "D2",
              "D3",
              "D4"
            ]
          },
          "scale": {
            "enum": [
              "normalized_0_100",
              "weighted_contribution"
            ]
          },
          "n": {
            "const": 25
          },
          "maximum_possible": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "mean": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "median": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "sample_sd": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "min": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "q1": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "q3": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "iqr": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "max": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "zero_n": {
            "type": "integer",
            "minimum": 0,
            "maximum": 25
          },
          "zero_proportion": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "at_maximum_n": {
            "type": "integer",
            "minimum": 0,
            "maximum": 25
          },
          "at_maximum_proportion": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "dimension",
          "scale",
          "n",
          "maximum_possible",
          "mean",
          "median",
          "sample_sd",
          "min",
          "q1",
          "q3",
          "iqr",
          "max",
          "zero_n",
          "zero_proportion",
          "at_maximum_n",
          "at_maximum_proportion"
        ],
        "additionalProperties": false
      },
      "minItems": 8,
      "maxItems": 8
    }
  },
  "required": [
    "schema_version",
    "release",
    "assessment_state",
    "scope_counts",
    "availability",
    "sample_flow",
    "core_structure",
    "filter_categories",
    "headlines",
    "core_summary",
    "journals",
    "reference_pid",
    "weighting_sensitivity",
    "selection_comparisons",
    "interpretation_keys",
    "stage0",
    "gate_pass_exclusions",
    "methodology",
    "dimension_descriptives"
  ],
  "additionalProperties": false,
  "$defs": {
    "indicator": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "state": {
              "enum": [
                "observed"
              ]
            },
            "value": {
              "type": "number",
              "minimum": 0,
              "maximum": 100
            }
          },
          "required": [
            "state",
            "value"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "state": {
              "enum": [
                "structural_na"
              ]
            },
            "value": {
              "type": "null"
            }
          },
          "required": [
            "state",
            "value"
          ],
          "additionalProperties": false
        }
      ]
    },
    "c2": {
      "type": "object",
      "properties": {
        "primary_articles": {
          "type": "integer",
          "minimum": 0
        },
        "confirmed_eligible": {
          "type": "integer",
          "minimum": 0
        },
        "eligibility_not_verifiable": {
          "type": "integer",
          "minimum": 0
        },
        "successfully_queried": {
          "type": "integer",
          "minimum": 0
        },
        "retrieved": {
          "type": "integer",
          "minimum": 0
        },
        "not_retrieved": {
          "type": "integer",
          "minimum": 0
        },
        "technical_unresolved": {
          "type": "integer",
          "minimum": 0
        },
        "retrievability_percent": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0,
              "maximum": 100
            },
            {
              "type": "null"
            }
          ]
        },
        "query_coverage_percent": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0,
              "maximum": 100
            },
            {
              "type": "null"
            }
          ]
        },
        "pid_identity_ineligible": {
          "type": "integer",
          "minimum": 0
        },
        "rate_state": {
          "enum": [
            "defined",
            "no_confirmed_eligible_articles"
          ]
        }
      },
      "required": [
        "primary_articles",
        "confirmed_eligible",
        "eligibility_not_verifiable",
        "successfully_queried",
        "retrieved",
        "not_retrieved",
        "technical_unresolved",
        "retrievability_percent",
        "query_coverage_percent",
        "pid_identity_ineligible",
        "rate_state"
      ],
      "additionalProperties": false,
      "allOf": [
        {
          "if": {
            "properties": {
              "confirmed_eligible": {
                "const": 0
              }
            }
          },
          "then": {
            "properties": {
              "rate_state": {
                "const": "no_confirmed_eligible_articles"
              },
              "retrievability_percent": {
                "type": "null"
              },
              "query_coverage_percent": {
                "type": "null"
              }
            }
          },
          "else": {
            "properties": {
              "rate_state": {
                "const": "defined"
              },
              "retrievability_percent": {
                "type": "number",
                "minimum": 0,
                "maximum": 100
              },
              "query_coverage_percent": {
                "type": "number",
                "minimum": 0,
                "maximum": 100
              }
            }
          }
        }
      ]
    },
    "journal": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^C[0-9]{3}$"
        },
        "filters": {
          "type": "object",
          "properties": {
            "region": {
              "enum": [
                "northern_africa",
                "western_africa",
                "central_africa",
                "eastern_africa",
                "southern_africa"
              ]
            },
            "recorded_language": {
              "enum": [
                "english",
                "arabic",
                "french",
                "afaan_oromo",
                "portuguese"
              ]
            },
            "platform_category": {
              "enum": [
                "commercial_publisher",
                "repository_digital_commons",
                "other_institutional_platform",
                "asjp_national_platform",
                "imist_linked_platform",
                "university_institutional_ojs",
                "university_ojs_ajol",
                "ajol_linked_journal",
                "direct_institutional_web",
                "independent_institutional_site",
                "university_journal_portal",
                "repository_journal",
                "university_ojs_scielo"
              ]
            },
            "selection_doi_status": {
              "enum": [
                "yes",
                "none",
                "mixed",
                "pending"
              ]
            }
          },
          "required": [
            "region",
            "recorded_language",
            "platform_category",
            "selection_doi_status"
          ],
          "additionalProperties": false
        },
        "multilingual": {
          "type": "boolean"
        },
        "indicators": {
          "type": "object",
          "properties": {
            "I1.1": {
              "$ref": "#/$defs/indicator"
            },
            "I1.2": {
              "$ref": "#/$defs/indicator"
            },
            "I1.3": {
              "$ref": "#/$defs/indicator"
            },
            "I2.1": {
              "$ref": "#/$defs/indicator"
            },
            "I2.2": {
              "$ref": "#/$defs/indicator"
            },
            "I2.3": {
              "$ref": "#/$defs/indicator"
            },
            "I3.1": {
              "$ref": "#/$defs/indicator"
            },
            "I3.2": {
              "$ref": "#/$defs/indicator"
            },
            "I3.3": {
              "$ref": "#/$defs/indicator"
            },
            "I4.1": {
              "$ref": "#/$defs/indicator"
            },
            "I4.2": {
              "$ref": "#/$defs/indicator"
            },
            "I4.3": {
              "$ref": "#/$defs/indicator"
            }
          },
          "required": [
            "I1.1",
            "I1.2",
            "I1.3",
            "I2.1",
            "I2.2",
            "I2.3",
            "I3.1",
            "I3.2",
            "I3.3",
            "I4.1",
            "I4.2",
            "I4.3"
          ],
          "additionalProperties": false
        },
        "dimension_contributions": {
          "type": "object",
          "properties": {
            "D1": {
              "type": "number",
              "minimum": 0,
              "maximum": 20
            },
            "D2": {
              "type": "number",
              "minimum": 0,
              "maximum": 25
            },
            "D3": {
              "type": "number",
              "minimum": 0,
              "maximum": 35
            },
            "D4": {
              "type": "number",
              "minimum": 0,
              "maximum": 20
            }
          },
          "required": [
            "D1",
            "D2",
            "D3",
            "D4"
          ],
          "additionalProperties": false
        },
        "m1": {
          "type": "number",
          "minimum": 0,
          "maximum": 100
        },
        "d3_hard_zero": {
          "type": "boolean"
        },
        "contextual_states": {
          "type": "object",
          "properties": {
            "c1_openalex": {
              "enum": [
                "confirmed_positive",
                "verified_negative",
                "unresolved"
              ]
            },
            "c3_doaj": {
              "enum": [
                "confirmed_positive",
                "verified_negative",
                "unresolved"
              ]
            },
            "c3_ajol": {
              "enum": [
                "confirmed_positive",
                "verified_negative",
                "unresolved"
              ]
            },
            "c4": {
              "enum": [
                "confirmed",
                "not_detected",
                "unresolved"
              ]
            }
          },
          "required": [
            "c1_openalex",
            "c3_doaj",
            "c3_ajol",
            "c4"
          ],
          "additionalProperties": false
        },
        "c2": {
          "$ref": "#/$defs/c2"
        },
        "dimension_normalized_scores": {
          "type": "object",
          "properties": {
            "D1": {
              "type": "number",
              "minimum": 0,
              "maximum": 100
            },
            "D2": {
              "type": "number",
              "minimum": 0,
              "maximum": 100
            },
            "D3": {
              "type": "number",
              "minimum": 0,
              "maximum": 100
            },
            "D4": {
              "type": "number",
              "minimum": 0,
              "maximum": 100
            }
          },
          "required": [
            "D1",
            "D2",
            "D3",
            "D4"
          ],
          "additionalProperties": false
        },
        "weighting_comparators": {
          "type": "object",
          "properties": {
            "m1_ewwithin": {
              "type": "number",
              "minimum": 0,
              "maximum": 100
            },
            "m1_eqdim": {
              "type": "number",
              "minimum": 0,
              "maximum": 100
            },
            "delta_ewwithin": {
              "type": "number",
              "minimum": -100,
              "maximum": 100
            },
            "delta_eqdim": {
              "type": "number",
              "minimum": -100,
              "maximum": 100
            }
          },
          "required": [
            "m1_ewwithin",
            "m1_eqdim",
            "delta_ewwithin",
            "delta_eqdim"
          ],
          "additionalProperties": false
        },
        "identity": {
          "type": "object",
          "properties": {
            "journal_name": {
              "type": "string"
            },
            "affiliated_institution": {
              "type": [
                "string",
                "null"
              ]
            },
            "country": {
              "type": "string"
            },
            "issn": {
              "type": [
                "string",
                "null"
              ]
            },
            "eissn": {
              "type": [
                "string",
                "null"
              ]
            },
            "official_journal_url": {
              "type": "string",
              "pattern": "^https?://[^\\s]+$"
            }
          },
          "required": [
            "journal_name",
            "affiliated_institution",
            "country",
            "issn",
            "eissn",
            "official_journal_url"
          ],
          "additionalProperties": false
        },
        "applicability": {
          "type": "object",
          "properties": {
            "c2": {
              "enum": [
                "assessable",
                "not_assessable"
              ]
            },
            "reference_pid": {
              "enum": [
                "applicable",
                "not_applicable"
              ]
            }
          },
          "required": [
            "c2",
            "reference_pid"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "id",
        "filters",
        "multilingual",
        "indicators",
        "dimension_contributions",
        "m1",
        "d3_hard_zero",
        "contextual_states",
        "c2",
        "dimension_normalized_scores",
        "weighting_comparators",
        "identity",
        "applicability"
      ],
      "additionalProperties": false,
      "allOf": [
        {
          "if": {
            "properties": {
              "id": {
                "enum": [
                  "C001",
                  "C021"
                ]
              }
            }
          },
          "then": {
            "properties": {
              "applicability": {
                "properties": {
                  "reference_pid": {
                    "const": "applicable"
                  }
                }
              }
            }
          },
          "else": {
            "properties": {
              "applicability": {
                "properties": {
                  "reference_pid": {
                    "const": "not_applicable"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "c2": {
                "properties": {
                  "confirmed_eligible": {
                    "const": 0
                  }
                }
              }
            }
          },
          "then": {
            "properties": {
              "applicability": {
                "properties": {
                  "c2": {
                    "const": "not_assessable"
                  }
                }
              }
            }
          },
          "else": {
            "properties": {
              "applicability": {
                "properties": {
                  "c2": {
                    "const": "assessable"
                  }
                }
              }
            }
          }
        }
      ]
    },
    "metric": {
      "type": "object",
      "properties": {
        "id": {
          "enum": [
            "c2_eligible",
            "c2_eligibility_not_verifiable",
            "c2_pid_identity_ineligible",
            "c2_retrieved",
            "c2_not_retrieved",
            "c2_technical_unresolved",
            "c2_query_coverage",
            "c1_openalex_positive",
            "c3_doaj_positive",
            "c3_ajol_positive",
            "c4_confirmed",
            "c4_not_detected",
            "c4_unresolved",
            "reference_concordance",
            "reference_coverage",
            "d3_zero"
          ]
        },
        "numerator": {
          "type": "integer",
          "minimum": 0
        },
        "denominator": {
          "type": "integer",
          "minimum": 1
        },
        "denominator_scope": {
          "enum": [
            "pilot_journals",
            "operational_pool",
            "primary_articles",
            "c2_eligible_articles",
            "reference_assertions",
            "adjudicated_reference_assertions"
          ]
        },
        "percent": {
          "type": "number",
          "minimum": 0,
          "maximum": 100
        }
      },
      "required": [
        "id",
        "numerator",
        "denominator",
        "denominator_scope",
        "percent"
      ],
      "additionalProperties": false
    },
    "reference_result": {
      "type": "object",
      "properties": {
        "scope": {
          "enum": [
            "C001",
            "C021",
            "combined"
          ]
        },
        "assertions": {
          "type": "integer",
          "minimum": 0
        },
        "concordant": {
          "type": "integer",
          "minimum": 0
        },
        "discordant": {
          "type": "integer",
          "minimum": 0
        },
        "invalid_unregistered": {
          "type": "integer",
          "minimum": 0
        },
        "unresolved": {
          "type": "integer",
          "minimum": 0
        },
        "adjudicated": {
          "type": "integer",
          "minimum": 0
        },
        "concordance_percent": {
          "type": "number",
          "minimum": 0,
          "maximum": 100
        },
        "coverage_percent": {
          "type": "number",
          "minimum": 0,
          "maximum": 100
        }
      },
      "required": [
        "scope",
        "assertions",
        "concordant",
        "discordant",
        "invalid_unregistered",
        "unresolved",
        "adjudicated",
        "concordance_percent",
        "coverage_percent"
      ],
      "additionalProperties": false
    }
  },
  "description": "Release-specific public data contract. No evidence records or scoring engine. Cross-record constraints are specified in the data dictionary."
}
