```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.strip():
        raise ValueError("Text must be a non-empty string without leading/trailing spaces.")
    if not isinstance(width, int) or width <= 0:
        raise ValueError("Width must be a positive integer.")

    lines = []
    line = ""
    word_index = 0

    while word_index < len(text):
        word = text[word_index]
        if word_index == len(text) - 1 or word_index == len(text) - 2 or word_index == width - 1:
            line += word
        elif len(line) + len(word) <= width:
            line += " " + word
        else:
            lines.append(line)
            line = word
        word_index += 1

    lines.append(line)
    return lines
```