private static DataPrototype.Property GetProtoPropertyUserInput(DataPrototype.Property property, DataPrototype data)
    {
        GUI.enabled = property.DelegatesToPrototype;

        var currentProtoPropertyOwner = property.ProtoProperty == null ? null : property.ProtoProperty.Owner;
        var protoPropertyOwner = (DataPrototype) EditorGUILayout.ObjectField(currentProtoPropertyOwner, data.GetType(), true);

        if(protoPropertyOwner != null)
            return protoPropertyOwner.GetProperty(property.Name);

        return null;
    }