{
 "openapi": "3.1.0",
 "info": {
  "title": "ComputeFinder public data API",
  "version": "1.4.0",
  "description": "Read-only access to ComputeFinder datasets and individual provider and country records. No prices or live availability are included. Missing values are null or absent, never zero. The CC BY 4.0 grant covers only ComputeFinder-owned contributions; third-party material retains its source terms.",
  "license": {
   "name": "Scoped CC BY 4.0",
   "url": "https://computefinder.net/sources"
  }
 },
 "servers": [
  {
   "url": "https://computefinder.net"
  }
 ],
 "tags": [
  {
   "name": "Datasets",
   "description": "Compiled datasets with licence, attribution and source-term notices."
  },
  {
   "name": "Entities",
   "description": "One-record provider and country responses."
  },
  {
   "name": "Third-party dataset",
   "description": "Separately licensed data retained with its publisher credit."
  }
 ],
 "paths": {
  "/data/research.json": {
   "get": {
    "tags": [
     "Datasets"
    ],
    "operationId": "getResearch",
    "summary": "Read research with its distinct evidence contract",
    "description": "Same canonical projection as HTML, CSV and MCP. Record source dates are unchanged. generated_on is the latest valid recorded check in ISO form, or null when no check exists. Retain all source-specific rights notices; this endpoint is not a renewed source check.",
    "responses": {
     "200": {
      "description": "Scoped editorial evidence envelope.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "description": "The public data response can be read from any origin.",
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "allOf": [
          {
           "$ref": "#/components/schemas/DataEnvelope"
          },
          {
           "type": "object",
           "properties": {
            "dataset": {
             "const": "research"
            },
            "records": {
             "type": "array",
             "items": {
              "$ref": "#/components/schemas/ResearchEntry"
             }
            }
           }
          }
         ]
        }
       }
      }
     }
    }
   }
  },
  "/data/claim-reviews.json": {
   "get": {
    "tags": [
     "Datasets"
    ],
    "operationId": "getClaimReviews",
    "summary": "Read claim-reviews with its distinct evidence contract",
    "description": "Same canonical projection as HTML, CSV and MCP. Record source dates are unchanged. generated_on is the latest valid recorded check in ISO form, or null when no check exists. Retain all source-specific rights notices; this endpoint is not a renewed source check.",
    "responses": {
     "200": {
      "description": "Scoped editorial evidence envelope.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "description": "The public data response can be read from any origin.",
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "allOf": [
          {
           "$ref": "#/components/schemas/DataEnvelope"
          },
          {
           "type": "object",
           "properties": {
            "dataset": {
             "const": "claim-reviews"
            },
            "records": {
             "type": "array",
             "items": {
              "$ref": "#/components/schemas/ClaimReview"
             }
            }
           }
          }
         ]
        }
       }
      }
     }
    }
   }
  },
  "/data/evidence-samples.json": {
   "get": {
    "tags": [
     "Datasets"
    ],
    "operationId": "getEvidenceSamples",
    "summary": "Read evidence-samples with its distinct evidence contract",
    "description": "Same public unscored sample rows as the dashboard, CSV and MCP. generated_on is the latest recorded sample accounting-review day, distinct from primary-source checks, publication, events, retrieval and original observations. Null clocks and ratings remain unknown; a build does not renew them.",
    "responses": {
     "200": {
      "description": "Scoped editorial evidence envelope.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "description": "The public data response can be read from any origin.",
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "allOf": [
          {
           "$ref": "#/components/schemas/DataEnvelope"
          },
          {
           "type": "object",
           "properties": {
            "dataset": {
             "const": "evidence-samples"
            },
            "records": {
             "type": "array",
             "items": {
              "$ref": "#/components/schemas/EvidenceSample"
             }
            }
           }
          }
         ]
        }
       }
      }
     }
    }
   }
  },
  "/data/lifecycle-evidence.json": {
   "get": {
    "tags": [
     "Datasets"
    ],
    "operationId": "getLifecycleEvidence",
    "summary": "Read scoped guidance, a grid-asset obligation and system-retirement evidence",
    "description": "Same canonical records as HTML, CSV and stateless MCP. Guidance, an issued condition and an operator-reported named-system retirement are distinct evidence kinds. System retirement does not establish disposal, recovery or facility/site closure/restoration; the older records are not promoted to completed outcomes. Preserve exact attribution, rights bindings, source locators and null acquisition metadata. generated_on is the retained source check day, never the build day.",
    "responses": {
     "200": {
      "description": "Scoped reviewed lifecycle evidence.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "description": "The public data response can be read from any origin.",
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "allOf": [
          {
           "$ref": "#/components/schemas/DataEnvelope"
          },
          {
           "type": "object",
           "properties": {
            "dataset": {
             "const": "lifecycle-evidence"
            },
            "records": {
             "type": "array",
             "items": {
              "$ref": "#/components/schemas/LifecycleEvidence"
             }
            }
           }
          }
         ]
        }
       }
      }
     }
    }
   }
  },
  "/data/grid-demand-evidence.json": {
   "get": {
    "tags": [
     "Datasets"
    ],
    "operationId": "getGridDemandEvidence",
    "summary": "Read scoped large-load demand evidence",
    "description": "Demand processes and category overlap only, never a demand-capacity total. Same two records, original clocks, null quantities and source conditions as HTML, CSV and MCP.",
    "responses": {
     "200": {
      "description": "Scoped demand-evidence envelope.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "description": "The public data response can be read from any origin.",
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "allOf": [
          {
           "$ref": "#/components/schemas/DataEnvelope"
          },
          {
           "type": "object",
           "properties": {
            "dataset": {
             "const": "grid-demand-evidence"
            },
            "records": {
             "type": "array",
             "items": {
              "$ref": "#/components/schemas/GridDemandEvidence"
             }
            }
           }
          }
         ]
        }
       }
      }
     }
    }
   }
  },
  "/data/grid-rules.json": {
   "get": {
    "tags": [
     "Datasets"
    ],
    "operationId": "getGridRules",
    "summary": "Read retained grid context and the historical Dutch amendment",
    "description": "Ten unchanged retained summaries and one separately clocked historical Dutch TDTR amendment. No current consolidated-law, project eligibility or connection-capacity claim.",
    "responses": {
     "200": {
      "description": "Grid context and historical rule evidence envelope.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "description": "The public data response can be read from any origin.",
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "allOf": [
          {
           "$ref": "#/components/schemas/DataEnvelope"
          },
          {
           "properties": {
            "records": {
             "type": "array",
             "items": {
              "oneOf": [
               {
                "$ref": "#/components/schemas/LegacyGridContext"
               },
               {
                "$ref": "#/components/schemas/HistoricalGridRule"
               }
              ]
             }
            }
           }
          }
         ]
        }
       }
      }
     }
    }
   }
  },
  "/data/services.json": {
   "get": {
    "tags": [
     "Datasets"
    ],
    "operationId": "getSelectedCommercialServices",
    "summary": "Read three selected provider-attributed service scopes",
    "description": "Same exact records as the commercial cards on /services, CSV and stateless MCP. This cohort does not export or reverify the separate programme routes and is not a representative service census, ranking, endorsement or availability claim. Retain source-specific rights and separate source clocks.",
    "responses": {
     "200": {
      "description": "Selected commercial-service evidence envelope.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "description": "The public data response can be read from any origin.",
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "allOf": [
          {
           "$ref": "#/components/schemas/DataEnvelope"
          },
          {
           "type": "object",
           "properties": {
            "dataset": {
             "const": "services"
            },
            "records": {
             "type": "array",
             "items": {
              "$ref": "#/components/schemas/CommercialService"
             }
            }
           }
          }
         ]
        }
       }
      }
     }
    }
   }
  },
  "/data/standards-evidence.json": {
   "get": {
    "tags": [
     "Datasets"
    ],
    "operationId": "getScopedStandardsEvidence",
    "summary": "Read one national standards catalogue evidence record",
    "description": "The same canonical DIN German Part1 object as the scoped /standards entry, CSV and stateless MCP. Not normative text, all standards/national adoptions, a universal current edition, site conformity or current capacity. Month precision stays a label; no missing date or review is supplied by a build.",
    "responses": {
     "200": {
      "description": "Scoped national-catalogue evidence envelope.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "description": "The public data response can be read from any origin.",
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "allOf": [
          {
           "$ref": "#/components/schemas/DataEnvelope"
          },
          {
           "type": "object",
           "properties": {
            "dataset": {
             "const": "standards-evidence"
            },
            "records": {
             "type": "array",
             "items": {
              "$ref": "#/components/schemas/ScopedStandardEvidence"
             }
            }
           }
          }
         ]
        }
       }
      }
     }
    }
   }
  },
  "/data/site-record-links.json": {
   "get": {
    "tags": [
     "Datasets"
    ],
    "operationId": "getSiteRecordLinks",
    "summary": "Read the separately reviewed named-campus context link",
    "description": "One exact contextual relationship, not a physical-facility identity or deduplication. Original records and checks are unchanged. Null source clocks stay unknown; actual context check and independent review remain distinct. Same canonical record as CSV, HTML and MCP.",
    "responses": {
     "200": {
      "description": "Named-campus context envelope.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "description": "The public data response can be read from any origin.",
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "allOf": [
          {
           "$ref": "#/components/schemas/DataEnvelope"
          },
          {
           "type": "object",
           "properties": {
            "dataset": {
             "const": "site-record-links"
            },
            "records": {
             "type": "array",
             "items": {
              "$ref": "#/components/schemas/SiteRecordLink"
             }
            }
           }
          }
         ]
        }
       }
      }
     }
    }
   }
  },
  "/data/project-evidence.json": {
   "get": {
    "tags": [
     "Datasets"
    ],
    "operationId": "getConnectedProjectEvidence",
    "summary": "Read the initial connected project evidence cohort",
    "description": "Separate linked-evidence schema: entities, observations, relationships, gaps and original interpretation. Retains original source/check dates and source-use conditions. Not a fresh status check, complete change history or facility census. No CSV companion.",
    "responses": {
     "200": {
      "description": "Selected linked evidence with per-observation provenance and source conditions.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "description": "The public data response can be read from any origin.",
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "schema_version",
          "scope",
          "licence",
          "entities",
          "observations",
          "relationships",
          "projects",
          "briefing"
         ],
         "properties": {
          "schema_version": {
           "type": "string"
          },
          "scope": {
           "type": "string"
          },
          "licence": {
           "type": "string"
          },
          "licence_url": {
           "type": "string",
           "format": "uri"
          },
          "entities": {
           "type": "array",
           "items": {
            "type": "object"
           }
          },
          "observations": {
           "type": "array",
           "items": {
            "type": "object"
           }
          },
          "relationships": {
           "type": "array",
           "items": {
            "type": "object"
           }
          },
          "projects": {
           "type": "array",
           "items": {
            "type": "object"
           }
          },
          "briefing": {
           "type": "object"
          },
          "unknown_states": {
           "type": "object"
          }
         }
        }
       }
      }
     }
    }
   }
  },
  "/data/{dataset}.json": {
   "get": {
    "tags": [
     "Datasets"
    ],
    "operationId": "getDataset",
    "summary": "Get a compiled dataset",
    "description": "Returns one current dataset envelope. Provider pricing_url is a recorded HTTPS official-page link or null, not a quoted price, current link verification or availability claim. Capacity values must be read with their metric, stage, basis, date and source and must not be added across unlike records.",
    "parameters": [
     {
      "$ref": "#/components/parameters/Dataset"
     }
    ],
    "responses": {
     "200": {
      "description": "Dataset envelope.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "description": "The public data response can be read from any origin.",
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/DataEnvelope"
        }
       }
      }
     },
     "404": {
      "description": "Dataset not found."
     }
    }
   }
  },
  "/data/{dataset}.csv": {
   "get": {
    "tags": [
     "Datasets"
    ],
    "operationId": "downloadDatasetCsv",
    "summary": "Download a compiled dataset as CSV",
    "description": "Returns the same current records as the JSON dataset. Capacity values retain nested metric, stage, basis, date and source fields as JSON text and must not be added across unlike records.",
    "parameters": [
     {
      "$ref": "#/components/parameters/Dataset"
     }
    ],
    "responses": {
     "200": {
      "description": "CSV with one record per row. Evidence-envelope fields repeat in cf_ columns; nested record values are JSON text and missing values are empty, never zero.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "description": "The public data response can be read from any origin.",
        "schema": {
         "type": "string",
         "const": "*"
        }
       },
       "Content-Disposition": {
        "description": "Download filename containing the dataset identifier and data version.",
        "schema": {
         "type": "string"
        }
       }
      },
      "content": {
       "text/csv": {
        "schema": {
         "type": "string"
        }
       }
      }
     },
     "404": {
      "description": "Dataset not found."
     }
    }
   }
  },
  "/data/providers/{slug}.json": {
   "get": {
    "tags": [
     "Entities"
    ],
    "operationId": "getProvider",
    "summary": "Get one provider record",
    "description": "pricing_url is the already recorded official pricing-page link or null. It supplies no price values, current access guarantee or newly verified source date.",
    "parameters": [
     {
      "$ref": "#/components/parameters/Slug"
     }
    ],
    "responses": {
     "200": {
      "description": "A dataset envelope containing one provider.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "description": "The public data response can be read from any origin.",
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/DataEnvelope"
        }
       }
      }
     },
     "404": {
      "description": "Provider not found."
     }
    }
   }
  },
  "/data/countries/{slug}.json": {
   "get": {
    "tags": [
     "Entities"
    ],
    "operationId": "getCountry",
    "summary": "Get one country or territory record",
    "parameters": [
     {
      "$ref": "#/components/parameters/Slug"
     }
    ],
    "responses": {
     "200": {
      "description": "A dataset envelope containing one place.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "description": "The public data response can be read from any origin.",
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/DataEnvelope"
        }
       }
      }
     },
     "404": {
      "description": "Country or territory not found."
     }
    }
   }
  },
  "/data/frontier-data-centres.json": {
   "get": {
    "tags": [
     "Third-party dataset"
    ],
    "operationId": "getFrontierDataCentres",
    "summary": "Get Epoch AI frontier data centre records",
    "description": "Reduced fields from Epoch AI, Frontier Data Centers, under Epoch AI's CC BY 4.0 notice. Retain Epoch AI attribution and the supplied source link.",
    "responses": {
     "200": {
      "description": "Epoch AI dataset with its separate metadata and records.",
      "headers": {
       "Access-Control-Allow-Origin": {
        "description": "The public data response can be read from any origin.",
        "schema": {
         "type": "string",
         "const": "*"
        }
       }
      },
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "additionalProperties": true
        }
       }
      }
     }
    }
   }
  }
 },
 "components": {
  "parameters": {
   "Dataset": {
    "name": "dataset",
    "in": "path",
    "required": true,
    "description": "Published ComputeFinder dataset identifier.",
    "schema": {
     "type": "string",
     "enum": [
      "providers",
      "countries",
      "policy",
      "supply-chain",
      "programmes",
      "news",
      "export-controls",
      "grid-rules",
      "grid-demand-evidence",
      "data-centre-records",
      "research",
      "claim-reviews",
      "site-record-links",
      "evidence-samples",
      "lifecycle-evidence",
      "services",
      "standards-evidence"
     ]
    }
   },
   "Slug": {
    "name": "slug",
    "in": "path",
    "required": true,
    "description": "Readable entity slug from the directory or a dataset record.",
    "schema": {
     "type": "string",
     "pattern": "^[a-z0-9-]+$"
    }
   }
  },
  "schemas": {
   "LifecycleEvidence": {
    "type": "object",
    "additionalProperties": false,
    "required": [
     "slug",
     "lifecycle_stage",
     "title",
     "record_kind",
     "publisher",
     "source_title",
     "original_url",
     "document_reference",
     "creators",
     "source_publication",
     "source_publication_label",
     "source_publication_precision",
     "source_updated_on",
     "event_date",
     "event_date_meaning",
     "retrieved_at",
     "reviewed_at",
     "source_version",
     "raw_body_hash",
     "raw_body_bytes",
     "checked_on",
     "facts",
     "limits",
     "reuse_terms",
     "licence_url",
     "licence_legalcode_url",
     "licence_evidence_locator",
     "attribution",
     "source_notice",
     "independent_source_review",
     "admission_scope",
     "rights",
     "page_url"
    ],
    "description": "Three bounded reviewed source scopes: historical guidance, an issued grid-asset obligation and an operator-reported named-system retirement. The retirement report does not establish disposal, recovery, site closure or restoration; the older guidance and condition are not promoted to completed outcomes. Retain attribution, exact rights scope, locators and all separate clocks.",
    "properties": {
     "slug": {
      "type": "string",
      "enum": [
       "jrc-server-component-reuse-guidance-2019",
       "malset-refsdal-grid-asset-removal-condition-2026",
       "aspire1-operator-reported-system-retirement-2023"
      ]
     },
     "lifecycle_stage": {
      "type": "integer",
      "enum": [
       10,
       11
      ]
     },
     "title": {
      "type": "string",
      "pattern": "\\S"
     },
     "record_kind": {
      "type": "string",
      "enum": [
       "historical_primary_guidance_report",
       "issued_grid_asset_licence_condition",
       "operator_reported_system_retirement"
      ]
     },
     "publisher": {
      "type": "string",
      "pattern": "\\S"
     },
     "source_title": {
      "type": "string",
      "pattern": "\\S"
     },
     "original_url": {
      "type": "string",
      "enum": [
       "https://publications.jrc.ec.europa.eu/repository/bitstream/JRC118550/preliminary_report_eu_gpp_data_centres_-_v1.0_october2017_pubsy_1.pdf",
       "https://webfileservice.nve.no/API/PublishedFiles/Download/3a993f04-3837-4aa6-961f-742910e0b9b2/202519874/3452861",
       "https://www.nscc.sg/aspire-1-decommissioned/"
      ]
     },
     "document_reference": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "creators": {
      "type": [
       "array",
       "null"
      ],
      "minItems": 1,
      "uniqueItems": true,
      "items": {
       "type": "string",
       "pattern": "\\S"
      }
     },
     "source_publication": {
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$(?![\\s\\S])"
     },
     "source_publication_label": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "source_publication_precision": {
      "enum": [
       "year",
       null
      ]
     },
     "source_updated_on": {
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$(?![\\s\\S])"
     },
     "event_date": {
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$(?![\\s\\S])"
     },
     "event_date_meaning": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "retrieved_at": {
      "type": "null"
     },
     "reviewed_at": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?Z$(?![\\s\\S])",
      "enum": [
       "2026-10-31T23:00:35.770Z",
       "2026-11-01T02:47:43.456Z"
      ]
     },
     "source_version": {
      "type": "null"
     },
     "raw_body_hash": {
      "type": "null"
     },
     "raw_body_bytes": {
      "type": "null"
     },
     "checked_on": {
      "type": "string",
      "format": "date",
      "enum": [
       "2026-10-31",
       "2026-11-01"
      ]
     },
     "facts": {
      "type": "array",
      "minItems": 1,
      "maxItems": 2,
      "items": {
       "type": "object",
       "required": [
        "text",
        "source_url",
        "locator"
       ],
       "additionalProperties": false,
       "properties": {
        "text": {
         "type": "string",
         "pattern": "\\S"
        },
        "source_url": {
         "type": "string",
         "enum": [
          "https://publications.jrc.ec.europa.eu/repository/bitstream/JRC118550/preliminary_report_eu_gpp_data_centres_-_v1.0_october2017_pubsy_1.pdf",
          "https://webfileservice.nve.no/API/PublishedFiles/Download/3a993f04-3837-4aa6-961f-742910e0b9b2/202519874/3452861",
          "https://www.nscc.sg/aspire-1-decommissioned/"
         ]
        },
        "locator": {
         "type": "string",
         "pattern": "\\S"
        }
       }
      }
     },
     "limits": {
      "type": "string",
      "pattern": "\\S"
     },
     "reuse_terms": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "licence_url": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "licence_legalcode_url": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "licence_evidence_locator": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "attribution": {
      "type": "string",
      "pattern": "\\S"
     },
     "source_notice": {
      "type": "string",
      "pattern": "\\S"
     },
     "independent_source_review": {
      "type": "object",
      "required": [
       "reviewer",
       "verdict",
       "reviewed_at",
       "scope"
      ],
      "additionalProperties": false,
      "properties": {
       "reviewer": {
        "enum": [
         "Codex/final_code_review/schema_contract_probe",
         "Codex/wp_interface_acceptance"
        ]
       },
       "verdict": {
        "const": "KEEP"
       },
       "reviewed_at": {
        "enum": [
         "2026-10-31T23:00:35.770Z",
         "2026-11-01T02:47:43.456Z"
        ]
       },
       "scope": {
        "type": "string",
        "pattern": "\\S"
       }
      }
     },
     "admission_scope": {
      "type": "string",
      "pattern": "\\S"
     },
     "rights": {
      "type": "object",
      "required": [
       "basis",
       "licence_id",
       "licence_url",
       "scope"
      ],
      "additionalProperties": false,
      "properties": {
       "basis": {
        "enum": [
         "licensed_eu_owned_sections",
         "minimal_original_facts_link"
        ]
       },
       "licence_id": {
        "enum": [
         "CC-BY-4.0",
         null
        ]
       },
       "licence_url": {
        "enum": [
         "https://creativecommons.org/licenses/by/4.0/",
         null
        ]
       },
       "scope": {
        "type": "string",
        "pattern": "\\S"
       }
      }
     },
     "page_url": {
      "type": "string",
      "format": "uri"
     }
    },
    "allOf": [
     {
      "if": {
       "properties": {
        "slug": {
         "const": "jrc-server-component-reuse-guidance-2019"
        }
       }
      },
      "then": {
       "properties": {
        "slug": {
         "const": "jrc-server-component-reuse-guidance-2019"
        },
        "lifecycle_stage": {
         "const": 10
        },
        "title": {
         "const": "Server component reuse and its practical constraints"
        },
        "record_kind": {
         "const": "historical_primary_guidance_report"
        },
        "publisher": {
         "const": "European Commission Joint Research Centre"
        },
        "source_title": {
         "const": "Development of European Green Public Procurement Criteria for Data Centres: Preliminary Report"
        },
        "original_url": {
         "const": "https://publications.jrc.ec.europa.eu/repository/bitstream/JRC118550/preliminary_report_eu_gpp_data_centres_-_v1.0_october2017_pubsy_1.pdf"
        },
        "document_reference": {
         "const": "JRC118550; EUR 29945 EN; doi:10.2760/327087"
        },
        "creators": {
         "const": [
          "Felice Alfieri",
          "Nicholas Dodd",
          "Miguel Gama-Caldas",
          "Oliver Wolf",
          "Larisa Maya-Drysdale",
          "Baijia Huang",
          "Jan Viegand",
          "Sophia Flucker",
          "Robert Tozer",
          "Beth Whitehead",
          "Fiona Brocklehurst"
         ]
        },
        "source_publication": {
         "const": null
        },
        "source_publication_label": {
         "const": "2019"
        },
        "source_publication_precision": {
         "const": "year"
        },
        "source_updated_on": {
         "const": null
        },
        "event_date": {
         "const": null
        },
        "retrieved_at": {
         "const": null
        },
        "reviewed_at": {
         "const": "2026-10-31T23:00:35.770Z"
        },
        "source_version": {
         "const": null
        },
        "raw_body_hash": {
         "const": null
        },
        "raw_body_bytes": {
         "const": null
        },
        "checked_on": {
         "const": "2026-10-31"
        },
        "facts": {
         "const": [
          {
           "text": "The JRC report describes harvesting and testing reusable server components before the remaining parts enter waste treatment.",
           "source_url": "https://publications.jrc.ec.europa.eu/repository/bitstream/JRC118550/preliminary_report_eu_gpp_data_centres_-_v1.0_october2017_pubsy_1.pdf",
           "locator": "Printed page 94, section 9.4; PDF page 95"
          },
          {
           "text": "Its reuse discussion identifies firmware access and storage data deletion as constraints.",
           "source_url": "https://publications.jrc.ec.europa.eu/repository/bitstream/JRC118550/preliminary_report_eu_gpp_data_centres_-_v1.0_october2017_pubsy_1.pdf",
           "locator": "Printed page 99, section 9.8; PDF page 100"
          }
         ]
        },
        "limits": {
         "const": "Historical technical guidance and synthesis, not an audited provider process, GPU inventory, brokerage eligibility, certification or measured circularity outcome. No component percentages, refresh periods, benefit rates, prices or present availability are admitted."
        },
        "reuse_terms": {
         "const": "CC BY 4.0 for EU-owned report content, except where otherwise noted"
        },
        "licence_url": {
         "const": "https://creativecommons.org/licenses/by/4.0/"
        },
        "licence_legalcode_url": {
         "const": "https://creativecommons.org/licenses/by/4.0/legalcode.en"
        },
        "licence_evidence_locator": {
         "const": "PDF page 2, legal notice; express EU 2019 CC BY4.0 grant with third-party material exclusion"
        },
        "attribution": {
         "const": "Alfieri et al. (2019), Development of European Green Public Procurement Criteria for Data Centres: Preliminary Report, JRC118550, © European Union 2019, CC BY 4.0. Original concise account by ComputeFinder; no endorsement. Source supplied without warranty."
        },
        "source_notice": {
         "const": "Minimal original attributed facts and an ordinary link. The report's express licence is recorded for this document only. No third-party charts, photographs, datasets, vendor examples or protected source passages are reproduced."
        },
        "independent_source_review": {
         "const": {
          "reviewer": "Codex/final_code_review/schema_contract_probe",
          "verdict": "KEEP",
          "reviewed_at": "2026-10-31T23:00:35.770Z",
          "scope": "Two original attributed summary facts and ordinary source link; report-specific EU-owned CC BY 4.0 material only."
         }
        },
        "admission_scope": {
         "const": "A concrete inspectable guidance starting point for stage10, not completion of certified refurbishment or secondary-GPU coverage."
        },
        "event_date_meaning": {
         "const": null
        },
        "rights": {
         "const": {
          "basis": "licensed_eu_owned_sections",
          "licence_id": "CC-BY-4.0",
          "licence_url": "https://creativecommons.org/licenses/by/4.0/",
          "scope": "EU-owned report content in sections 9.4 and 9.8 only; third-party material excluded."
         }
        }
       }
      }
     },
     {
      "if": {
       "properties": {
        "slug": {
         "const": "malset-refsdal-grid-asset-removal-condition-2026"
        }
       }
      },
      "then": {
       "properties": {
        "slug": {
         "const": "malset-refsdal-grid-asset-removal-condition-2026"
        },
        "lifecycle_stage": {
         "const": 11
        },
        "title": {
         "const": "A grid licence requires a named line span to be removed"
        },
        "record_kind": {
         "const": "issued_grid_asset_licence_condition"
        },
        "publisher": {
         "const": "Norwegian Water Resources and Energy Directorate (NVE)"
        },
        "source_title": {
         "const": "Anleggskonsesjon: Statkraft Energi AS, Målset kraftverk and related electrical installations"
        },
        "original_url": {
         "const": "https://webfileservice.nve.no/API/PublishedFiles/Download/3a993f04-3837-4aa6-961f-742910e0b9b2/202519874/3452861"
        },
        "document_reference": {
         "const": "NVE 202519874-32"
        },
        "source_publication": {
         "const": null
        },
        "source_publication_label": {
         "const": null
        },
        "source_publication_precision": {
         "const": null
        },
        "source_updated_on": {
         "const": null
        },
        "event_date": {
         "const": "2026-06-05"
        },
        "event_date_meaning": {
         "const": "Date printed on the issued licence, not a removal, commissioning or publication check date."
        },
        "retrieved_at": {
         "const": null
        },
        "reviewed_at": {
         "const": "2026-10-31T23:00:35.770Z"
        },
        "source_version": {
         "const": null
        },
        "raw_body_hash": {
         "const": null
        },
        "raw_body_bytes": {
         "const": null
        },
        "checked_on": {
         "const": "2026-10-31"
        },
        "facts": {
         "const": [
          {
           "text": "NVE's licence dated 5 June 2026 requires Statkraft Energi AS to remove the specified approximately 65-metre span of the 66 kV Målset-Refsdal line within two years of the licensed installations entering service.",
           "source_url": "https://webfileservice.nve.no/API/PublishedFiles/Download/3a993f04-3837-4aa6-961f-742910e0b9b2/202519874/3452861",
           "locator": "PDF page 4, condition 8; identity/date on PDF page 1"
          },
          {
           "text": "Condition 9 separately requires cleanup and reinstatement of the works areas within two years of the installation entering service.",
           "source_url": "https://webfileservice.nve.no/API/PublishedFiles/Download/3a993f04-3837-4aa6-961f-742910e0b9b2/202519874/3452861",
           "locator": "PDF page 4, condition 9"
          }
         ]
        },
        "limits": {
         "const": "An issued, internally approved licence obligation for a named grid asset. The document says it is sent without signature. No completed removal, commissioning date, current compliance, whole data-centre closure, site-wide restoration, bond, transformer-removal duty, stranded-asset cost allocation or liability transfer is established. Later amendments or appeals were not checked. No data-centre connection is asserted."
        },
        "reuse_terms": {
         "const": null
        },
        "licence_url": {
         "const": null
        },
        "licence_legalcode_url": {
         "const": null
        },
        "licence_evidence_locator": {
         "const": null
        },
        "attribution": {
         "const": "NVE, licence NVE 202519874-32, dated 5 June 2026, conditions 8 and 9. ComputeFinder's own concise English factual account; ordinary link to the Norwegian original."
        },
        "source_notice": {
         "const": "No open licence for this attachment has been verified. Only minimal independently worded attributed facts and an ordinary link are proposed. NVE API, map and digital-guidance licences are not transferred to this document. No document reproduction, maps, signatures, personal contacts or applicant material are imported."
        },
        "independent_source_review": {
         "const": {
          "reviewer": "Codex/final_code_review/schema_contract_probe",
          "verdict": "KEEP",
          "reviewed_at": "2026-10-31T23:00:35.770Z",
          "scope": "Only the two minimal independently worded attributed licence-condition facts and ordinary unframed original link; attachment licence remains unknown."
         }
        },
        "admission_scope": {
         "const": "A concrete grid-asset retirement and cleanup condition for stage11. Municipal data-centre decommissioning and financial-security cases remain open."
        },
        "creators": {
         "const": null
        },
        "rights": {
         "const": {
          "basis": "minimal_original_facts_link",
          "licence_id": null,
          "licence_url": null,
          "scope": "Only two minimal independently worded attributed licence-condition facts and an ordinary unframed original link; attachment rights remain unknown."
         }
        }
       }
      }
     },
     {
      "if": {
       "properties": {
        "slug": {
         "const": "aspire1-operator-reported-system-retirement-2023"
        }
       }
      },
      "then": {
       "properties": {
        "slug": {
         "const": "aspire1-operator-reported-system-retirement-2023"
        },
        "lifecycle_stage": {
         "const": 11
        },
        "title": {
         "const": "Operator-reported system retirement: ASPIRE 1"
        },
        "record_kind": {
         "const": "operator_reported_system_retirement"
        },
        "publisher": {
         "const": "National Supercomputing Centre Singapore"
        },
        "source_title": {
         "const": "ASPIRE 1 - Decommissioned"
        },
        "original_url": {
         "const": "https://www.nscc.sg/aspire-1-decommissioned/"
        },
        "document_reference": {
         "const": null
        },
        "creators": {
         "const": null
        },
        "source_publication": {
         "const": null
        },
        "source_publication_label": {
         "const": null
        },
        "source_publication_precision": {
         "const": null
        },
        "source_updated_on": {
         "const": null
        },
        "event_date": {
         "const": "2023-08-31"
        },
        "event_date_meaning": {
         "const": "Operator-reported decommissioning of the named ASPIRE1 system, not building closure, equipment removal/disposal or a compliance finding."
        },
        "retrieved_at": {
         "const": null
        },
        "reviewed_at": {
         "const": "2026-11-01T02:47:43.456Z"
        },
        "source_version": {
         "const": null
        },
        "raw_body_hash": {
         "const": null
        },
        "raw_body_bytes": {
         "const": null
        },
        "checked_on": {
         "const": "2026-11-01"
        },
        "facts": {
         "const": [
          {
           "text": "NSCC's retrospective account labels ASPIRE 1 decommissioned and gives 31 August 2023 as the system's retirement date.",
           "source_url": "https://www.nscc.sg/aspire-1-decommissioned/",
           "locator": "ASPIRE 1 retrospective system paragraph; operator-reported decommissioning date"
          }
         ]
        },
        "limits": {
         "const": "Operator-reported retirement of the named ASPIRE 1 system only, not an independent event audit. No hardware refurbishment, resale, disposal, material recovery or recycling, building closure, site restoration/remediation, permit/bond/financial-security compliance, liability discharge, successor-system status, current available compute or present campus stage is established."
        },
        "reuse_terms": {
         "const": null
        },
        "licence_url": {
         "const": null
        },
        "licence_legalcode_url": {
         "const": null
        },
        "licence_evidence_locator": {
         "const": null
        },
        "attribution": {
         "const": "National Supercomputing Centre Singapore, ASPIRE 1 - Decommissioned. ComputeFinder original concise attributed system-retirement account; ordinary original link. NSCC source copyright retained; no endorsement."
        },
        "source_notice": {
         "const": "NSCC operator-reported ASPIRE 1 system retirement only. Minimal independently worded attributed fact and ordinary source link. Source copyright is retained; no open source licence, endorsement or recurring-monitoring permission is asserted. Disposal/recovery, building closure and site-restoration outcomes are not established."
        },
        "independent_source_review": {
         "const": {
          "reviewer": "Codex/wp_interface_acceptance",
          "verdict": "KEEP",
          "reviewed_at": "2026-11-01T02:47:43.456Z",
          "scope": "One minimal independently worded operator-attributed ASPIRE 1 system-retirement/date fact and ordinary original link only; no recovery/disposal, facility closure/restoration, technical-table or open-source-licence claim."
         }
        },
        "admission_scope": {
         "const": "A narrowly labelled operator-reported system-retirement example for the retirement component of Stage 11. Recovery, disposal, building/site closure and restoration remain unestablished."
        },
        "rights": {
         "const": {
          "basis": "minimal_original_facts_link",
          "licence_id": null,
          "licence_url": null,
          "scope": "Only one minimal independently worded operator-attributed system-retirement/date fact and ordinary unframed original link; NSCC content rights remain with the source and no open licence is verified."
         }
        }
       }
      }
     }
    ],
    "oneOf": [
     {
      "properties": {
       "slug": {
        "const": "jrc-server-component-reuse-guidance-2019"
       },
       "lifecycle_stage": {
        "const": 10
       },
       "title": {
        "const": "Server component reuse and its practical constraints"
       },
       "record_kind": {
        "const": "historical_primary_guidance_report"
       },
       "publisher": {
        "const": "European Commission Joint Research Centre"
       },
       "source_title": {
        "const": "Development of European Green Public Procurement Criteria for Data Centres: Preliminary Report"
       },
       "original_url": {
        "const": "https://publications.jrc.ec.europa.eu/repository/bitstream/JRC118550/preliminary_report_eu_gpp_data_centres_-_v1.0_october2017_pubsy_1.pdf"
       },
       "document_reference": {
        "const": "JRC118550; EUR 29945 EN; doi:10.2760/327087"
       },
       "creators": {
        "type": "array"
       },
       "source_publication": {
        "type": "null"
       },
       "source_publication_label": {
        "const": "2019"
       },
       "source_publication_precision": {
        "const": "year"
       },
       "source_updated_on": {
        "const": null
       },
       "event_date": {
        "type": "null"
       },
       "retrieved_at": {
        "const": null
       },
       "reviewed_at": {
        "const": "2026-10-31T23:00:35.770Z"
       },
       "source_version": {
        "const": null
       },
       "raw_body_hash": {
        "const": null
       },
       "raw_body_bytes": {
        "const": null
       },
       "checked_on": {
        "const": "2026-10-31"
       },
       "facts": {
        "items": {
         "properties": {
          "source_url": {
           "const": "https://publications.jrc.ec.europa.eu/repository/bitstream/JRC118550/preliminary_report_eu_gpp_data_centres_-_v1.0_october2017_pubsy_1.pdf"
          }
         }
        }
       },
       "limits": {
        "const": "Historical technical guidance and synthesis, not an audited provider process, GPU inventory, brokerage eligibility, certification or measured circularity outcome. No component percentages, refresh periods, benefit rates, prices or present availability are admitted."
       },
       "reuse_terms": {
        "type": "string"
       },
       "licence_url": {
        "const": "https://creativecommons.org/licenses/by/4.0/"
       },
       "licence_legalcode_url": {
        "const": "https://creativecommons.org/licenses/by/4.0/legalcode.en"
       },
       "licence_evidence_locator": {
        "type": "string"
       },
       "attribution": {
        "const": "Alfieri et al. (2019), Development of European Green Public Procurement Criteria for Data Centres: Preliminary Report, JRC118550, © European Union 2019, CC BY 4.0. Original concise account by ComputeFinder; no endorsement. Source supplied without warranty."
       },
       "source_notice": {
        "const": "Minimal original attributed facts and an ordinary link. The report's express licence is recorded for this document only. No third-party charts, photographs, datasets, vendor examples or protected source passages are reproduced."
       },
       "independent_source_review": {
        "const": {
         "reviewer": "Codex/final_code_review/schema_contract_probe",
         "verdict": "KEEP",
         "reviewed_at": "2026-10-31T23:00:35.770Z",
         "scope": "Two original attributed summary facts and ordinary source link; report-specific EU-owned CC BY 4.0 material only."
        }
       },
       "admission_scope": {
        "const": "A concrete inspectable guidance starting point for stage10, not completion of certified refurbishment or secondary-GPU coverage."
       },
       "event_date_meaning": {
        "type": "null"
       },
       "rights": {
        "properties": {
         "basis": {
          "const": "licensed_eu_owned_sections"
         },
         "licence_id": {
          "const": "CC-BY-4.0"
         },
         "licence_url": {
          "const": "https://creativecommons.org/licenses/by/4.0/"
         }
        }
       },
       "page_url": {
        "const": "https://computefinder.net/supply-chain/evidence/jrc-server-component-reuse-guidance-2019"
       }
      }
     },
     {
      "properties": {
       "slug": {
        "const": "malset-refsdal-grid-asset-removal-condition-2026"
       },
       "lifecycle_stage": {
        "const": 11
       },
       "title": {
        "const": "A grid licence requires a named line span to be removed"
       },
       "record_kind": {
        "const": "issued_grid_asset_licence_condition"
       },
       "publisher": {
        "const": "Norwegian Water Resources and Energy Directorate (NVE)"
       },
       "source_title": {
        "const": "Anleggskonsesjon: Statkraft Energi AS, Målset kraftverk and related electrical installations"
       },
       "original_url": {
        "const": "https://webfileservice.nve.no/API/PublishedFiles/Download/3a993f04-3837-4aa6-961f-742910e0b9b2/202519874/3452861"
       },
       "document_reference": {
        "const": "NVE 202519874-32"
       },
       "source_publication": {
        "type": "null"
       },
       "source_publication_label": {
        "type": "null"
       },
       "source_publication_precision": {
        "type": "null"
       },
       "source_updated_on": {
        "const": null
       },
       "event_date": {
        "const": "2026-06-05"
       },
       "event_date_meaning": {
        "type": "string"
       },
       "retrieved_at": {
        "const": null
       },
       "reviewed_at": {
        "const": "2026-10-31T23:00:35.770Z"
       },
       "source_version": {
        "const": null
       },
       "raw_body_hash": {
        "const": null
       },
       "raw_body_bytes": {
        "const": null
       },
       "checked_on": {
        "const": "2026-10-31"
       },
       "facts": {
        "items": {
         "properties": {
          "source_url": {
           "const": "https://webfileservice.nve.no/API/PublishedFiles/Download/3a993f04-3837-4aa6-961f-742910e0b9b2/202519874/3452861"
          }
         }
        }
       },
       "limits": {
        "const": "An issued, internally approved licence obligation for a named grid asset. The document says it is sent without signature. No completed removal, commissioning date, current compliance, whole data-centre closure, site-wide restoration, bond, transformer-removal duty, stranded-asset cost allocation or liability transfer is established. Later amendments or appeals were not checked. No data-centre connection is asserted."
       },
       "reuse_terms": {
        "type": "null"
       },
       "licence_url": {
        "type": "null"
       },
       "licence_legalcode_url": {
        "type": "null"
       },
       "licence_evidence_locator": {
        "type": "null"
       },
       "attribution": {
        "const": "NVE, licence NVE 202519874-32, dated 5 June 2026, conditions 8 and 9. ComputeFinder's own concise English factual account; ordinary link to the Norwegian original."
       },
       "source_notice": {
        "const": "No open licence for this attachment has been verified. Only minimal independently worded attributed facts and an ordinary link are proposed. NVE API, map and digital-guidance licences are not transferred to this document. No document reproduction, maps, signatures, personal contacts or applicant material are imported."
       },
       "independent_source_review": {
        "const": {
         "reviewer": "Codex/final_code_review/schema_contract_probe",
         "verdict": "KEEP",
         "reviewed_at": "2026-10-31T23:00:35.770Z",
         "scope": "Only the two minimal independently worded attributed licence-condition facts and ordinary unframed original link; attachment licence remains unknown."
        }
       },
       "admission_scope": {
        "const": "A concrete grid-asset retirement and cleanup condition for stage11. Municipal data-centre decommissioning and financial-security cases remain open."
       },
       "creators": {
        "type": "null"
       },
       "rights": {
        "properties": {
         "basis": {
          "const": "minimal_original_facts_link"
         },
         "licence_id": {
          "type": "null"
         },
         "licence_url": {
          "type": "null"
         }
        }
       },
       "page_url": {
        "const": "https://computefinder.net/supply-chain/evidence/malset-refsdal-grid-asset-removal-condition-2026"
       }
      }
     },
     {
      "properties": {
       "slug": {
        "const": "aspire1-operator-reported-system-retirement-2023"
       },
       "lifecycle_stage": {
        "const": 11
       },
       "title": {
        "const": "Operator-reported system retirement: ASPIRE 1"
       },
       "record_kind": {
        "const": "operator_reported_system_retirement"
       },
       "publisher": {
        "const": "National Supercomputing Centre Singapore"
       },
       "source_title": {
        "const": "ASPIRE 1 - Decommissioned"
       },
       "original_url": {
        "const": "https://www.nscc.sg/aspire-1-decommissioned/"
       },
       "document_reference": {
        "const": null
       },
       "creators": {
        "const": null
       },
       "source_publication": {
        "const": null
       },
       "source_publication_label": {
        "const": null
       },
       "source_publication_precision": {
        "const": null
       },
       "source_updated_on": {
        "const": null
       },
       "event_date": {
        "const": "2023-08-31"
       },
       "event_date_meaning": {
        "const": "Operator-reported decommissioning of the named ASPIRE1 system, not building closure, equipment removal/disposal or a compliance finding."
       },
       "retrieved_at": {
        "const": null
       },
       "reviewed_at": {
        "const": "2026-11-01T02:47:43.456Z"
       },
       "source_version": {
        "const": null
       },
       "raw_body_hash": {
        "const": null
       },
       "raw_body_bytes": {
        "const": null
       },
       "checked_on": {
        "const": "2026-11-01"
       },
       "facts": {
        "const": [
         {
          "text": "NSCC's retrospective account labels ASPIRE 1 decommissioned and gives 31 August 2023 as the system's retirement date.",
          "source_url": "https://www.nscc.sg/aspire-1-decommissioned/",
          "locator": "ASPIRE 1 retrospective system paragraph; operator-reported decommissioning date"
         }
        ]
       },
       "limits": {
        "const": "Operator-reported retirement of the named ASPIRE 1 system only, not an independent event audit. No hardware refurbishment, resale, disposal, material recovery or recycling, building closure, site restoration/remediation, permit/bond/financial-security compliance, liability discharge, successor-system status, current available compute or present campus stage is established."
       },
       "reuse_terms": {
        "const": null
       },
       "licence_url": {
        "const": null
       },
       "licence_legalcode_url": {
        "const": null
       },
       "licence_evidence_locator": {
        "const": null
       },
       "attribution": {
        "const": "National Supercomputing Centre Singapore, ASPIRE 1 - Decommissioned. ComputeFinder original concise attributed system-retirement account; ordinary original link. NSCC source copyright retained; no endorsement."
       },
       "source_notice": {
        "const": "NSCC operator-reported ASPIRE 1 system retirement only. Minimal independently worded attributed fact and ordinary source link. Source copyright is retained; no open source licence, endorsement or recurring-monitoring permission is asserted. Disposal/recovery, building closure and site-restoration outcomes are not established."
       },
       "independent_source_review": {
        "const": {
         "reviewer": "Codex/wp_interface_acceptance",
         "verdict": "KEEP",
         "reviewed_at": "2026-11-01T02:47:43.456Z",
         "scope": "One minimal independently worded operator-attributed ASPIRE 1 system-retirement/date fact and ordinary original link only; no recovery/disposal, facility closure/restoration, technical-table or open-source-licence claim."
        }
       },
       "admission_scope": {
        "const": "A narrowly labelled operator-reported system-retirement example for the retirement component of Stage 11. Recovery, disposal, building/site closure and restoration remain unestablished."
       },
       "rights": {
        "const": {
         "basis": "minimal_original_facts_link",
         "licence_id": null,
         "licence_url": null,
         "scope": "Only one minimal independently worded operator-attributed system-retirement/date fact and ordinary unframed original link; NSCC content rights remain with the source and no open licence is verified."
        }
       },
       "page_url": {
        "const": "https://computefinder.net/supply-chain/evidence/aspire1-operator-reported-system-retirement-2023"
       }
      }
     }
    ]
   },
   "GridDemandEvidence": {
    "type": "object",
    "required": [
     "slug",
     "operator",
     "jurisdiction",
     "evidence_kind",
     "stage",
     "scope",
     "summary_own_words",
     "source_url",
     "source_publication",
     "source_updated_on",
     "event_date",
     "retrieved_at",
     "reviewed_at",
     "source_version",
     "checked_on",
     "source_notice",
     "reuse_terms",
     "rights_notice_url",
     "quantity",
     "unit",
     "quantity_as_of",
     "metric",
     "is_queue_total",
     "limits",
     "page_url"
    ],
    "additionalProperties": false,
    "description": "Separate demand-side process and category evidence, not a capacity total. PJM forecast adjustments are not a load queue; Statnett reservation and ordinary-queue categories can overlap. No quantity is admitted. All original clocks and source conditions remain separate.",
    "properties": {
     "slug": {
      "type": "string",
      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$(?![\\s\\S])"
     },
     "operator": {
      "type": "string",
      "pattern": "\\S"
     },
     "jurisdiction": {
      "type": "string",
      "pattern": "\\S"
     },
     "summary_own_words": {
      "type": "string",
      "pattern": "\\S"
     },
     "source_url": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://[^\\s\\\\/?#@\\u0000-\\u001f\\u007f]+(?:[/?#][^\\s\\\\\\u0000-\\u001f\\u007f]*)?$(?![\\s\\S])"
     },
     "source_publication": {
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$(?![\\s\\S])",
      "description": "Recorded source publication day or null, separate from the event and check."
     },
     "source_updated_on": {
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$(?![\\s\\S])"
     },
     "event_date": {
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$(?![\\s\\S])"
     },
     "retrieved_at": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$(?![\\s\\S])",
      "description": "Actually retained source retrieval instant, or null. Observation-window bounds do not supply this clock."
     },
     "reviewed_at": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$(?![\\s\\S])",
      "description": "Independent precise-use/source review instant retained from the actual review receipt, not build time."
     },
     "source_version": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "checked_on": {
      "type": "string",
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$(?![\\s\\S])"
     },
     "source_notice": {
      "type": "string",
      "pattern": "\\S"
     },
     "reuse_terms": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "rights_notice_url": {
      "type": [
       "string",
       "null"
      ],
      "format": "uri",
      "pattern": "^https://[^\\s\\\\/?#@\\u0000-\\u001f\\u007f]+(?:[/?#][^\\s\\\\\\u0000-\\u001f\\u007f]*)?$(?![\\s\\S])"
     },
     "evidence_kind": {
      "type": "string",
      "enum": [
       "forecast_adjustment_process",
       "demand_connection_statistics_scope"
      ]
     },
     "stage": {
      "type": "string",
      "enum": [
       "forecast_adjustment_review",
       "separate_queue_reservation_connected_categories"
      ]
     },
     "scope": {
      "type": "string",
      "pattern": "\\S"
     },
     "quantity": {
      "type": "null"
     },
     "unit": {
      "type": "null"
     },
     "quantity_as_of": {
      "type": "null"
     },
     "metric": {
      "type": "null"
     },
     "is_queue_total": {
      "const": false
     },
     "limits": {
      "type": "string",
      "pattern": "\\S"
     },
     "page_url": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://[^\\s\\\\/?#@\\u0000-\\u001f\\u007f]+(?:[/?#][^\\s\\\\\\u0000-\\u001f\\u007f]*)?$(?![\\s\\S])"
     }
    },
    "allOf": [
     {
      "if": {
       "properties": {
        "evidence_kind": {
         "const": "forecast_adjustment_process"
        }
       }
      },
      "then": {
       "properties": {
        "stage": {
         "const": "forecast_adjustment_review"
        }
       }
      },
      "else": {
       "properties": {
        "stage": {
         "const": "separate_queue_reservation_connected_categories"
        }
       }
      }
     }
    ]
   },
   "HistoricalGridRule": {
    "type": "object",
    "required": [
     "slug",
     "operator",
     "region",
     "jurisdiction",
     "topic",
     "summary_own_words",
     "source_url",
     "as_of",
     "evidence_kind",
     "source_publication",
     "source_updated_on",
     "event_date",
     "retrieved_at",
     "reviewed_at",
     "source_version",
     "checked_on",
     "source_notice",
     "reuse_terms",
     "rights_notice_url",
     "instrument",
     "instrument_version",
     "effective_date",
     "effective_date_basis",
     "applicability",
     "threshold",
     "transition",
     "limits",
     "page_url"
    ],
    "additionalProperties": false,
    "description": "One historical Dutch TDTR amendment, not a statement of current consolidated law or any site offer. as_of repeats the known decision event date for the retained table format; it is not an evidence check. The effective date is a labelled calendar inference from the Gazette commencement provision.",
    "properties": {
     "slug": {
      "type": "string",
      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$(?![\\s\\S])"
     },
     "operator": {
      "type": "string",
      "pattern": "\\S"
     },
     "jurisdiction": {
      "type": "string",
      "pattern": "\\S"
     },
     "summary_own_words": {
      "type": "string",
      "pattern": "\\S"
     },
     "source_url": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://[^\\s\\\\/?#@\\u0000-\\u001f\\u007f]+(?:[/?#][^\\s\\\\\\u0000-\\u001f\\u007f]*)?$(?![\\s\\S])"
     },
     "source_publication": {
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$(?![\\s\\S])",
      "description": "Recorded source publication day or null, separate from the event and check."
     },
     "source_updated_on": {
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$(?![\\s\\S])"
     },
     "event_date": {
      "type": "string",
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$(?![\\s\\S])",
      "const": "2026-04-23"
     },
     "retrieved_at": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$(?![\\s\\S])",
      "description": "Actually retained source retrieval instant, or null. Observation-window bounds do not supply this clock."
     },
     "reviewed_at": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$(?![\\s\\S])",
      "description": "Independent precise-use/source review instant retained from the actual review receipt, not build time."
     },
     "source_version": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "checked_on": {
      "type": "string",
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$(?![\\s\\S])"
     },
     "source_notice": {
      "type": "string",
      "pattern": "\\S"
     },
     "reuse_terms": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "rights_notice_url": {
      "type": [
       "string",
       "null"
      ],
      "format": "uri",
      "pattern": "^https://[^\\s\\\\/?#@\\u0000-\\u001f\\u007f]+(?:[/?#][^\\s\\\\\\u0000-\\u001f\\u007f]*)?$(?![\\s\\S])"
     },
     "region": {
      "type": "string",
      "pattern": "\\S"
     },
     "topic": {
      "type": "string",
      "pattern": "\\S"
     },
     "as_of": {
      "type": "string",
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$(?![\\s\\S])",
      "const": "2026-04-23"
     },
     "evidence_kind": {
      "const": "regulator_code_amendment"
     },
     "instrument": {
      "type": "string",
      "pattern": "\\S"
     },
     "instrument_version": {
      "type": "string",
      "pattern": "\\S"
     },
     "effective_date": {
      "type": "string",
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$(?![\\s\\S])"
     },
     "effective_date_basis": {
      "type": "string",
      "pattern": "\\S"
     },
     "applicability": {
      "type": "string",
      "pattern": "\\S"
     },
     "threshold": {
      "type": "null"
     },
     "transition": {
      "type": "string",
      "pattern": "\\S"
     },
     "limits": {
      "type": "string",
      "pattern": "\\S"
     },
     "page_url": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://[^\\s\\\\/?#@\\u0000-\\u001f\\u007f]+(?:[/?#][^\\s\\\\\\u0000-\\u001f\\u007f]*)?$(?![\\s\\S])"
     }
    }
   },
   "LegacyGridContext": {
    "type": "object",
    "required": [
     "operator",
     "region",
     "topic",
     "summary_own_words",
     "source_url",
     "as_of",
     "page_url"
    ],
    "additionalProperties": false,
    "description": "Retained historical context with its original as_of date. This legacy date is not a new publication, retrieval or review clock.",
    "properties": {
     "operator": {
      "type": "string",
      "pattern": "\\S"
     },
     "region": {
      "type": "string",
      "pattern": "\\S"
     },
     "topic": {
      "type": "string",
      "pattern": "\\S"
     },
     "summary_own_words": {
      "type": "string",
      "pattern": "\\S"
     },
     "as_of": {
      "type": "string",
      "pattern": "\\S"
     },
     "source_url": {
      "type": "string",
      "format": "uri"
     },
     "page_url": {
      "type": "string",
      "format": "uri"
     }
    }
   },
   "SiteRecordLink": {
    "type": "object",
    "required": [
     "slug",
     "relationship",
     "frontier_name",
     "frontier_country",
     "frontier_page_url",
     "canonical_id",
     "canonical_slug",
     "canonical_page_url",
     "summary_own_words",
     "scope",
     "cannot_establish",
     "source_name",
     "source_urls",
     "source_publication",
     "source_updated_on",
     "event_date",
     "retrieved_at",
     "reviewed_at",
     "source_version",
     "checked_on",
     "source_notice",
     "reuse_terms",
     "deduplicates_records",
     "source_records",
     "unique_physical_facilities",
     "page_url"
    ],
    "additionalProperties": false,
    "description": "One exact reviewed same-named-campus contextual inference. Separate records, phase boundaries, metrics, owners/users, operation and coordinates are not merged or equated. source_records=193 is a retained source-row count, not a physical-facility count; unique physical facilities remain null. Source publication/event/update/retrieval/version clocks are unknown. The original 2 October and 17 October record checks are not renewed.",
    "properties": {
     "slug": {
      "const": "epoch-ecodatacenter2-se-named-campus-context"
     },
     "relationship": {
      "const": "same_named_campus_context"
     },
     "frontier_name": {
      "const": "EcoDataCenter 2"
     },
     "frontier_country": {
      "const": "Sweden"
     },
     "frontier_page_url": {
      "const": "https://computefinder.net/sites#epoch-ecodatacenter-2"
     },
     "canonical_id": {
      "const": "cf-dc-0046"
     },
     "canonical_slug": {
      "const": "ecodatacenter-borlange"
     },
     "canonical_page_url": {
      "const": "https://computefinder.net/data-centres/ecodatacenter-borlange"
     },
     "summary_own_words": {
      "const": "EcoDataCenter's own pages name its Borlänge campus EcoDataCenter 2 and list Kvarnsvedsvägen 420. This supplies named-campus context for the retained Epoch name/address, without confirming the same phase or facility boundary."
     },
     "scope": {
      "const": "Explicit operator site-name, locality, street-address and linked-site context matches the retained publisher name/country/address and the separately retained detailed-campus name/locality. The relationship is a bounded contextual inference, not a physical-facility identity or deduplication decision."
     },
     "cannot_establish": {
      "const": [
       "Equal buildings, phases, site boundary or legal parcel",
       "Equal owners, users, capacities, metrics, stages, permits or operational status",
       "Commissioning, available compute, accessible allocation, grid availability or performance",
       "Verified coordinates, geocoding, centroid or WGS84 point",
       "A deduplicated global physical-facility count"
      ]
     },
     "source_name": {
      "const": "EcoDataCenter"
     },
     "source_urls": {
      "const": [
       "https://ecodatacenter.tech/contact",
       "https://ecodatacenter.tech/data-center/ecodatacenter2"
      ]
     },
     "source_publication": {
      "const": null
     },
     "source_updated_on": {
      "const": null
     },
     "event_date": {
      "const": null
     },
     "retrieved_at": {
      "const": null
     },
     "reviewed_at": {
      "const": "2026-11-01T01:43:25.930Z"
     },
     "source_version": {
      "const": null
     },
     "checked_on": {
      "const": "2026-11-01"
     },
     "source_notice": {
      "const": "Minimal independently worded attributed site-name and locality/address facts, plus ordinary unframed links only. No copied source narrative, marketing copy, performance or capacity figure, technical table, database, photograph, logo, map, contact details or form is imported. No open source-content licence, endorsement or recurring-monitoring grant is asserted. The personal-data policy is not a content licence."
     },
     "reuse_terms": {
      "const": null
     },
     "deduplicates_records": {
      "const": false
     },
     "source_records": {
      "const": 193
     },
     "unique_physical_facilities": {
      "const": null
     },
     "page_url": {
      "const": "https://computefinder.net/data-centres/ecodatacenter-borlange#record-context-links"
     }
    }
   },
   "ResearchEntry": {
    "type": "object",
    "required": [
     "slug",
     "title",
     "publisher",
     "original_url",
     "publication_date",
     "data_period",
     "scope",
     "method",
     "evidence_type",
     "assumptions",
     "uncertainty",
     "funding_interests",
     "reuse_terms",
     "checked_on",
     "related_question",
     "cannot_establish",
     "page_url"
    ],
    "additionalProperties": false,
    "description": "Original attributed account of research, methods or guidance, not imported source data. Guidance describes recommendations or methods, not an empirical finding or modelled result by itself. Retain reuse terms, proprietary-input exclusions, IEA Annex/data-product exclusions and any record-specific source, attribution or derived-work notice. Unknown publication dates and reuse terms are explicit null with a nonempty source_notice. Publication, source update and check clocks remain separate and unchanged.",
    "properties": {
     "slug": {
      "type": "string",
      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
     },
     "title": {
      "type": "string",
      "pattern": "\\S"
     },
     "publisher": {
      "type": "string",
      "pattern": "\\S"
     },
     "original_url": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://"
     },
     "publication_date": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S",
      "description": "Recorded source publication date or explicit null. A source update or check date cannot supply a missing publication date."
     },
     "data_period": {
      "type": "string",
      "pattern": "\\S"
     },
     "scope": {
      "type": "string",
      "pattern": "\\S"
     },
     "method": {
      "type": "string",
      "pattern": "\\S"
     },
     "evidence_type": {
      "type": "string",
      "enum": [
       "measured",
       "modelled",
       "scenario",
       "forecast",
       "commitment",
       "opinion",
       "guidance"
      ]
     },
     "assumptions": {
      "type": "string",
      "pattern": "\\S"
     },
     "uncertainty": {
      "type": "string",
      "pattern": "\\S"
     },
     "funding_interests": {
      "type": "string",
      "pattern": "\\S"
     },
     "reuse_terms": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S",
      "description": "Recorded exact-use terms or explicit null. Unknown terms require a substantive source_notice and imply no licence."
     },
     "checked_on": {
      "type": "string",
      "pattern": "\\S"
     },
     "related_question": {
      "type": "string",
      "pattern": "\\S"
     },
     "cannot_establish": {
      "type": "string",
      "pattern": "\\S"
     },
     "authors": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "licence_url": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "attribution": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "derived_work_notice": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "source_notice": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "source_updated_on": {
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$(?![\\s\\S])",
      "description": "Separately recorded source-page update day, or explicit null; never used as publication or review time."
     },
     "page_url": {
      "type": "string",
      "format": "uri"
     }
    },
    "allOf": [
     {
      "if": {
       "required": [
        "publication_date"
       ],
       "properties": {
        "publication_date": {
         "type": "null"
        }
       }
      },
      "then": {
       "required": [
        "source_notice"
       ],
       "properties": {
        "source_notice": {
         "type": "string",
         "pattern": "\\S"
        }
       }
      }
     },
     {
      "if": {
       "required": [
        "reuse_terms"
       ],
       "properties": {
        "reuse_terms": {
         "type": "null"
        }
       }
      },
      "then": {
       "required": [
        "source_notice"
       ],
       "properties": {
        "source_notice": {
         "type": "string",
         "pattern": "\\S"
        }
       }
      }
     }
    ]
   },
   "ClaimReview": {
    "type": "object",
    "required": [
     "slug",
     "claim",
     "attribution",
     "claim_date",
     "scope",
     "original_evidence",
     "supporting_evidence",
     "counter_evidence",
     "method_differences",
     "finding",
     "reason",
     "unresolved_questions",
     "checked_on",
     "dossier_publication",
     "page_url"
    ],
    "additionalProperties": false,
    "description": "Thirteen distinct claim semantics. Evidence fields are arrays of typed citations, not copied observations or evidence-type labels. Original evidence requires a citation; supporting/counter lists may be empty, meaning not recorded rather than none exists. No synthetic review is published.",
    "properties": {
     "slug": {
      "type": "string",
      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
     },
     "claim": {
      "type": "string",
      "pattern": "\\S"
     },
     "attribution": {
      "type": "string",
      "pattern": "\\S"
     },
     "claim_date": {
      "type": "string",
      "pattern": "\\S"
     },
     "scope": {
      "type": "string",
      "pattern": "\\S"
     },
     "original_evidence": {
      "type": "array",
      "minItems": 1,
      "items": {
       "$ref": "#/components/schemas/EvidenceCitation"
      }
     },
     "supporting_evidence": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/EvidenceCitation"
      }
     },
     "counter_evidence": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/EvidenceCitation"
      }
     },
     "method_differences": {
      "type": "string",
      "pattern": "\\S"
     },
     "finding": {
      "type": "string",
      "enum": [
       "supported within stated bounds",
       "partly supported",
       "unsupported by the supplied source",
       "contradicted by cited evidence",
       "unresolved"
      ]
     },
     "reason": {
      "type": "string",
      "pattern": "\\S"
     },
     "unresolved_questions": {
      "type": "string",
      "pattern": "\\S"
     },
     "checked_on": {
      "type": "string",
      "pattern": "\\S"
     },
     "reuse_terms": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "licence_url": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "source_notice": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "attribution_notice": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "derived_work_notice": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "funding_interests": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "uncertainty": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "dossier_publication": {
      "$ref": "#/components/schemas/ClaimDossierPublication"
     },
     "page_url": {
      "type": "string",
      "format": "uri"
     }
    }
   },
   "ClaimDossierPublication": {
    "type": "object",
    "required": [
     "slug",
     "title",
     "publisher",
     "original_url",
     "publication_date",
     "data_period",
     "scope",
     "method",
     "evidence_type",
     "assumptions",
     "uncertainty",
     "funding_interests",
     "reuse_terms",
     "checked_on",
     "related_question",
     "cannot_establish"
    ],
    "additionalProperties": false,
    "description": "ComputeFinder editorial dossier publication record, separate from every cited-source publication. No source publisher, publication date, licence or funding is inherited. Unknown editorial publication date and dossier-specific interests remain null with explicit uncertainty. checked_on retains the existing scoped claim-evidence check, not an editorial metadata review or a renewed source check. CSV uses the sixteen publication_ columns with nulls empty.",
    "properties": {
     "slug": {
      "type": "string",
      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$(?![\\s\\S])"
     },
     "title": {
      "type": "string",
      "pattern": "\\S"
     },
     "publisher": {
      "type": "string",
      "const": "ComputeFinder"
     },
     "original_url": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://computefinder\\.net/research/claims/[a-z0-9]+(?:-[a-z0-9]+)*$(?![\\s\\S])"
     },
     "publication_date": {
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$(?![\\s\\S])"
     },
     "data_period": {
      "type": "string",
      "pattern": "\\S"
     },
     "scope": {
      "type": "string",
      "pattern": "\\S"
     },
     "method": {
      "type": "string",
      "pattern": "\\S"
     },
     "evidence_type": {
      "type": "string",
      "const": "editorial_review"
     },
     "assumptions": {
      "type": "string",
      "pattern": "\\S"
     },
     "uncertainty": {
      "type": "string",
      "pattern": "\\S"
     },
     "funding_interests": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "reuse_terms": {
      "type": "string",
      "pattern": "\\S"
     },
     "checked_on": {
      "type": "string",
      "format": "date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$(?![\\s\\S])",
      "description": "Exact retained parent claim evidence-check day, never refreshed by authoring or building this representation."
     },
     "related_question": {
      "type": "string",
      "pattern": "\\S"
     },
     "cannot_establish": {
      "type": "string",
      "pattern": "\\S"
     }
    }
   },
   "EvidenceSample": {
    "oneOf": [
     {
      "type": "object",
      "additionalProperties": false,
      "required": [
       "id",
       "dimension",
       "definition_version",
       "benchmark",
       "scope",
       "source_revision",
       "source_publication",
       "event_date",
       "retrieved_at",
       "observed_at",
       "reviewed_at",
       "next_review_on",
       "score",
       "sample"
      ],
      "description": "Dated unscored evidence only. Counts retain this named sample and source revision; no overall accuracy, current project status, scheduler reliability or visitor benefit is implied. Null clocks and score stay unknown.",
      "properties": {
       "id": {
        "const": "wp53-trust-20261031"
       },
       "dimension": {
        "const": "trust"
       },
       "definition_version": {
        "const": 2
       },
       "benchmark": {
        "const": "trust-v2"
       },
       "scope": {
        "const": "six_consequential_propositions"
       },
       "source_revision": {
        "type": "string",
        "minLength": 40,
        "maxLength": 40,
        "pattern": "^[a-f0-9]{40}$"
       },
       "source_publication": {
        "type": "null"
       },
       "event_date": {
        "type": "null"
       },
       "retrieved_at": {
        "type": "null"
       },
       "observed_at": {
        "type": "string",
        "format": "date-time",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?Z$"
       },
       "reviewed_at": {
        "type": "string",
        "format": "date-time",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?Z$"
       },
       "next_review_on": {
        "type": "string",
        "format": "date"
       },
       "score": {
        "type": "null"
       },
       "sample": {
        "type": "object",
        "additionalProperties": false,
        "required": [
         "checked",
         "total",
         "independent",
         "factual",
         "link_only",
         "historical_only",
         "uninspected"
        ],
        "properties": {
         "checked": {
          "type": "integer",
          "minimum": 0,
          "maximum": 6
         },
         "total": {
          "const": 6
         },
         "independent": {
          "type": "integer",
          "minimum": 0,
          "maximum": 6
         },
         "factual": {
          "type": "integer",
          "minimum": 0,
          "maximum": 6
         },
         "link_only": {
          "type": "integer",
          "minimum": 0,
          "maximum": 6
         },
         "historical_only": {
          "type": "integer",
          "minimum": 0,
          "maximum": 6
         },
         "uninspected": {
          "type": "integer",
          "minimum": 0,
          "maximum": 6
         }
        }
       }
      }
     },
     {
      "type": "object",
      "additionalProperties": false,
      "required": [
       "id",
       "dimension",
       "definition_version",
       "benchmark",
       "scope",
       "source_revision",
       "source_publication",
       "event_date",
       "retrieved_at",
       "observed_at",
       "reviewed_at",
       "next_review_on",
       "score",
       "sample"
      ],
      "description": "Dated unscored evidence only. Counts retain this named sample and source revision; no overall accuracy, current project status, scheduler reliability or visitor benefit is implied. Null clocks and score stay unknown.",
      "properties": {
       "id": {
        "const": "wp53-depth-20261031"
       },
       "dimension": {
        "const": "depth"
       },
       "definition_version": {
        "const": 2
       },
       "benchmark": {
        "const": "depth-v2"
       },
       "scope": {
        "const": "seven_connected_records"
       },
       "source_revision": {
        "type": "string",
        "minLength": 40,
        "maxLength": 40,
        "pattern": "^[a-f0-9]{40}$"
       },
       "source_publication": {
        "type": "null"
       },
       "event_date": {
        "type": "null"
       },
       "retrieved_at": {
        "type": "null"
       },
       "observed_at": {
        "type": "string",
        "format": "date-time",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?Z$"
       },
       "reviewed_at": {
        "type": "string",
        "format": "date-time",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?Z$"
       },
       "next_review_on": {
        "type": "string",
        "format": "date"
       },
       "score": {
        "type": "null"
       },
       "sample": {
        "type": "object",
        "additionalProperties": false,
        "required": [
         "checked",
         "total",
         "independent",
         "grid_connection",
         "pue",
         "water_use",
         "chips",
         "coordinates",
         "known_stage"
        ],
        "properties": {
         "checked": {
          "type": "integer",
          "minimum": 0,
          "maximum": 7
         },
         "total": {
          "const": 7
         },
         "independent": {
          "type": "integer",
          "minimum": 0,
          "maximum": 7
         },
         "grid_connection": {
          "type": "integer",
          "minimum": 0,
          "maximum": 7
         },
         "pue": {
          "type": "integer",
          "minimum": 0,
          "maximum": 7
         },
         "water_use": {
          "type": "integer",
          "minimum": 0,
          "maximum": 7
         },
         "chips": {
          "type": "integer",
          "minimum": 0,
          "maximum": 7
         },
         "coordinates": {
          "type": "integer",
          "minimum": 0,
          "maximum": 7
         },
         "known_stage": {
          "type": "integer",
          "minimum": 0,
          "maximum": 7
         }
        }
       }
      }
     },
     {
      "type": "object",
      "additionalProperties": false,
      "required": [
       "id",
       "dimension",
       "definition_version",
       "benchmark",
       "scope",
       "source_revision",
       "source_publication",
       "event_date",
       "retrieved_at",
       "observed_at",
       "reviewed_at",
       "next_review_on",
       "score",
       "sample"
      ],
      "description": "Dated unscored evidence only. Counts retain this named sample and source revision; no overall accuracy, current project status, scheduler reliability or visitor benefit is implied. Null clocks and score stay unknown.",
      "properties": {
       "id": {
        "const": "wp53-freshness-20261031"
       },
       "dimension": {
        "const": "freshness"
       },
       "definition_version": {
        "const": 2
       },
       "benchmark": {
        "const": "freshness-v2"
       },
       "scope": {
        "const": "five_due_reviews"
       },
       "source_revision": {
        "type": "string",
        "minLength": 40,
        "maxLength": 40,
        "pattern": "^[a-f0-9]{40}$"
       },
       "source_publication": {
        "type": "null"
       },
       "event_date": {
        "type": "null"
       },
       "retrieved_at": {
        "type": "null"
       },
       "observed_at": {
        "type": "string",
        "format": "date-time",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?Z$"
       },
       "reviewed_at": {
        "type": "string",
        "format": "date-time",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?Z$"
       },
       "next_review_on": {
        "type": "string",
        "format": "date"
       },
       "score": {
        "type": "null"
       },
       "sample": {
        "type": "object",
        "additionalProperties": false,
        "required": [
         "checked",
         "total",
         "independent",
         "factual",
         "link_only",
         "unexecuted"
        ],
        "properties": {
         "checked": {
          "type": "integer",
          "minimum": 0,
          "maximum": 5
         },
         "total": {
          "const": 5
         },
         "independent": {
          "type": "integer",
          "minimum": 0,
          "maximum": 5
         },
         "factual": {
          "type": "integer",
          "minimum": 0,
          "maximum": 5
         },
         "link_only": {
          "type": "integer",
          "minimum": 0,
          "maximum": 5
         },
         "unexecuted": {
          "type": "integer",
          "minimum": 0,
          "maximum": 5
         }
        }
       }
      }
     }
    ]
   },
   "CommercialService": {
    "type": "object",
    "additionalProperties": false,
    "required": [
     "id",
     "record_kind",
     "name",
     "task",
     "category",
     "scope",
     "audience",
     "geography",
     "constraint",
     "source_url",
     "status",
     "reuse_terms",
     "source_notice",
     "publisher",
     "source_publication",
     "source_updated_on",
     "event_date",
     "retrieved_at",
     "source_version",
     "source_bytes_sha256",
     "publication_label",
     "source_publication_precision",
     "reviewed_at",
     "mapping_reviewed_at",
     "checked_on",
     "checked_scope",
     "licence_url",
     "attribution",
     "page_url"
    ],
    "description": "Three selected provider-attributed commercial service categories only, not the existing programme routes or a representative services census. No ranking, endorsement, price, suitability or current availability is established. Retain source-specific rights and all separate clocks; unknown geography and source metadata remain null.",
    "properties": {
     "id": {
      "type": "string",
      "pattern": "\\S"
     },
     "name": {
      "type": "string",
      "pattern": "\\S"
     },
     "task": {
      "type": "string",
      "pattern": "\\S"
     },
     "category": {
      "type": "string",
      "pattern": "\\S"
     },
     "scope": {
      "type": "string",
      "pattern": "\\S"
     },
     "audience": {
      "type": "string",
      "pattern": "\\S"
     },
     "constraint": {
      "type": "string",
      "pattern": "\\S"
     },
     "status": {
      "type": "string",
      "pattern": "\\S"
     },
     "source_notice": {
      "type": "string",
      "pattern": "\\S"
     },
     "publisher": {
      "type": "string",
      "pattern": "\\S"
     },
     "attribution": {
      "type": "string",
      "pattern": "\\S"
     },
     "support_label": {
      "type": "string",
      "pattern": "\\S"
     },
     "record_kind": {
      "const": "commercial-service"
     },
     "geography": {
      "type": "null"
     },
     "source_url": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://[^\\s\\\\/?#@\\u0000-\\u001f\\u007f]+(?:[/?#][^\\s\\\\\\u0000-\\u001f\\u007f]*)?$(?![\\s\\S])"
     },
     "provider_url": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://[^\\s\\\\/?#@\\u0000-\\u001f\\u007f]+(?:[/?#][^\\s\\\\\\u0000-\\u001f\\u007f]*)?$(?![\\s\\S])"
     },
     "support_url": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://[^\\s\\\\/?#@\\u0000-\\u001f\\u007f]+(?:[/?#][^\\s\\\\\\u0000-\\u001f\\u007f]*)?$(?![\\s\\S])"
     },
     "reuse_terms": {
      "type": [
       "string",
       "null"
      ],
      "description": "Recorded source-content grant, or null when no open grant is recorded. Known restrictions stay in source_notice; null does not mean the terms were uninspected."
     },
     "licence_url": {
      "type": [
       "string",
       "null"
      ],
      "format": "uri",
      "pattern": "^https://[^\\s\\\\/?#@\\u0000-\\u001f\\u007f]+(?:[/?#][^\\s\\\\\\u0000-\\u001f\\u007f]*)?$(?![\\s\\S])"
     },
     "page_url": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://[^\\s\\\\/?#@\\u0000-\\u001f\\u007f]+(?:[/?#][^\\s\\\\\\u0000-\\u001f\\u007f]*)?$(?![\\s\\S])"
     },
     "source_publication": {
      "type": "null"
     },
     "source_updated_on": {
      "type": "null"
     },
     "event_date": {
      "type": "null"
     },
     "retrieved_at": {
      "type": "null"
     },
     "source_version": {
      "type": "null"
     },
     "source_bytes_sha256": {
      "type": "null"
     },
     "publication_label": {
      "const": null
     },
     "source_publication_precision": {
      "const": null
     },
     "checked_on": {
      "type": "string",
      "format": "date",
      "const": "2026-10-31"
     },
     "checked_scope": {
      "type": "string",
      "pattern": "\\S"
     },
     "reviewed_at": {
      "type": "string",
      "format": "date-time",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$(?![\\s\\S])",
      "const": "2026-10-31T23:21:41.600Z"
     },
     "mapping_reviewed_at": {
      "type": "null"
     }
    },
    "dependentRequired": {
     "support_url": [
      "support_label"
     ],
     "support_label": [
      "support_url"
     ]
    },
    "oneOf": [
     {
      "required": [
       "provider_url"
      ],
      "properties": {
       "id": {
        "const": "aws-professional-services-migration"
       },
       "task": {
        "const": "move-or-optimise"
       },
       "category": {
        "const": "Cloud migration support"
       },
       "source_url": {
        "const": "https://docs.aws.amazon.com/transform/latest/launchguide/delivering-mig-program.html"
       },
       "licence_url": {
        "const": "https://creativecommons.org/licenses/by-sa/4.0/"
       },
       "provider_url": {
        "const": "https://aws.amazon.com/"
       },
       "support_url": false,
       "support_label": false,
       "reuse_terms": {
        "const": "CC-BY-SA-4.0 is explicitly specified for docs.aws.amazon.com documentation in the fetched AWS Site Terms; this proposal uses only original basic-fact wording and a documentation link."
       },
       "page_url": {
        "const": "https://computefinder.net/services#service-aws-professional-services-migration"
       }
      }
     },
     {
      "required": [
       "support_url",
       "support_label"
      ],
      "properties": {
       "id": {
        "const": "canonical-maas-provisioning-support"
       },
       "task": {
        "const": "move-or-optimise"
       },
       "category": {
        "const": "Bare-metal provisioning and support"
       },
       "source_url": {
        "const": "https://canonical.com/maas/how-maas-works"
       },
       "licence_url": {
        "const": null
       },
       "support_url": {
        "const": "https://canonical.com/maas/support"
       },
       "support_label": {
        "const": "Canonical: MAAS support information"
       },
       "provider_url": false,
       "reuse_terms": {
        "const": null
       },
       "page_url": {
        "const": "https://computefinder.net/services#service-canonical-maas-provisioning-support"
       }
      }
     },
     {
      "required": [],
      "properties": {
       "id": {
        "const": "salute-facility-commissioning"
       },
       "task": {
        "const": "build-or-operate"
       },
       "category": {
        "const": "Facility commissioning and engineering support"
       },
       "source_url": {
        "const": "https://salute.com/services/commission/"
       },
       "licence_url": {
        "const": null
       },
       "provider_url": false,
       "support_url": false,
       "support_label": false,
       "reuse_terms": {
        "const": null
       },
       "page_url": {
        "const": "https://computefinder.net/services#service-salute-facility-commissioning"
       }
      }
     }
    ]
   },
   "ScopedStandardEvidence": {
    "type": "object",
    "additionalProperties": false,
    "required": [
     "slug",
     "name",
     "publisher",
     "kind",
     "certifies",
     "certifies_note",
     "covers",
     "issued_by",
     "primary_url",
     "also",
     "not_tell",
     "evidence",
     "record_kind",
     "source_publisher",
     "source_publication",
     "source_updated_on",
     "event_date",
     "retrieved_at",
     "source_version",
     "source_bytes_sha256",
     "publication_label",
     "source_publication_precision",
     "reviewed_at",
     "mapping_reviewed_at",
     "checked_on",
     "checked_scope",
     "reuse_terms",
     "licence_url",
     "source_notice",
     "page_url"
    ],
    "description": "One German Part1 national catalogue record only. Month-precision standard publication label is not a webpage publication day. Retained CENELEC identity is not a fresh series-wide source review. No normative text, universal latest edition, site conformity or current capacity is established.",
    "properties": {
     "name": {
      "type": "string",
      "pattern": "\\S"
     },
     "publisher": {
      "type": "string",
      "pattern": "\\S"
     },
     "kind": {
      "type": "string",
      "pattern": "\\S"
     },
     "certifies_note": {
      "type": "string",
      "pattern": "\\S"
     },
     "covers": {
      "type": "string",
      "pattern": "\\S"
     },
     "issued_by": {
      "type": "string",
      "pattern": "\\S"
     },
     "evidence": {
      "type": "string",
      "pattern": "\\S"
     },
     "source_notice": {
      "type": "string",
      "pattern": "\\S"
     },
     "slug": {
      "const": "en-50600"
     },
     "record_kind": {
      "const": "national_catalogue_metadata"
     },
     "source_publisher": {
      "const": "DIN Media"
     },
     "primary_url": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://[^\\s\\\\/?#@\\u0000-\\u001f\\u007f]+(?:[/?#][^\\s\\\\\\u0000-\\u001f\\u007f]*)?$(?![\\s\\S])",
      "const": "https://www.dinmedia.de/en/standard/din-en-50600-1/306267564"
     },
     "page_url": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://[^\\s\\\\/?#@\\u0000-\\u001f\\u007f]+(?:[/?#][^\\s\\\\\\u0000-\\u001f\\u007f]*)?$(?![\\s\\S])",
      "const": "https://computefinder.net/standards#en-50600"
     },
     "certifies": {
      "type": "array",
      "minItems": 1,
      "maxItems": 1,
      "items": {
       "const": "none"
      }
     },
     "also": {
      "type": "array",
      "maxItems": 0
     },
     "not_tell": {
      "type": "array",
      "minItems": 2,
      "items": {
       "type": "string",
       "pattern": "\\S"
      }
     },
     "reuse_terms": {
      "type": "null"
     },
     "licence_url": {
      "type": "null"
     },
     "source_publication": {
      "type": "null"
     },
     "source_updated_on": {
      "type": "null"
     },
     "event_date": {
      "type": "null"
     },
     "retrieved_at": {
      "type": "null"
     },
     "source_version": {
      "type": "null"
     },
     "source_bytes_sha256": {
      "type": "null"
     },
     "publication_label": {
      "const": "2019-08"
     },
     "source_publication_precision": {
      "const": "month"
     },
     "checked_on": {
      "type": "string",
      "format": "date",
      "const": "2026-10-31"
     },
     "checked_scope": {
      "type": "string",
      "pattern": "\\S"
     },
     "reviewed_at": {
      "type": "string",
      "format": "date-time",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$(?![\\s\\S])",
      "const": "2026-10-31T23:22:34Z"
     },
     "mapping_reviewed_at": {
      "type": "string",
      "format": "date-time",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$(?![\\s\\S])",
      "const": "2026-10-31T23:31:29Z"
     }
    }
   },
   "EvidenceCitation": {
    "type": "object",
    "required": [
     "label",
     "url"
    ],
    "additionalProperties": false,
    "description": "Exact source label and safe HTTPS citation, or an exact existing /research/<slug> context route. Optional research_slug must match that source URL or context route; it does not create or duplicate an observation.",
    "properties": {
     "label": {
      "type": "string",
      "pattern": "\\S"
     },
     "url": {
      "type": "string",
      "pattern": "^(https://|/research/)"
     },
     "research_slug": {
      "type": "string",
      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
     },
     "source_notice": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "reuse_terms": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "attribution": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     },
     "derived_work_notice": {
      "type": [
       "string",
       "null"
      ],
      "pattern": "\\S"
     }
    }
   },
   "SiteFieldEvidence": {
    "type": "object",
    "required": [
     "value_text",
     "value_num",
     "unit",
     "scope",
     "stage",
     "basis",
     "label",
     "as_of",
     "source_url",
     "source_version",
     "source_published_on",
     "source_updated_on",
     "retrieved_at",
     "reviewed_at",
     "checked_on",
     "source_notice"
    ],
    "properties": {
     "value_text": {
      "type": "string",
      "minLength": 1
     },
     "value_num": {
      "type": [
       "number",
       "null"
      ],
      "minimum": 0
     },
     "unit": {
      "type": [
       "string",
       "null"
      ],
      "minLength": 1
     },
     "scope": {
      "type": "string",
      "minLength": 1,
      "description": "Exact source-described system, building, project or phase. Not inferred from the parent record."
     },
     "stage": {
      "type": "string",
      "enum": [
       "announced",
       "permitted",
       "under_construction",
       "energised",
       "operating",
       "unknown",
       "cancelled"
      ]
     },
     "basis": {
      "type": "string",
      "enum": [
       "reported",
       "permitted",
       "modelled"
      ]
     },
     "label": {
      "type": "string",
      "enum": [
       "official_source",
       "corroborated",
       "source_claim",
       "candidate"
      ]
     },
     "as_of": {
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "source_url": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://[^\\s\\\\/?#@\\u0000-\\u001f\\u007f]+(?:[/?#][^\\s\\\\\\u0000-\\u001f\\u007f]*)?$(?![\\s\\S])"
     },
     "source_version": {
      "type": [
       "string",
       "null"
      ],
      "minLength": 1,
      "description": "Exact immutable source-version identifier or permanent revision pointer, only when actually known; otherwise explicit null. Never derived from DATA_VERSION, source dates, review or check clocks."
     },
     "source_published_on": {
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "source_updated_on": {
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "checked_on": {
      "type": "string",
      "format": "date"
     },
     "retrieved_at": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$(?![\\s\\S])",
      "description": "Actually retained UTC Z source retrieval instant with at most six fractional digits, independently recorded; never inferred from checked_on or build time."
     },
     "reviewed_at": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$(?![\\s\\S])",
      "description": "Actually retained UTC Z review instant with at most six fractional digits for this statement, independently recorded; null when unavailable."
     },
     "source_notice": {
      "type": "object",
      "required": [
       "publisher",
       "licence",
       "scope"
      ],
      "properties": {
       "publisher": {
        "type": "string",
        "minLength": 1
       },
       "licence": {
        "type": "string",
        "minLength": 1
       },
       "scope": {
        "type": "string",
        "minLength": 1
       },
       "licence_url": {
        "type": [
         "string",
         "null"
        ],
        "format": "uri",
        "pattern": "^https://[^\\s\\\\/?#@\\u0000-\\u001f\\u007f]+(?:[/?#][^\\s\\\\\\u0000-\\u001f\\u007f]*)?$(?![\\s\\S])"
       },
       "attribution": {
        "type": "string",
        "minLength": 1
       },
       "modification_notice": {
        "type": "string",
        "minLength": 1
       },
       "conditions": {
        "type": "string",
        "minLength": 1
       }
      },
      "additionalProperties": false
     }
    },
    "description": "Source/check clocks remain separate. Unknown source dates and numeric values are explicit null. Numeric values other than dimensionless PUE need units. Retain the source notice and all additional use conditions; no blanket third-party licence is supplied."
   },
   "SiteInspectionLimit": {
    "type": "object",
    "required": [
     "fields",
     "status",
     "scope",
     "source_url",
     "checked_on",
     "source_notice"
    ],
    "additionalProperties": false,
    "properties": {
     "fields": {
      "type": "array",
      "minItems": 1,
      "uniqueItems": true,
      "items": {
       "type": "string",
       "enum": [
        "grid_connection",
        "pue",
        "water_use",
        "chips",
        "coordinates"
       ]
      }
     },
     "status": {
      "type": "string",
      "enum": [
       "not_inspected",
       "not_stated_in_inspected_source",
       "not_admitted"
      ]
     },
     "scope": {
      "type": "string",
      "pattern": "\\S"
     },
     "source_url": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://[^\\s\\\\/?#@\\u0000-\\u001f\\u007f]+(?:[/?#][^\\s\\\\\\u0000-\\u001f\\u007f]*)?$(?![\\s\\S])"
     },
     "checked_on": {
      "type": "string",
      "format": "date",
      "description": "Original bounded inspection scope day, not a build or whole-record review clock."
     },
     "source_notice": {
      "$ref": "#/components/schemas/SiteFieldEvidence/properties/source_notice"
     }
    }
   },
   "DataCentreRecord": {
    "type": "object",
    "required": [
     "grid_connection",
     "pue",
     "water_use",
     "chips",
     "inspection_limits"
    ],
    "properties": {
     "grid_connection": {
      "type": [
       "array",
       "null"
      ],
      "minItems": 1,
      "description": "Separate source-scoped statements, never a total or whole-site status. Null means not recorded.",
      "items": {
       "allOf": [
        {
         "$ref": "#/components/schemas/SiteFieldEvidence"
        },
        {
         "if": {
          "properties": {
           "value_num": {
            "type": "number"
           }
          }
         },
         "then": {
          "properties": {
           "unit": {
            "type": "string",
            "minLength": 1
           }
          }
         }
        }
       ],
       "unevaluatedProperties": false
      }
     },
     "pue": {
      "type": [
       "array",
       "null"
      ],
      "minItems": 1,
      "description": "Separate source-scoped statements, never a total or whole-site status. Null means not recorded.",
      "items": {
       "allOf": [
        {
         "$ref": "#/components/schemas/SiteFieldEvidence"
        },
        {
         "type": "object",
         "required": [
          "kind"
         ],
         "properties": {
          "kind": {
           "type": "string",
           "enum": [
            "design",
            "target",
            "measured"
           ]
          }
         }
        }
       ],
       "unevaluatedProperties": false
      }
     },
     "water_use": {
      "type": [
       "array",
       "null"
      ],
      "minItems": 1,
      "description": "Separate source-scoped statements, never a total or whole-site status. Null means not recorded.",
      "items": {
       "allOf": [
        {
         "$ref": "#/components/schemas/SiteFieldEvidence"
        },
        {
         "type": "object",
         "required": [
          "boundary"
         ],
         "properties": {
          "boundary": {
           "type": "string",
           "minLength": 1,
           "description": "Source measurement boundary, period and included/excluded water uses, without inferred comparability."
          }
         }
        },
        {
         "if": {
          "properties": {
           "value_num": {
            "type": "number"
           }
          }
         },
         "then": {
          "properties": {
           "unit": {
            "type": "string",
            "minLength": 1
           }
          }
         }
        }
       ],
       "unevaluatedProperties": false
      }
     },
     "chips": {
      "type": [
       "array",
       "null"
      ],
      "minItems": 1,
      "description": "Separate source-scoped statements, never a total or whole-site status. Null means not recorded.",
      "items": {
       "allOf": [
        {
         "$ref": "#/components/schemas/SiteFieldEvidence"
        },
        {
         "if": {
          "properties": {
           "value_num": {
            "type": "number"
           }
          }
         },
         "then": {
          "properties": {
           "unit": {
            "type": "string",
            "minLength": 1
           }
          }
         }
        }
       ],
       "unevaluatedProperties": false
      }
     },
     "inspection_limits": {
      "type": [
       "array",
       "null"
      ],
      "minItems": 1,
      "description": "Bounded inspection metadata only; never field coverage, proof of application-wide absence or a refreshed whole-record check.",
      "items": {
       "$ref": "#/components/schemas/SiteInspectionLimit"
      }
     }
    },
    "additionalProperties": true
   },
   "DataEnvelope": {
    "type": "object",
    "required": [
     "dataset",
     "version",
     "generated_on",
     "licence",
     "licence_url",
     "licence_scope",
     "source_terms_status",
     "attribution",
     "note",
     "records"
    ],
    "properties": {
     "dataset": {
      "type": "string"
     },
     "version": {
      "type": "string"
     },
     "generated_on": {
      "type": [
       "string",
       "null"
      ],
      "format": "date",
      "description": "Latest recorded check day, or the documented sample accounting-review day for evidence-samples; never a build clock. Null when no recorded check or accounting review exists."
     },
     "licence": {
      "type": "string"
     },
     "licence_url": {
      "type": "string",
      "format": "uri"
     },
     "licence_scope": {
      "type": "string"
     },
     "source_terms_status": {
      "type": "string"
     },
     "attribution": {
      "type": "string"
     },
     "note": {
      "type": "string"
     },
     "records": {
      "type": "array",
      "items": {
       "type": "object",
       "additionalProperties": true
      }
     }
    },
    "additionalProperties": false,
    "allOf": [
     {
      "if": {
       "properties": {
        "dataset": {
         "const": "data-centre-records"
        }
       }
      },
      "then": {
       "properties": {
        "records": {
         "type": "array",
         "items": {
          "$ref": "#/components/schemas/DataCentreRecord"
         }
        }
       }
      }
     }
    ]
   }
  }
 },
 "externalDocs": {
  "description": "Data downloads, scope and attribution",
  "url": "https://computefinder.net/data"
 }
}