Propriedades privadas em módulos

Olá! Estava aqui fazendo um módulo e queria saber como posso criar propriedades privadas.

local this = {}
this.__index = this


function this.new(name)
	local instance = setmetatable({}, this)
	
	instance.Name = name
	
	return instance
end

return this

Desse modo qualquer um poderá acessar a propriedade “Name” ou mudá-la.

function this:Foo()
	print(self.Name)
end

Eu gostaria de um método em que apenas métodos dessa instance possam acessa-lá.

local this = {}
this.__index = this

local Name

function this.new(name)
	local instance = setmetatable({}, this)
	
	Name = name
	
	return instance
end

return this

Já desse modo, a propriedade Name séria diferente a cada instance criada.

1 Curtida