Exposed GameObject and Comonent linking to prefabs

Is it possible to expose a public variable of a component that I’ve created and have that point to a prefab? Currently this works for me if I link it to an object that is already in the scene but when I go to the assets tab nothing is selectable. It also works if I link the object within the scene to a child of the object that I’m creating the prefab from and it retains the link.

To work around this I have prefab objects that hold the component that I want. And I can link to that prefab. My issue with this is that there is no strict enforcement that the GameObject has the component that I’m expecting it to have. How might I enforce this?

Yes. Just make a public field of the component type you want, then drag and drop a prefab that has that type of component into the field. The assets tab won’t display anything useful for object fields that are a custom type.