ServiceDescriptors

ServiceDescriptors

#Overview

name: ServiceDescriptors

The value of this variable can be defined or overridden in .ini config files. 4 .ini config files referencing this setting variable.

It is referenced in 42 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of ServiceDescriptors is to define and configure service descriptors within the Online Services system of Unreal Engine 5. Service descriptors are used to describe the attributes and capabilities of various online services.

ServiceDescriptors is primarily used in the Online Services module and related plugins. It is part of the schema configuration system, which is responsible for defining the structure and properties of online services.

The value of this variable is typically set in the schema configuration process. It is populated with FSchemaServiceDescriptor objects, which contain information about service IDs and associated attribute IDs.

ServiceDescriptors interacts closely with other schema-related variables, such as ServiceAttributeDescriptors, which define the attributes associated with each service.

Developers must be aware that:

  1. Each service descriptor must have a unique ID.
  2. The attribute IDs referenced in a service descriptor must be defined in the ServiceAttributeDescriptors.
  3. The configuration of service descriptors affects the overall structure and functionality of online services.

Best practices when using this variable include:

  1. Ensuring all required service descriptors are properly defined before parsing the schema configuration.
  2. Validating that all referenced attribute IDs exist and are correctly configured.
  3. Maintaining consistency between service descriptors and their associated attributes across different schema versions.
  4. Using meaningful and consistent naming conventions for service and attribute IDs.
  5. Regularly reviewing and updating service descriptors to reflect changes in online service requirements.

#Setting Variables

#References In INI files

Location: <Workspace>/Engine/Plugins/Online/OnlineServicesEOSGS/Config/Engine.ini:2, section: [OnlineServices.EOS.Lobbies]

Location: <Workspace>/Engine/Plugins/Online/OnlineServicesEOSGS/Config/Engine.ini:3, section: [OnlineServices.EOS.Lobbies]

Location: <Workspace>/Engine/Plugins/Online/OnlineServicesNull/Config/Engine.ini:2, section: [OnlineServices.EOS.Lobbies]

Location: <Workspace>/Engine/Plugins/Online/OnlineServicesNull/Config/Engine.ini:3, section: [OnlineServices.EOS.Lobbies]

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Plugins/Online/OnlineServices/Source/OnlineServicesCommon/Private/Online/LobbiesCommonTests.cpp:156

Scope (from outer to inner):

file
namespace    UE::Online
function     bool FClientLobbyDataTest::RunTest

Source code excerpt:

	SchemaConfig.SchemaAttributeDescriptors.Add({ LobbyMemberAttributeId2, ESchemaAttributeType::String, { ESchemaAttributeFlags::Public }, 0, 64 });

	SchemaConfig.ServiceDescriptors.Add({ LobbyServiceDescriptorId, { LobbyServiceAttributeId1, LobbyServiceAttributeId2, LobbyServiceAttributeId3 } });
	SchemaConfig.ServiceAttributeDescriptors.Add({ LobbyServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 64 });
	SchemaConfig.ServiceAttributeDescriptors.Add({ LobbyServiceAttributeId2, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 64 });
	SchemaConfig.ServiceAttributeDescriptors.Add({ LobbyServiceAttributeId3, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 64 });
	SchemaConfig.ServiceDescriptors.Add({ LobbyMemberServiceDescriptorId, { LobbyMemberServiceAttributeId1, LobbyMemberServiceAttributeId2 } });
	SchemaConfig.ServiceAttributeDescriptors.Add({ LobbyMemberServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 64 });
	SchemaConfig.ServiceAttributeDescriptors.Add({ LobbyMemberServiceAttributeId2, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 64 });

	TSharedRef<FSchemaRegistry> SchemaRegistry = MakeShared<FSchemaRegistry>();
	UTEST_TRUE("Schema config parsed successfully.", SchemaRegistry->ParseConfig(SchemaConfig));

#Loc: <Workspace>/Engine/Plugins/Online/OnlineServices/Source/OnlineServicesInterface/Private/Online/Schema.cpp:76

Scope (from outer to inner):

file
namespace    UE::Online
function     bool FSchemaRegistry::ParseConfig

