Currently UStateTreeComponent only supports UStateTreeComponentSchema for no particular reason. Schemas have UStateTreeSchema::GetContextDataDescs thus there should not be any need for a hard link like this. Right now the only way to specify other schemas is duplicate UStateTreeComponent into my own directory.
class GAMEPLAYSTATETREEMODULE_API UStateTreeComponent : public UBrainComponent, public IGameplayTaskOwnerInterface
{
...
UPROPERTY(EditAnywhere, Category = AI, meta=(Schema="/Script/GameplayStateTreeModule.StateTreeComponentSchema"))
FStateTreeReference StateTreeRef;
...
}
...
bool UStateTreeComponent::SetContextRequirements(FStateTreeExecutionContext& Context, bool bLogErrors)
{
....
// Make sure the actor matches one required.
AActor* ContextActor = nullptr;
const UStateTreeComponentSchema* Schema = Cast<UStateTreeComponentSchema>(Context.GetStateTree()->GetSchema());
if (Schema)
{
...
}
...
}