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


def placard_lines(text: str, width: int) -> list:
    if not isinstance(text, str) or not text:
        raise ValueError("Invalid text: must be a non-empty string")
    if not isinstance(width, int) or width <= 0:
        raise ValueError("Invalid width: must be a positive integer")
    if text.startswith(" ") or text.endswith(" ") or "  " in text:
        raise ValueError("Invalid text: must not start or end with a space or two spaces")
    if max(len(word) for word in text.split(" ")) > width:
        raise ValueError("Invalid text: word is wider than the placard")
    
    lines = []
    line = ""
    for word in text.split(" "):
        if line == "":
            line = word
        elif len(line) + len(word) + 1 > width:
            lines.append(line)
            line = word
        else:
            line = line + " " + word
    lines.append(line)
    return lines
```