Source code excerpt:

	// Verify and populate known service descriptors.
	TMap<FSchemaId, const FSchemaServiceDescriptor*> KnownSchemaServiceDescriptors;
	for (const FSchemaServiceDescriptor& SchemaServiceDescriptor : Config.ServiceDescriptors)
	{
		// Check that schema service descriptor id has not already been used.
		if (KnownSchemaServiceDescriptors.Contains(SchemaServiceDescriptor.Id))
		{
			UE_LOG(LogOnlineSchema, Error, TEXT("Duplicate schema service descriptor found: %s"), *SchemaServiceDescriptor.Id.ToString().ToLower());
			ParsedSuccessfully = false;

#Loc: <Workspace>/Engine/Plugins/Online/OnlineServices/Source/OnlineServicesInterface/Public/Online/SchemaTypes.h:408

Scope (from outer to inner):

file
namespace    UE::Online

Source code excerpt:

	 * List of all service descriptors.
	 */
	TArray<FSchemaServiceDescriptor> ServiceDescriptors;
	/**
	 * List of all service attributes
	 */
	TArray<FSchemaServiceAttributeDescriptor> ServiceAttributeDescriptors;
};

#Loc: <Workspace>/Engine/Plugins/Online/OnlineServices/Source/OnlineServicesInterface/Public/Online/SchemaTypes.h:711

Scope (from outer to inner):

file
namespace    UE::Online
namespace    Meta

Source code excerpt:

	ONLINE_STRUCT_FIELD(FSchemaRegistryDescriptorConfig, SchemaAttributeDescriptors),
	ONLINE_STRUCT_FIELD(FSchemaRegistryDescriptorConfig, SchemaCategoryAttributeDescriptors),
	ONLINE_STRUCT_FIELD(FSchemaRegistryDescriptorConfig, ServiceDescriptors),
	ONLINE_STRUCT_FIELD(FSchemaRegistryDescriptorConfig, ServiceAttributeDescriptors)
END_ONLINE_STRUCT_META()

/* Meta*/ }

/* UE::Online */ }

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:156

Scope: file

Source code excerpt:

		SchemaConfig.SchemaDescriptors.Add({ TestSchemaId1, FSchemaId(), { TestCategoryId1 } });
		SchemaConfig.SchemaCategoryDescriptors.Add({ TestCategoryId1, TestServiceDescriptorId1 });
		SchemaConfig.ServiceDescriptors.Add({ TestServiceDescriptorId1 });

		FSchemaRegistry SchemaRegistry;
		CHECK(SchemaRegistry.ParseConfig(SchemaConfig));
	}

	SECTION("Service descriptor does not exist")

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:178

Scope: file

Source code excerpt:

		SchemaConfig.SchemaCategoryDescriptors.Add({ TestCategoryId1, TestServiceDescriptorId1 });
		SchemaConfig.SchemaCategoryDescriptors.Add({ TestCategoryId2, TestServiceDescriptorId1 });
		SchemaConfig.ServiceDescriptors.Add({ TestServiceDescriptorId1 });

		FSchemaRegistry SchemaRegistry;
		CHECK(SchemaRegistry.ParseConfig(SchemaConfig) == false);
	}

	SECTION("Duplicate service descriptor id")

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:189

Scope: file

Source code excerpt:

		SchemaConfig.SchemaDescriptors.Add({ TestSchemaId1, FSchemaId(), { TestCategoryId1 } });
		SchemaConfig.SchemaCategoryDescriptors.Add({ TestCategoryId1, TestServiceDescriptorId1 });
		SchemaConfig.ServiceDescriptors.Add({ TestServiceDescriptorId1 });
		SchemaConfig.ServiceDescriptors.Add({ TestServiceDescriptorId1 });

		FSchemaRegistry SchemaRegistry;
		CHECK(SchemaRegistry.ParseConfig(SchemaConfig) == false);
	}
}

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:544

Scope: file

