I'm an ultra novice so there's probably a lot of things to add for error checking and best practices, but this is what I've been able to reduce an indicator down to where it still functions. It doesn't do anything besides load.
function Init()
indicator:name("Skeleton Indicator Template");
indicator:requiredSource(core.Bar);
indicator:type(core.Indicator);
end
local source;
local first;
function Prepare()
local name;
name = profile:id() .. "(" .. instance.source:name() .. ")";
instance:name(name);
end
function Update(period)
end