---
title: "QuartzUIProviderSchema: declaration reference"
description: "Quartz UI 0.57.0-dev: QuartzUIProviderSchema: declaration reference. Source-reviewed guidance, usage and limitations."
status: approved
visibility: public
sourceRevision: fe5b709ec900e282b50e58b819a25041945005f9
reviewedAt: 2026-09-24
---

# QuartzUIProviderSchema: declaration reference

> **0.57.0-dev · beta source documentation.** Native, Blueprint, Editor and rendering examples are source-reviewed, not executed in Unreal during this scan. See [validation and limits](https://betterbuilt.games/docs/quartz-ui/evidence).

Pinned source (source: `Source/QuartzUIRuntime/Public/QuartzUIProviderSchema.h`) · [integration recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuiproviderschema) · [practical guide](https://betterbuilt.games/docs/quartz-ui/providers-contracts)

## FQuartzUIProviderFieldDescriptor

**Internal type.** Provider Field Descriptor: a declared type in provider field/event/method descriptors and reflected closure validation; use its exact fields/operations below.

**Prerequisites / integration:** Configured app, explicit reflected value types, saved assets and freshly generated app contract. Use the [QuartzUIProviderSchema recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuiproviderschema) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Validate a provider Blueprint and generate the registered app contract. Descriptors belong to generation/binding work.

**Avoid:** Authoring descriptor structs as gameplay state. This named helper is runtime-owned; inspect/use it through the owner above rather than constructing it in gameplay.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIProviderSchema.h#L9`)

## FQuartzUIProviderEventDescriptor

**Internal type.** Provider Event Descriptor: a declared type in provider field/event/method descriptors and reflected closure validation; use its exact fields/operations below.

**Prerequisites / integration:** Configured app, explicit reflected value types, saved assets and freshly generated app contract. Use the [QuartzUIProviderSchema recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuiproviderschema) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Validate a provider Blueprint and generate the registered app contract. Descriptors belong to generation/binding work.

**Avoid:** Authoring descriptor structs as gameplay state. This named helper is runtime-owned; inspect/use it through the owner above rather than constructing it in gameplay.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIProviderSchema.h#L15`)

## FQuartzUIProviderMethodDescriptor

**Internal type.** Provider Method Descriptor: a declared type in provider field/event/method descriptors and reflected closure validation; use its exact fields/operations below.

**Prerequisites / integration:** Configured app, explicit reflected value types, saved assets and freshly generated app contract. Use the [QuartzUIProviderSchema recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuiproviderschema) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Validate a provider Blueprint and generate the registered app contract. Descriptors belong to generation/binding work.

**Avoid:** Authoring descriptor structs as gameplay state. This named helper is runtime-owned; inspect/use it through the owner above rather than constructing it in gameplay.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIProviderSchema.h#L24`)

## FQuartzUIProviderDescriptor

**Internal type.** One immutable reflection result shared by generation and runtime binding.

**Prerequisites / integration:** Configured app, explicit reflected value types, saved assets and freshly generated app contract. Use the [QuartzUIProviderSchema recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuiproviderschema) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Validate a provider Blueprint and generate the registered app contract. Descriptors belong to generation/binding work.

**Avoid:** Authoring descriptor structs as gameplay state. This named helper is runtime-owned; inspect/use it through the owner above rather than constructing it in gameplay.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIProviderSchema.h#L34`)

## FQuartzUIProviderSchema

**Internal type.** Safe, bounded provider reflection policy. No UObject-valued member is accepted.

**Prerequisites / integration:** Configured app, explicit reflected value types, saved assets and freshly generated app contract. Use the [QuartzUIProviderSchema recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuiproviderschema) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Validate a provider Blueprint and generate the registered app contract. Descriptors belong to generation/binding work.

**Avoid:** Authoring descriptor structs as gameplay state. This named helper is runtime-owned; inspect/use it through the owner above rather than constructing it in gameplay.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUIProviderSchema.h#L47`)

## Complete header

Source snapshot, not an additional example. Unreal annotations distinguish exposed Blueprint nodes from native-only/private methods.

```cpp
#pragma once

#include "CoreMinimal.h"

class FProperty;
class UClass;
class UFunction;

struct QUARTZUIRUNTIME_API FQuartzUIProviderFieldDescriptor
{
	const FProperty* Property = nullptr;
	FString Name;
};

struct QUARTZUIRUNTIME_API FQuartzUIProviderEventDescriptor
{
	const FProperty* Property = nullptr;
	const UFunction* Signature = nullptr;
	FString Name;
	FString WireName;
	TArray<FQuartzUIProviderFieldDescriptor> Parameters;
};

struct QUARTZUIRUNTIME_API FQuartzUIProviderMethodDescriptor
{
	const UFunction* Function = nullptr;
	const FProperty* ReturnProperty = nullptr;
	FString Name;
	FString WireName;
	TArray<FQuartzUIProviderFieldDescriptor> Parameters;
};

/** One immutable reflection result shared by generation and runtime binding. */
struct QUARTZUIRUNTIME_API FQuartzUIProviderDescriptor
{
	const UClass* ProviderClass = nullptr;
	FString ProviderId;
	FString TypeScriptName;
	FString LifecycleWireName;
	FString StateWireName;
	TArray<FQuartzUIProviderFieldDescriptor> StateFields;
	TArray<FQuartzUIProviderEventDescriptor> Events;
	TArray<FQuartzUIProviderMethodDescriptor> Methods;
};

/** Safe, bounded provider reflection policy. No UObject-valued member is accepted. */
class QUARTZUIRUNTIME_API FQuartzUIProviderSchema final
{
public:
	static constexpr int32 MaxProviders = 32;
	static constexpr int32 MaxStateFields = 128;
	static constexpr int32 MaxEvents = 64;
	static constexpr int32 MaxMethods = 64;
	static constexpr int32 MaxParameters = 32;

	static bool TryBuild(
		const UClass* ProviderClass,
		FQuartzUIProviderDescriptor& OutDescriptor,
		FString& OutError);

	static FString GetMemberName(const FProperty& Property);
	static FString GetTypeScriptName(const UClass& ProviderClass);
	static FString GetWireSlug(const FString& ReflectedName);
};
```

Canonical HTML: https://betterbuilt.games/docs/quartz-ui/reference-quartzuiproviderschema
