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