diff --git a/id/id_test.go b/id/id_test.go
index 9fb9fed14f21e9e65f56657d29d2ac49f4eca8a3..1a72840652db54bce9451c57358e2aa109651da4 100644
--- a/id/id_test.go
+++ b/id/id_test.go
@@ -14,27 +14,27 @@ func Test_ParseID(t *testing.T) {
 		wantError bool
 	}{
 		{
-			name:   Service,
+			name:   "ServiceID",
 			id:     "/services/<service_id>",
 			result: &ID{Descriptor: &ServiceID{ServiceID: "<service_id>"}},
 		},
 		{
-			name:   User,
+			name:   "UserID",
 			id:     "/users/<user_id>",
 			result: &ID{Descriptor: &UserID{UserID: "<user_id>"}},
 		},
 		{
-			name:   Organization,
+			name:   "OrganizationID",
 			id:     "/orgs/<org_id>",
 			result: &ID{Descriptor: &OrganizationID{OrganizationID: "<org_id>"}},
 		},
 		{
-			name:   Space,
+			name:   "SpaceID",
 			id:     "/spaces/<space_id>",
 			result: &ID{Descriptor: &SpaceID{SpaceID: "<space_id>"}},
 		},
 		{
-			name: Client,
+			name: "ClientID",
 			id:   "/spaces/<space_id>/clients/<client_id>",
 			result: &ID{Descriptor: &ClientID{
 				SpaceID:  SpaceID{SpaceID: "<space_id>"},
@@ -42,7 +42,7 @@ func Test_ParseID(t *testing.T) {
 			}},
 		},
 		{
-			name: Role,
+			name: "RoleID",
 			id:   "/spaces/<space_id>/roles/<role_id>",
 			result: &ID{Descriptor: &RoleID{
 				SpaceID: SpaceID{SpaceID: "<space_id>"},
@@ -50,7 +50,7 @@ func Test_ParseID(t *testing.T) {
 			}},
 		},
 		{
-			name: Environment,
+			name: "EnvironmentID",
 			id:   "/spaces/<space_id>/envs/<env_id>",
 			result: &ID{Descriptor: &EnvironmentID{
 				SpaceID:       SpaceID{SpaceID: "<space_id>"},
@@ -58,7 +58,7 @@ func Test_ParseID(t *testing.T) {
 			}},
 		},
 		{
-			name: Collection,
+			name: "CollectionID",
 			id:   "/spaces/<space_id>/envs/<env_id>/cols/<collection_id>",
 			result: &ID{Descriptor: &CollectionID{
 				EnvironmentID: EnvironmentID{
@@ -69,7 +69,7 @@ func Test_ParseID(t *testing.T) {
 			}},
 		},
 		{
-			name: Schema,
+			name: "SchemaID",
 			id:   "/spaces/<space_id>/envs/<env_id>/schema/<collection_id>",
 			result: &ID{Descriptor: &SchemaID{
 				EnvironmentID: EnvironmentID{
@@ -80,7 +80,7 @@ func Test_ParseID(t *testing.T) {
 			}},
 		},
 		{
-			name: Item,
+			name: "ItemID",
 			id:   "/spaces/<space_id>/envs/<env_id>/cols/<collection_id>/items/<item_id>",
 			result: &ID{Descriptor: &ItemID{
 				CollectionID: CollectionID{
@@ -94,7 +94,7 @@ func Test_ParseID(t *testing.T) {
 			}},
 		},
 		{
-			name: Revision,
+			name: "RevisionID",
 			id:   "/spaces/<space_id>/envs/<env_id>/cols/<collection_id>/items/<item_id>/revs/<rev_id>",
 			result: &ID{Descriptor: &RevisionID{
 				ItemID: ItemID{
@@ -111,7 +111,7 @@ func Test_ParseID(t *testing.T) {
 			}},
 		},
 		{
-			name: Field,
+			name: "FieldID",
 			id:   "/spaces/<space_id>/envs/<env_id>/cols/<collection_id>/items/<item_id>/fields/<field_name>",
 			result: &ID{Descriptor: &FieldID{
 				ItemID: ItemID{
@@ -175,66 +175,48 @@ func Test_ParseID(t *testing.T) {
 func Test_Map(t *testing.T) {
 	tests := []struct {
 		name string
-		id   ID
-		from map[string]any
-		to   ID
+		id   *ID
 	}{
 		{
-			name: Service,
-			id:   ID{Descriptor: &ServiceID{}},
-			from: map[string]any{"service_id": "<service_id>"},
-			to:   ID{Descriptor: &ServiceID{ServiceID: "<service_id>"}},
+			name: "ServiceID",
+			id:   &ID{Descriptor: &ServiceID{ServiceID: "<service_id>"}},
 		},
 		{
-			name: User,
-			id:   ID{Descriptor: &UserID{}},
-			from: map[string]any{"user_id": "<user_id>"},
-			to:   ID{Descriptor: &UserID{UserID: "<user_id>"}},
+			name: "UserID",
+			id:   &ID{Descriptor: &UserID{UserID: "<user_id>"}},
 		},
 		{
-			name: Organization,
-			id:   ID{Descriptor: &OrganizationID{}},
-			from: map[string]any{"organization_id": "<org_id>"},
-			to:   ID{Descriptor: &OrganizationID{OrganizationID: "<org_id>"}},
+			name: "OrganizationID",
+			id:   &ID{Descriptor: &OrganizationID{OrganizationID: "<org_id>"}},
 		},
 		{
-			name: Space,
-			id:   ID{Descriptor: &SpaceID{}},
-			from: map[string]any{"space_id": "<space_id>"},
-			to:   ID{Descriptor: &SpaceID{SpaceID: "<space_id>"}},
+			name: "SpaceID",
+			id:   &ID{Descriptor: &SpaceID{SpaceID: "<space_id>"}},
 		},
 		{
-			name: Client,
-			id:   ID{Descriptor: &ClientID{}},
-			from: map[string]any{"space_id": "<space_id>", "client_id": "<client_id>"},
-			to: ID{Descriptor: &ClientID{
+			name: "ClientID",
+			id: &ID{Descriptor: &ClientID{
 				SpaceID:  SpaceID{SpaceID: "<space_id>"},
 				ClientID: "<client_id>",
 			}},
 		},
 		{
-			name: Role,
-			id:   ID{Descriptor: &RoleID{}},
-			from: map[string]any{"space_id": "<space_id>", "role_id": "<role_id>"},
-			to: ID{Descriptor: &RoleID{
+			name: "RoleID",
+			id: &ID{Descriptor: &RoleID{
 				SpaceID: SpaceID{SpaceID: "<space_id>"},
 				RoleID:  "<role_id>",
 			}},
 		},
 		{
-			name: Environment,
-			id:   ID{Descriptor: &EnvironmentID{}},
-			from: map[string]any{"space_id": "<space_id>", "env_id": "<env_id>"},
-			to: ID{Descriptor: &EnvironmentID{
+			name: "EnvironmentID",
+			id: &ID{Descriptor: &EnvironmentID{
 				SpaceID:       SpaceID{SpaceID: "<space_id>"},
 				EnvironmentID: "<env_id>",
 			}},
 		},
 		{
-			name: Collection,
-			id:   ID{Descriptor: &CollectionID{}},
-			from: map[string]any{"space_id": "<space_id>", "env_id": "<env_id>", "col_id": "<collection_id>"},
-			to: ID{Descriptor: &CollectionID{
+			name: "CollectionID",
+			id: &ID{Descriptor: &CollectionID{
 				EnvironmentID: EnvironmentID{
 					SpaceID:       SpaceID{SpaceID: "<space_id>"},
 					EnvironmentID: "<env_id>",
@@ -243,10 +225,8 @@ func Test_Map(t *testing.T) {
 			}},
 		},
 		{
-			name: Schema,
-			id:   ID{Descriptor: &SchemaID{}},
-			from: map[string]any{"space_id": "<space_id>", "env_id": "<env_id>", "collection_id": "<collection_id>"},
-			to: ID{Descriptor: &SchemaID{
+			name: "Schema ID",
+			id: &ID{Descriptor: &SchemaID{
 				EnvironmentID: EnvironmentID{
 					SpaceID:       SpaceID{SpaceID: "<space_id>"},
 					EnvironmentID: "<env_id>",
@@ -255,10 +235,8 @@ func Test_Map(t *testing.T) {
 			}},
 		},
 		{
-			name: Item,
-			id:   ID{Descriptor: &ItemID{}},
-			from: map[string]any{"space_id": "<space_id>", "env_id": "<env_id>", "col_id": "<collection_id>", "item_id": "<item_id>"},
-			to: ID{Descriptor: &ItemID{
+			name: "ItemID",
+			id: &ID{Descriptor: &ItemID{
 				CollectionID: CollectionID{
 					EnvironmentID: EnvironmentID{
 						SpaceID:       SpaceID{SpaceID: "<space_id>"},
@@ -270,10 +248,8 @@ func Test_Map(t *testing.T) {
 			}},
 		},
 		{
-			name: Revision,
-			id:   ID{Descriptor: &RevisionID{}},
-			from: map[string]any{"space_id": "<space_id>", "env_id": "<env_id>", "col_id": "<collection_id>", "item_id": "<item_id>", "rev_id": "<rev_id>"},
-			to: ID{Descriptor: &RevisionID{
+			name: "RevisionID",
+			id: &ID{Descriptor: &RevisionID{
 				ItemID: ItemID{
 					CollectionID: CollectionID{
 						EnvironmentID: EnvironmentID{
@@ -288,10 +264,8 @@ func Test_Map(t *testing.T) {
 			}},
 		},
 		{
-			name: Field,
-			id:   ID{Descriptor: &FieldID{}},
-			from: map[string]any{"space_id": "<space_id>", "env_id": "<env_id>", "col_id": "<collection_id>", "item_id": "<item_id>", "field_name": "<field_name>"},
-			to: ID{Descriptor: &FieldID{
+			name: "FieldID",
+			id: &ID{Descriptor: &FieldID{
 				ItemID: ItemID{
 					CollectionID: CollectionID{
 						EnvironmentID: EnvironmentID{
@@ -309,9 +283,9 @@ func Test_Map(t *testing.T) {
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
 			v := tt.id
-			require.NoError(t, v.FromMap(tt.from))
-			require.Equal(t, tt.to, v)
-			require.Equal(t, v.ToMap(), tt.from)
+			_ = v.FromMap(tt.id.ToMap())
+			require.Equal(t, tt.id, v)
+			require.Equal(t, v.ToMap(), tt.id.ToMap())
 		})
 	}
 }
diff --git a/id/json_test.go b/id/json_test.go
index 83a444d1ebcbd6f2ed069c931d05a0dbb147e7a1..fac8151a552369ecf817368ebdd8c1a1dca2574b 100644
--- a/id/json_test.go
+++ b/id/json_test.go
@@ -11,73 +11,73 @@ import (
 func TestID_MarshalJSON(t *testing.T) {
 	tests := []struct {
 		name string
-		ID   ID
+		id   ID
 		want string
 	}{
 		{
-			name: Organization,
-			ID:   ID{Descriptor: &OrganizationID{OrganizationID: "1"}},
+			name: "OrganizationID",
+			id:   ID{Descriptor: &OrganizationID{OrganizationID: "1"}},
 			want: `"/orgs/1"`,
 		},
 		{
-			name: User,
-			ID:   ID{Descriptor: &UserID{UserID: "1"}},
+			name: "UserID",
+			id:   ID{Descriptor: &UserID{UserID: "1"}},
 			want: `"/users/1"`,
 		},
 		{
-			name: Service,
-			ID:   ID{Descriptor: &ServiceID{ServiceID: "1"}},
+			name: "ServiceID",
+			id:   ID{Descriptor: &ServiceID{ServiceID: "1"}},
 			want: `"/services/1"`,
 		},
 		{
-			name: Space,
-			ID:   ID{Descriptor: &SpaceID{SpaceID: "1"}},
+			name: "SpaceID",
+			id:   ID{Descriptor: &SpaceID{SpaceID: "1"}},
 			want: `"/spaces/1"`,
 		},
 		{
-			name: Environment,
-			ID:   ID{Descriptor: &EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}},
+			name: "EnvironmentID",
+			id:   ID{Descriptor: &EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}},
 			want: `"/spaces/1/envs/1"`,
 		},
 		{
-			name: Client,
-			ID:   ID{Descriptor: &ClientID{ClientID: "1", SpaceID: SpaceID{SpaceID: "1"}}},
+			name: "ClientID",
+			id:   ID{Descriptor: &ClientID{ClientID: "1", SpaceID: SpaceID{SpaceID: "1"}}},
 			want: `"/spaces/1/clients/1"`,
 		},
 		{
-			name: Role,
-			ID:   ID{Descriptor: &RoleID{RoleID: "1", SpaceID: SpaceID{SpaceID: "1"}}},
+			name: "RoleID",
+			id:   ID{Descriptor: &RoleID{RoleID: "1", SpaceID: SpaceID{SpaceID: "1"}}},
 			want: `"/spaces/1/roles/1"`,
 		},
 		{
-			name: Collection,
-			ID:   ID{Descriptor: &CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}},
+			name: "CollectionID",
+			id:   ID{Descriptor: &CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}},
 			want: `"/spaces/1/envs/1/cols/1"`,
 		},
 		{
-			name: Schema,
-			ID:   ID{Descriptor: &SchemaID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}},
+			name: "SchemaID",
+			id:   ID{Descriptor: &SchemaID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}},
 			want: `"/spaces/1/envs/1/schema/1"`,
 		},
 		{
-			name: Item,
-			ID:   ID{Descriptor: &ItemID{ItemID: "1", CollectionID: CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}},
+			name: "ItemID",
+			id:   ID{Descriptor: &ItemID{ItemID: "1", CollectionID: CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}},
 			want: `"/spaces/1/envs/1/cols/1/items/1"`,
 		},
 		{
-			name: Revision,
-			ID:   ID{Descriptor: &RevisionID{RevisionID: "1", ItemID: ItemID{ItemID: "1", CollectionID: CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}}},
+			name: "RevisionID",
+			id:   ID{Descriptor: &RevisionID{RevisionID: "1", ItemID: ItemID{ItemID: "1", CollectionID: CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}}},
 			want: `"/spaces/1/envs/1/cols/1/items/1/revs/1"`,
 		},
 		{
-			name: Field,
-			ID:   ID{Descriptor: &FieldID{FieldName: "1", ItemID: ItemID{ItemID: "1", CollectionID: CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}}},
+			name: "FieldID",
+			id:   ID{Descriptor: &FieldID{FieldName: "1", ItemID: ItemID{ItemID: "1", CollectionID: CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}}},
 			want: `"/spaces/1/envs/1/cols/1/items/1/fields/1"`,
 		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
-			got, err := jsoniter.Marshal(&tt.ID)
+			got, err := jsoniter.Marshal(&tt.id)
 			require.NoError(t, err)
 			assert.Equal(t, tt.want, string(got))
 		})
@@ -91,62 +91,62 @@ func TestID_UnmarshalJSON(t *testing.T) {
 		b    []byte
 	}{
 		{
-			id:   Organization,
+			id:   "OrganizationID",
 			want: ID{Descriptor: &OrganizationID{OrganizationID: "1"}},
 			b:    []byte(`"/orgs/1"`),
 		},
 		{
-			id:   User,
+			id:   "UserID",
 			want: ID{Descriptor: &UserID{UserID: "1"}},
 			b:    []byte(`"/users/1"`),
 		},
 		{
-			id:   Service,
+			id:   "ServiceID",
 			want: ID{Descriptor: &ServiceID{ServiceID: "1"}},
 			b:    []byte(`"/services/1"`),
 		},
 		{
-			id:   Space,
+			id:   "SpaceID",
 			want: ID{Descriptor: &SpaceID{SpaceID: "1"}},
 			b:    []byte(`"/spaces/1"`),
 		},
 		{
-			id:   Environment,
+			id:   "EnvironmentID",
 			want: ID{Descriptor: &EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}},
 			b:    []byte(`"/spaces/1/envs/1"`),
 		},
 		{
-			id:   Client,
+			id:   "ClientID",
 			want: ID{Descriptor: &ClientID{ClientID: "1", SpaceID: SpaceID{SpaceID: "1"}}},
 			b:    []byte(`"/spaces/1/clients/1"`),
 		},
 		{
-			id:   Role,
+			id:   "RoleID",
 			want: ID{Descriptor: &RoleID{RoleID: "1", SpaceID: SpaceID{SpaceID: "1"}}},
 			b:    []byte(`"/spaces/1/roles/1"`),
 		},
 		{
-			id:   Collection,
+			id:   "CollectionID",
 			want: ID{Descriptor: &CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}},
 			b:    []byte(`"/spaces/1/envs/1/cols/1"`),
 		},
 		{
-			id:   Schema,
+			id:   "SchemaID",
 			want: ID{Descriptor: &SchemaID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}},
 			b:    []byte(`"/spaces/1/envs/1/schema/1"`),
 		},
 		{
-			id:   Item,
+			id:   "ItemID",
 			want: ID{Descriptor: &ItemID{ItemID: "1", CollectionID: CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}},
 			b:    []byte(`"/spaces/1/envs/1/cols/1/items/1"`),
 		},
 		{
-			id:   Revision,
+			id:   "RevisionID",
 			want: ID{Descriptor: &RevisionID{RevisionID: "1", ItemID: ItemID{ItemID: "1", CollectionID: CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}}},
 			b:    []byte(`"/spaces/1/envs/1/cols/1/items/1/revs/1"`),
 		},
 		{
-			id:   Field,
+			id:   "FieldID",
 			want: ID{Descriptor: &FieldID{FieldName: "1", ItemID: ItemID{ItemID: "1", CollectionID: CollectionID{CollectionID: "1", EnvironmentID: EnvironmentID{EnvironmentID: "1", SpaceID: SpaceID{SpaceID: "1"}}}}}},
 			b:    []byte(`"/spaces/1/envs/1/cols/1/items/1/fields/1"`),
 		},