Creating and populating level sequence from c++

i want to create a large number of level sequences in a map to render permutations of actor pairs etc. from c++ code

i create a new level sequence and add tracks to it, which works but when i open the squence in editor all references to actors are broken and i dont see the camera view in the camera cut track (which i created). when i click fix actor references in the editor everything works.

what do i need to do to have the references correct right away?

i also tried to call the fix references function from code but i also could not get that to work. if anyone can tell me how?

	// MASTER
	UMovieSceneFadeTrack* MasterTrack = Cast< UMovieSceneFadeTrack>(MovieScene->AddMasterTrack(UMovieSceneFadeTrack::StaticClass()));	
	bool bAdded = false;
	UMovieSceneSection* MasterSection = MasterTrack->FindOrAddSection(FFrameNumber(0), bAdded);
	MasterSection->ExpandToFrame(Length);

   	FGuid Guid = MovieScene->AddPossessable(CurrentCamera->GetName(), CurrentCamera->GetClass());

	// CAMERA CUT
	UMovieSceneCameraCutTrack* CamCutTrack = Cast<UMovieSceneCameraCutTrack>(MovieScene->AddCameraCutTrack(UMovieSceneCameraCutTrack::StaticClass()));
	UMovieSceneCameraCutSection* CamCutSection = CamCutTrack->AddNewCameraCut(UE::MovieScene::FRelativeObjectBindingID(Guid), 0);
	CamCutSection->ExpandToFrame(Length);

	// CAMERA TRACK
	UMovieScene3DTransformTrack* Track = Sequence->MovieScene->AddTrack< UMovieScene3DTransformTrack>(Guid);
	bAdded = false;
	UMovieSceneSection* Section = Track->FindOrAddSection(FFrameNumber(SectionStart), bAdded);
	Section->ExpandToFrame(SectionLength);

thanks

could solve it by looking at the actual editor code. here is an updated method to add a track to a sequence

FGuid ULSequenceFunctionLibrary::CreateOrGetObjectGuid(UObject* Object, ULevelSequence* SequenceAsset)
{
	FGuid Guid = SequenceAsset->FindPossessableObjectId(*Object, nullptr);
	if (Guid.IsValid()) return Guid;

	SequenceAsset->Modify();
	SequenceAsset->MovieScene->Modify();
	AActor* Act = Cast<AActor>(Object);
	FString BindingName = Act ? Act->GetActorLabel() : Object->GetName();
	Guid = SequenceAsset->MovieScene->AddPossessable(BindingName, Object->GetClass());

	UObject* Context = Object;
	FGuid ParentGuid;
	if (UActorComponent* Comp = Cast<UActorComponent>(Object))
	{
		Context = Comp->GetOwner();
		ParentGuid = SequenceAsset->FindPossessableObjectId(*Context, nullptr);

		if (!ParentGuid.IsValid())
		{
			CreateOrGetObjectGuid(Context, SequenceAsset);
			ParentGuid = SequenceAsset->FindPossessableObjectId(*Context, nullptr);
		}
	}

	SequenceAsset->BindPossessableObject(Guid, *Object, Context);
	if (ParentGuid.IsValid())
	{
		FMovieScenePossessable* Poss = SequenceAsset->MovieScene->FindPossessable(Guid);
		Poss->SetParent(ParentGuid);
	}
	return Guid;
}