Assigning actor component to UPROPERTY on other component in the editor

I have a UActorComponent implementation in C++ that has UPROPERTYs pointing to other UActorComponents.

In the editor, those UPROPERTYs show up, but are not assignable, even though the properties are marked with EditAnywhere and BlueprintReadWrite, e.g.

UPROPERTY(Category = Spine, EditAnywhere, BlueprintReadWrite)
UMyCustomComponent* MyComponent;

Interestingly enough, I also have custom asset classes that derrive from UObject, which I can set on UPROPERTYs in the editor just fine, e.g.

UCLASS(ClassGroup=(Spine))
class SPINEPLUGIN_API USpineSkeletonDataAsset: public UObject { ... }

// then in one of my custom components
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Spine)
USpineSkeletonDataAsset* SkeletonData;

What I’d like to be able to do is:

  1. Add my custom component of type A (written in C++) to an actor that has a UPROPERTY of type B (another customer component written in C++)
  2. Add another custom component of type B to the same actor
  3. In the Details View in the editor, set B on A’s UPROPERTY of type B

When I try to set this up, the detail view of component A will show me the entry for the UPROPERTY of type B, but when I try to assign the component of type B to that UPROPERTY, the editor doesn’t let me. Neither does it propose the B component in the search field, nor can I drag and drop the component.

I’ve tried all kinds of macro annotations, but no dice. Am I getting something conceptually wrong here?

You can use something like

/** Actor or Component that the end of the cable should be attached to */
UPROPERTY(EditAnywhere, Category="Cable")
FComponentReference AttachEndTo;

to reference a component existing in a different actor.
Unfortunately it seems there is no type safety here, and supported only USceneComponent classes