```python
"""Lay a notice's text into placard lines."""


def placard_lines(text: str, width: int) -> list:
    """Lay a notice's text into placard lines with validation."""
    if not isinstance(text, str):
        raise ValueError("text must be a string")
    if not isinstance(width, int) or isinstance(width, bool):
        raise ValueError("width must be an integer")
    if width <= 0:
        raise ValueError("width must be a positive integer")
    if len(text) == 0:
        raise ValueError("text must be a non-empty string")
    if text.startswith(" "):
        raise ValueError("text must not have a leading space")
    if text.endswith(" "):
        raise ValueError("text must not have a trailing space")
    if "  " in text:
        raise ValueError("text must not have two spaces in a row")

    words = text.split(" ")
    lines = []
    current_line = ""

    for word in words:
        if len(word) > width:
            raise ValueError("a word is wider than the placard")

        if current_line == "":
            current_line = word
        elif len(current_line) + 1 + len(word) <= width:
            current_line = current_line + " " + word
        else:
            lines.append(current_line)
            current_line = word

    if current_line:
        lines.append(current_line)

    return lines
```