llm/oai: make Model a value type
diff --git a/cmd/sketch/main.go b/cmd/sketch/main.go
index 7388907..f1b1887 100644
--- a/cmd/sketch/main.go
+++ b/cmd/sketch/main.go
@@ -926,7 +926,7 @@
 	}
 
 	model := oai.ModelByUserName(flags.modelName)
-	if model == nil {
+	if model.IsZero() {
 		return nil, fmt.Errorf("unknown model '%s', use -list-models to see available models", flags.modelName)
 	}
 
@@ -938,7 +938,7 @@
 
 	return &oai.Service{
 		HTTPC:   client,
-		Model:   *model,
+		Model:   model,
 		APIKey:  apiKey,
 		DumpLLM: flags.dumpLLM,
 	}, nil
diff --git a/llm/oai/oai.go b/llm/oai/oai.go
index e104c7f..b7a371c 100644
--- a/llm/oai/oai.go
+++ b/llm/oai/oai.go
@@ -262,13 +262,17 @@
 
 // ModelByUserName returns a model by its user-friendly name.
 // Returns nil if no model with the given name is found.
-func ModelByUserName(name string) *Model {
+func ModelByUserName(name string) Model {
 	for _, model := range ModelsRegistry {
 		if model.UserName == name {
-			return &model
+			return model
 		}
 	}
-	return nil
+	return Model{}
+}
+
+func (m Model) IsZero() bool {
+	return m == Model{}
 }
 
 var (