from __future__ import annotations

import json
from pathlib import Path

REQUIRED = {"model_id", "purpose", "owner", "inputs", "outputs", "assumptions", "linked_requirements", "configuration"}


def main() -> None:
    models = json.loads(Path("data/model_register.json").read_text(encoding="utf-8"))
    problems: list[str] = []
    for model in models:
        missing = sorted(field for field in REQUIRED if not model.get(field))
        if missing:
            problems.append(f"{model.get('model_id', '<unknown>')}: missing {missing}")
        if len(model.get("assumptions", [])) < 2:
            problems.append(f"{model.get('model_id')}: fewer than two assumptions")
    linked = {
        req
        for model in models
        for req in model.get("linked_requirements", [])
    }
    print("problems =", problems)
    print("linked_requirements =", sorted(linked))
    assert problems == []
    assert linked == {"REQ-LOAD", "REQ-MASS"}


if __name__ == "__main__":
    main()