Source code excerpt:

	{
		FSchemaRegistryDescriptorConfig SchemaConfig;
		SchemaConfig.ServiceDescriptors.Add({ TestServiceDescriptorId1, { TestAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ TestAttributeId1, { ESchemaServiceAttributeSupportedTypeFlags::String }, { ESchemaServiceAttributeFlags::Public, ESchemaServiceAttributeFlags::Private, ESchemaServiceAttributeFlags::Searchable }, 32 });

		FSchemaRegistry SchemaRegistry;
		CHECK(SchemaRegistry.ParseConfig(SchemaConfig));
	}

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:554

Scope: file

Source code excerpt:

	{
		FSchemaRegistryDescriptorConfig SchemaConfig;
		SchemaConfig.ServiceDescriptors.Add({ TestServiceDescriptorId1, { TestAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ TestAttributeId1, { ESchemaServiceAttributeSupportedTypeFlags::None }, { ESchemaServiceAttributeFlags::Public }, 32 });

		FSchemaRegistry SchemaRegistry;
		CHECK(SchemaRegistry.ParseConfig(SchemaConfig) == false);
	}

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:564

Scope: file

Source code excerpt:

	{
		FSchemaRegistryDescriptorConfig SchemaConfig;
		SchemaConfig.ServiceDescriptors.Add({ TestServiceDescriptorId1, { TestAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ TestAttributeId1, { ESchemaServiceAttributeSupportedTypeFlags::None }, {}, 32 });

		FSchemaRegistry SchemaRegistry;
		CHECK(SchemaRegistry.ParseConfig(SchemaConfig) == false);
	}

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:574

Scope: file

Source code excerpt:

	{
		FSchemaRegistryDescriptorConfig SchemaConfig;
		SchemaConfig.ServiceDescriptors.Add({ TestServiceDescriptorId1, { TestAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ TestAttributeId1, { ESchemaServiceAttributeSupportedTypeFlags::String }, { ESchemaServiceAttributeFlags::Public }, 0 });

		FSchemaRegistry SchemaRegistry;
		CHECK(SchemaRegistry.ParseConfig(SchemaConfig) == false);
	}

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:584

Scope: file

Source code excerpt:

	{
		FSchemaRegistryDescriptorConfig SchemaConfig;
		SchemaConfig.ServiceDescriptors.Add({ TestServiceDescriptorId1, { TestAttributeId1, TestAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ TestAttributeId1, { ESchemaServiceAttributeSupportedTypeFlags::String }, {}, 32 });

		FSchemaRegistry SchemaRegistry;
		CHECK(SchemaRegistry.ParseConfig(SchemaConfig) == false);
	}

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:594

Scope: file

Source code excerpt:

	{
		FSchemaRegistryDescriptorConfig SchemaConfig;
		SchemaConfig.ServiceDescriptors.Add({ TestServiceDescriptorId1, { TestAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ TestAttributeId1, { ESchemaServiceAttributeSupportedTypeFlags::String }, { ESchemaServiceAttributeFlags::Public }, 32 });
		SchemaConfig.ServiceAttributeDescriptors.Add({ TestAttributeId1, { ESchemaServiceAttributeSupportedTypeFlags::String }, { ESchemaServiceAttributeFlags::Public }, 32 });

		FSchemaRegistry SchemaRegistry;
		CHECK(SchemaRegistry.ParseConfig(SchemaConfig) == false);
	}

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:698

Scope: file

Source code excerpt:

		SchemaConfig.SchemaCategoryAttributeDescriptors.Add({ SchemaId, CategoryId1, { AttributeId1 } });
		SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId1, ESchemaAttributeType::String, { ESchemaAttributeFlags::Public }, 0, 32 });
		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

		FSchemaRegistry SchemaRegistry;
		REQUIRE(SchemaRegistry.ParseConfig(SchemaConfig));

		TSharedPtr<const FSchemaDefinition> SchemaDefinition = SchemaRegistry.GetDefinition(SchemaId);

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:741

Scope: file

Source code excerpt:

		SchemaConfig.SchemaCategoryAttributeDescriptors.Add({ SchemaId, CategoryId1, { AttributeId1 } });
		SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId1, ESchemaAttributeType::String, { ESchemaAttributeFlags::Public }, 0, 32 });
		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, { ESchemaServiceAttributeFlags::Private }, 32 });

		FSchemaRegistry SchemaRegistry;
		REQUIRE(!SchemaRegistry.ParseConfig(SchemaConfig));
	}

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:755

Scope: file

