```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):
        char = template[placeholder_index]
        
        if char == "{":
            placeholder_name = ""
            
            # Find the closing brace
            for i in range(placeholder_index + 1, len(template)):
                if template[i] == "}":
                    placeholder_name += template[placeholder_index:i+1]
                    break
            
            if not placeholder_name:
                raise ValueError("fill_template expects a valid placeholder")
            
            # Check if the placeholder name is empty or contains invalid characters
            if not placeholder_name.isalnum():
                raise ValueError("fill_template expects a valid placeholder name")
            
            # Replace the placeholder with its value from the mapping
            if placeholder_name in values:
                result += str(values[placeholder_name])
            else:
                raise ValueError(f"fill_template: unknown placeholder '{placeholder_name}'")
        else:
            result += char
        
        placeholder_index += 1
    
    return result
```