from jitx.layerindex import Side
from jitx.run.runtime import SyncRuntimeDesign


def main(rd: SyncRuntimeDesign) -> dict[str, object]:
    rd.capture()
    print("Place circuit.u1 at (10, 5) mm, 90 degrees, top side")
    placed = rd.layout.place(rd.root.circuit.u1, (10, 5), 90, on=Side.Top)
    if not rd.layout.sync(timeout=30):
        raise TimeoutError("Placement applied; background work is still pending")
    rd.capture()
    report = rd.issues()
    return {
        "placement": str(placed),
        "checks_complete": report.complete,
        "error_count": len(report.errors),
        "issues": report.text(),
    }