Source code excerpt:

		SchemaConfig.SchemaCategoryAttributeDescriptors.Add({ SchemaId, CategoryId1, { AttributeId1 } });
		SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId1, ESchemaAttributeType::String, { ESchemaAttributeFlags::Private }, 0, 32 });
		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, { ESchemaServiceAttributeFlags::Public }, 32 });

		FSchemaRegistry SchemaRegistry;
		REQUIRE(!SchemaRegistry.ParseConfig(SchemaConfig));
	}

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:769

Scope: file

Source code excerpt:

		SchemaConfig.SchemaCategoryAttributeDescriptors.Add({ SchemaId, CategoryId1, { AttributeId1 } });
		SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId1, ESchemaAttributeType::String, { ESchemaAttributeFlags::Public, ESchemaAttributeFlags::Searchable }, 0, 32 });
		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, { ESchemaServiceAttributeFlags::Private }, 32 });

		FSchemaRegistry SchemaRegistry;
		REQUIRE(!SchemaRegistry.ParseConfig(SchemaConfig));
	}

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:783

Scope: file

Source code excerpt:

		SchemaConfig.SchemaCategoryAttributeDescriptors.Add({ SchemaId, CategoryId1, { AttributeId1 } });
		SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId1, ESchemaAttributeType::String, { ESchemaAttributeFlags::Public, ESchemaAttributeFlags::Searchable }, 0, 32 });
		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, { ESchemaServiceAttributeFlags::Public, ESchemaServiceAttributeFlags::Searchable }, 32 });

		FSchemaRegistry SchemaRegistry;
		REQUIRE(SchemaRegistry.ParseConfig(SchemaConfig));

		TSharedPtr<const FSchemaDefinition> SchemaDefinition = SchemaRegistry.GetDefinition(SchemaId);

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:809

Scope: file

Source code excerpt:

		SchemaConfig.SchemaCategoryAttributeDescriptors.Add({ SchemaId, CategoryId1, { AttributeId1 } });
		SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId1, ESchemaAttributeType::String, { ESchemaAttributeFlags::Public }, 0, 32 });
		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, { ESchemaServiceAttributeSupportedTypeFlags::Bool }, AllSupportedServiceAttributeFlags, 32 });

		FSchemaRegistry SchemaRegistry;
		REQUIRE(!SchemaRegistry.ParseConfig(SchemaConfig));
	}

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:823

Scope: file

Source code excerpt:

		SchemaConfig.SchemaCategoryAttributeDescriptors.Add({ SchemaId, CategoryId1, { AttributeId1 } });
		SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId1, ESchemaAttributeType::String, { ESchemaAttributeFlags::Public }, 0, 32 });
		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, { ESchemaServiceAttributeSupportedTypeFlags::String }, AllSupportedServiceAttributeFlags, 31 });

		FSchemaRegistry SchemaRegistry;
		REQUIRE(!SchemaRegistry.ParseConfig(SchemaConfig));
	}

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:844

Scope: file

Source code excerpt:

		SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId3, ESchemaAttributeType::String, { ESchemaAttributeFlags::Public }, 0, 32 });

		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1, ServiceAttributeId2, ServiceAttributeId3 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId2, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId3, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

		FSchemaRegistry SchemaRegistry;
		REQUIRE(SchemaRegistry.ParseConfig(SchemaConfig));

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:879

Scope: file

Source code excerpt:

		SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId1, ESchemaAttributeType::String, { ESchemaAttributeFlags::Public }, 0, 32 });

		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1, ServiceAttributeId2, ServiceAttributeId3 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId2, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId3, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

		FSchemaRegistry SchemaRegistry;
		REQUIRE(SchemaRegistry.ParseConfig(SchemaConfig));

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:914

Scope: file

Source code excerpt:

		SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId2, ESchemaAttributeType::String, { ESchemaAttributeFlags::Public }, 0, 32 });

		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1, ServiceAttributeId2, ServiceAttributeId3 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId2, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId3, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

		FSchemaRegistry SchemaRegistry;
		REQUIRE(SchemaRegistry.ParseConfig(SchemaConfig));

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1054

Scope: file

Source code excerpt:

		SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId1, ESchemaAttributeType::String, { ESchemaAttributeFlags::Public }, 0, 32 });

		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

		TSharedRef<FSchemaRegistry> SchemaRegistry = MakeShared<FSchemaRegistry>();;
		REQUIRE(SchemaRegistry->ParseConfig(SchemaConfig));

		FSchemaCategoryInstance CategoryInstance(FSchemaId(), SchemaId1, CategoryId1, SchemaRegistry);

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1075

