```python
def fill_template(template: str, values: dict) -> str:
    if not isinstance(template, str):
        raise ValueError("fill_template expects a string template")
    result = ""
    placeholder_index = 0
    while placeholder_index < len(template):
        if template[placeholder_index] == '{':
            placeholder_end = template.index('}', placeholder_index + 1)
            placeholder_name = template[placeholder_index + 1:placeholder_end]
            if not placeholder_name or not placeholder_name.isalnum():
                raise ValueError(f"Invalid placeholder name '{placeholder_name}'")
            if placeholder_name not in values:
                raise ValueError(f"Unknown placeholder '{placeholder_name}'")
            result += str(values[placeholder_name])
            placeholder_index = placeholder_end
        else:
            result += template[placeholder_index]
            placeholder_index += 1
    return result
```