#!/usr/bin/env python3
"""Inspect an OptionAPI.com local synthetic chain; never submits orders."""
from __future__ import annotations
import argparse
import json
from pathlib import Path

def main() -> int:
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument("file", type=Path, help="Path to sample-chain.json")
    args = parser.parse_args()
    try:
        data = json.loads(args.file.read_text(encoding="utf-8"))
        if not isinstance(data, dict) or data.get("data_mode") != "synthetic":
            raise ValueError("Expected an explicitly synthetic dataset")
        records = data.get("contracts")
        if not isinstance(records, list):
            raise ValueError("Expected a contracts array")
        for record in records:
            if not isinstance(record, dict):
                raise ValueError("Each contract must be an object")
            bid, ask = record.get("bid"), record.get("ask")
            numeric = all(isinstance(x, (int, float)) and not isinstance(x, bool) for x in (bid, ask))
            spread = f"{ask - bid:.2f}" if numeric and ask >= bid else "unavailable"
            print(f"{record.get('contract_id', 'UNKNOWN')} | spread: {spread}")
    except (OSError, ValueError, TypeError) as exc:
        parser.exit(1, f"Error: {exc}\n")
    return 0

if __name__ == "__main__":
    raise SystemExit(main())