Scope: file

Source code excerpt:

		SchemaConfig.SchemaCategoryAttributeDescriptors.Add({ SchemaId1, CategoryId1, { AttributeId1 } });

		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1, ServiceAttributeId2 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId2, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

		TSharedRef<FSchemaRegistry> SchemaRegistry = MakeShared<FSchemaRegistry>();;
		REQUIRE(SchemaRegistry->ParseConfig(SchemaConfig));

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1099

Scope: file

Source code excerpt:

		SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId3, ESchemaAttributeType::String, { ESchemaAttributeFlags::Public }, 0, 32 });

		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1, ServiceAttributeId2, ServiceAttributeId3 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId2, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId3, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

		TSharedRef<FSchemaRegistry> SchemaRegistry = MakeShared<FSchemaRegistry>();;
		REQUIRE(SchemaRegistry->ParseConfig(SchemaConfig));

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1129

Scope: file

Source code excerpt:

		SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId1, ESchemaAttributeType::String, { ESchemaAttributeFlags::Public }, 0, 32 });

		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

		TSharedRef<FSchemaRegistry> SchemaRegistry = MakeShared<FSchemaRegistry>();;
		REQUIRE(SchemaRegistry->ParseConfig(SchemaConfig));

		FSchemaCategoryInstance CategoryInstance1(FSchemaId(), SchemaId1, CategoryId1, SchemaRegistry);

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1171

Scope: file

Source code excerpt:

		SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId1, ESchemaAttributeType::String, { ESchemaAttributeFlags::Public }, 0, 32 });

		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

		TSharedRef<FSchemaRegistry> SchemaRegistry = MakeShared<FSchemaRegistry>();;
		REQUIRE(SchemaRegistry->ParseConfig(SchemaConfig));

		FSchemaCategoryInstance CategoryInstance1(FSchemaId(), SchemaId1, CategoryId1, SchemaRegistry);

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1199

Scope: file

Source code excerpt:

		SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId1, ESchemaAttributeType::String, { ESchemaAttributeFlags::Public }, 0, 32 });

		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

		TSharedRef<FSchemaRegistry> SchemaRegistry = MakeShared<FSchemaRegistry>();;
		REQUIRE(SchemaRegistry->ParseConfig(SchemaConfig));

		FSchemaCategoryInstance CategoryInstance1(FSchemaId(), SchemaId1, CategoryId1, SchemaRegistry);

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1227

Scope: file

Source code excerpt:

		SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId1, ESchemaAttributeType::String, { ESchemaAttributeFlags::Public }, 0, 32 });

		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

		TSharedRef<FSchemaRegistry> SchemaRegistry = MakeShared<FSchemaRegistry>();;
		REQUIRE(SchemaRegistry->ParseConfig(SchemaConfig));

		FSchemaCategoryInstance CategoryInstance1(FSchemaId(), SchemaId1, CategoryId1, SchemaRegistry);

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1255

Scope: file

Source code excerpt:

		SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId1, ESchemaAttributeType::Int64, { ESchemaAttributeFlags::Public, ESchemaAttributeFlags::SchemaCompatibilityId }, 0, 0 });

		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

		TSharedRef<FSchemaRegistry> SchemaRegistry = MakeShared<FSchemaRegistry>();;
		REQUIRE(SchemaRegistry->ParseConfig(SchemaConfig));

		FSchemaCategoryInstance CategoryInstance1(FSchemaId(), SchemaId1, CategoryId1, SchemaRegistry);

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1279

Scope: file

Source code excerpt:

		SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId1, ESchemaAttributeType::Int64, { ESchemaAttributeFlags::Public, ESchemaAttributeFlags::SchemaCompatibilityId }, 0, 0 });

		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

		TSharedRef<FSchemaRegistry> SchemaRegistry = MakeShared<FSchemaRegistry>();;
		REQUIRE(SchemaRegistry->ParseConfig(SchemaConfig));

		FSchemaCategoryInstance CategoryInstance1(FSchemaId(), SchemaId1, CategoryId1, SchemaRegistry);

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1312

