```python
def stamp_build(major: int, minor: int, patch: int) -> int:
    if not isinstance(major, int) or major < 0:
        raise ValueError("Major must be a non-negative integer")
    if not isinstance(minor, int) or minor < 0:
        raise ValueError("Minor must be a non-negative integer")
    if not isinstance(patch, int) or patch < 0:
        raise ValueError("Patch must be a non-negative integer")
    if major == 1000 or minor == 1000 or patch == 1000:
        raise ValueError("Major, minor, and patch cannot be 1000 or more")
    return patch + 1000 * minor + 1000000 * major
```