Awesome Reviewers

Always treat nullable/optional fields and parsed payloads as untrusted at boundaries: normalize None/missing values to the expected type before iterating/indexing, validate the parsed shape immediately (fail fast with a clear error), and explicitly handle sentinel/unknown states instead of “silently succeeding” with wrong assumptions.

Apply this as a local rule:

Example (list field that may be absent, null, or contain bad entries):

from collections import defaultdict
from typing import Any

def index_tags(dataset: dict[str, Any]) -> dict[str, list[int]]:
    tag_index: dict[str, list[int]] = defaultdict(list)
    tags = dataset.get('Tags') or []  # handles missing or null
    if not isinstance(tags, list):
        raise ValueError("Tags must be a list when present")

    for tag in tags:
        if not isinstance(tag, str):
            continue  # or raise, depending on policy
        tag_index[tag.lower()].append(0)

    return tag_index

Example (parsed payload root validation):

def require_mapping(obj: object) -> dict:
    if not isinstance(obj, dict):
        raise ValueError(f"Expected a mapping at the root, got {type(obj).__name__}")
    return obj

spec = require_mapping(parsed_spec)  # only then do spec['openapi'] checks

Outcome: fewer crashes on null, fewer opaque downstream TypeErrors, and safer behavior when inputs are missing or unresolved.