diff --git a/pkg/schema/field/object.go b/pkg/schema/field/object.go
index d86aa2352544f68ea837152ec6799677f4624d1a..83d234cd26041b9448d4465665e74787aa41666a 100644
--- a/pkg/schema/field/object.go
+++ b/pkg/schema/field/object.go
@@ -12,7 +12,7 @@ import (
 )
 
 var objectType = &ObjectType{}
-var isValidName = regexp.MustCompile(`^[a-zA-Z][\w]*$`).MatchString
+var isValidName = regexp.MustCompile(`^[a-zA-Z][\w-]*$`).MatchString
 
 type ObjectParameters struct {
 	Inline bool              `json:"inline"`
@@ -219,7 +219,7 @@ func (ObjectType) ValidateParameters(p Parameters) error {
 		for k := range params.Fields {
 			if !isValidName(k) {
 				return fmt.Errorf("field name '%s' must be in Latin, must not start with a number, "+
-					"must not contain spaces - only characters '_' can be used", k)
+					"must not contain spaces - only characters '_' or '-' can be used", k)
 			}
 		}
 	}
diff --git a/pkg/schema/field/object_test.go b/pkg/schema/field/object_test.go
index 2ada594bcdeba09fab5dfcc95eb947e2028766d9..0dc179a7269207b49abff15acc06aa16b3fea412 100644
--- a/pkg/schema/field/object_test.go
+++ b/pkg/schema/field/object_test.go
@@ -199,7 +199,7 @@ func TestFieldNameValidate(t *testing.T) {
 		{
 			"Contains hyphen",
 			"field-name",
-			true,
+			false,
 		},
 		{
 			"Contains underscore (success)",