Scope: file

Source code excerpt:

		SchemaConfig.SchemaDescriptors.Add({ SchemaId2, BaseSchemaId2 });

		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1, ServiceAttributeId2 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId2, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

		TSharedRef<FSchemaRegistry> SchemaRegistry = MakeShared<FSchemaRegistry>();
		REQUIRE(SchemaRegistry->ParseConfig(SchemaConfig));

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1354

Scope: file

Source code excerpt:

		SchemaConfig.SchemaDescriptors.Add({ SchemaId2, BaseSchemaId1 });

		SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1, ServiceAttributeId2 } });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
		SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId2, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

		TSharedRef<FSchemaRegistry> SchemaRegistry = MakeShared<FSchemaRegistry>();
		REQUIRE(SchemaRegistry->ParseConfig(SchemaConfig));

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1416

Scope: file

Source code excerpt:

			SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId2, ESchemaAttributeType::Int64, { ESchemaAttributeFlags::Private }, 0, 0 });

			SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1, ServiceAttributeId2 } });
			SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
			SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId2, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

			REQUIRE(SchemaRegistry1->ParseConfig(SchemaConfig));
		}

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1439

Scope: file

Source code excerpt:

			SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId2, ESchemaAttributeType::Int64, { ESchemaAttributeFlags::Private }, 0, 0 });

			SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1, ServiceAttributeId2 } });
			SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
			SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId2, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

			REQUIRE(SchemaRegistry2->ParseConfig(SchemaConfig));
		}

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1489

Scope: file

Source code excerpt:

			SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId2, ESchemaAttributeType::String, { ESchemaAttributeFlags::Private }, 0, 32 });

			SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1, ServiceAttributeId2 } });
			SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
			SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId2, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

			REQUIRE(SchemaRegistry1->ParseConfig(SchemaConfig));
		}

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1512

Scope: file

Source code excerpt:

			SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId2, ESchemaAttributeType::String, { ESchemaAttributeFlags::Private }, 0, 32 });

			SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1, ServiceAttributeId2 } });
			SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
			SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId2, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
			REQUIRE(SchemaRegistry2->ParseConfig(SchemaConfig));
		}

		FSchemaCategoryInstance CategoryInstance2(SchemaId1, BaseSchemaId1, CategoryId1, SchemaRegistry2);

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1623

Scope: file

Source code excerpt:

			SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId2, ESchemaAttributeType::String, { ESchemaAttributeFlags::Private }, 0, 30 });

			SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1, ServiceAttributeId2 } });
			SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
			SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId2, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

			REQUIRE(SchemaRegistry1->ParseConfig(SchemaConfig));
		}

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1646

Scope: file

Source code excerpt:

			SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId2, ESchemaAttributeType::String, { ESchemaAttributeFlags::Private }, 0, 32 });

			SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1, ServiceAttributeId2 } });
			SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
			SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId2, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

			REQUIRE(SchemaRegistry2->ParseConfig(SchemaConfig));
		}

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1695

Scope: file

Source code excerpt:

			SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId2, ESchemaAttributeType::String, { ESchemaAttributeFlags::Private }, 0, 32 });

			SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1, ServiceAttributeId2 } });
			SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
			SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId2, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

			REQUIRE(SchemaRegistry1->ParseConfig(SchemaConfig));
		}

#Loc: <Workspace>/Engine/Source/Programs/Online/OnlineTestsCore/Source/Private/Tests/Schema/SchemaTests.cpp:1718

Scope: file

Source code excerpt:

			SchemaConfig.SchemaAttributeDescriptors.Add({ AttributeId2, ESchemaAttributeType::String, { ESchemaAttributeFlags::Private }, 0, 32 });

			SchemaConfig.ServiceDescriptors.Add({ ServiceDescriptorId, { ServiceAttributeId1, ServiceAttributeId3 } });
			SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId1, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });
			SchemaConfig.ServiceAttributeDescriptors.Add({ ServiceAttributeId3, AllSupportedServiceAttributeTypes, AllSupportedServiceAttributeFlags, 32 });

			REQUIRE(SchemaRegistry2->ParseConfig(SchemaConfig));
		}