```python
def stamp_build(major: int, minor: int, patch: int) -> int:
    if not all(isinstance(x, int) for x in [major, minor, patch]):
        raise ValueError("All components must be integers.")
    if any(x < 0 for x in [major, minor, patch]):
        raise ValueError("All components must be non-negative.")
    if any(x >= 1000 for x in [minor, patch]):
        raise ValueError("Minor and patch components must be less than 1000.")
    return major * 1_000_000 + minor * 1_000 + patch
```