diff --git a/perxis-proto b/perxis-proto
index 95aca241a0cb17f5e1e9f584b1993bf7b933588e..0aed1eecb2c55f4b0ec70a01f3cb7e12e7dc0bcb 160000
--- a/perxis-proto
+++ b/perxis-proto
@@ -1 +1 @@
-Subproject commit 95aca241a0cb17f5e1e9f584b1993bf7b933588e
+Subproject commit 0aed1eecb2c55f4b0ec70a01f3cb7e12e7dc0bcb
diff --git a/pkg/schema/field/object.go b/pkg/schema/field/object.go
index ca3fe44889f3540bb2477691150a9c8588b4f55c..3216e0dbe02cd1ccb053a0c65a329cce8362b100 100644
--- a/pkg/schema/field/object.go
+++ b/pkg/schema/field/object.go
@@ -27,10 +27,10 @@ type ObjectParameters struct {
 
 func (ObjectParameters) Type() Type { return objectType }
 
-func (p *ObjectParameters) Clone(reset bool) Parameters {
+func (p ObjectParameters) Clone(reset bool) Parameters {
 	if reset {
 		p.Fields = nil
-		return p
+		return &p
 	}
 
 	flds := make(map[string]*Field)
@@ -39,10 +39,10 @@ func (p *ObjectParameters) Clone(reset bool) Parameters {
 	}
 
 	p.Fields = flds
-	return p
+	return &p
 }
 
-func (p *ObjectParameters) GetField(f *Field, name string) *Field {
+func (p ObjectParameters) GetField(f *Field, name string) *Field {
 	// Поиск поля в текущем объекте
 	if fld, ok := p.Fields[name]; ok {
 		return f.SetFieldState(name, fld)
@@ -63,7 +63,7 @@ func (p *ObjectParameters) GetField(f *Field, name string) *Field {
 	return nil
 }
 
-func (p *ObjectParameters) ListFields(f *Field, filterFunc ...FieldFilterFunc) []*Field {
+func (p ObjectParameters) ListFields(f *Field, filterFunc ...FieldFilterFunc) []*Field {
 	var fields []*Field
 	for k, fld := range p.Fields {
 		f.SetFieldState(k, fld)
@@ -76,7 +76,7 @@ func (p *ObjectParameters) ListFields(f *Field, filterFunc ...FieldFilterFunc) [
 }
 
 // IsInlineObject определяет являться ли поле name инлайн объектом
-func (p *ObjectParameters) IsInlineObject(name string) bool {
+func (p ObjectParameters) IsInlineObject(name string) bool {
 	fld, ok := p.Fields[name]
 	if !ok {
 		return false
@@ -92,13 +92,13 @@ func (p *ObjectParameters) IsInlineObject(name string) bool {
 // GetFields возвращает поля объекта.
 // Указание withInline позволяет так же включить поля указанные во вложенных inline объектам, и получиться поля для
 // всех данных относящихся к текущему объекту.
-func (p *ObjectParameters) GetFields(withInline bool) map[string]*Field {
+func (p ObjectParameters) GetFields(withInline bool) map[string]*Field {
 	fields := make(map[string]*Field)
 	p.getFields(withInline, fields)
 	return fields
 }
 
-func (p *ObjectParameters) getFields(withInline bool, fields map[string]*Field) {
+func (p ObjectParameters) getFields(withInline bool, fields map[string]*Field) {
 	for k, f := range p.Fields {
 		if obj, ok := f.Params.(*ObjectParameters); ok && obj.Inline {
 			obj.getFields(withInline, fields)
@@ -135,7 +135,7 @@ func (p *ObjectParameters) Merge(parameters Parameters) error {
 // МоngoDB поддерживает индексацию обьектов(Embedded documents),
 // но при трансляции perxis обьектов map[string]interface{} драйвер транслирует в BSON.M, а не BSON.D
 // для правильной работы индексов необходимо соблюдение порядка иначе не будет работать уникальность
-func (p *ObjectParameters) GetMongoIndexes(path string, f *Field) []mongo.IndexModel {
+func (p ObjectParameters) GetMongoIndexes(path string, f *Field) []mongo.IndexModel {
 	if !f.Indexed && !f.Unique {
 		return nil
 	}
@@ -154,7 +154,7 @@ func (p *ObjectParameters) GetMongoIndexes(path string, f *Field) []mongo.IndexM
 		obj.Options.SetPartialFilterExpression(partial)
 	}
 
-	flds := p.ListFields(f, func(fld *Field) bool { return true })
+	flds := p.ListFields(f, func(_ *Field) bool { return true })
 	// фиксируем порядок полей - на всякий случай
 	slices.SortFunc(flds, func(a, b *Field) int {
 		return cmp.Compare(a.State.DataPath, b.State.DataPath)