#Service Convention
Every server service (ServerScriptService/Server/Services/*) and client controller
(StarterPlayer/StarterPlayerScripts/Client/**) follows the same shape:
local M = {}
M.Priority = 50 -- lower runs earlier
function M:Init() end -- must not call other services
function M:Start() end -- may call other services
return M
Bootstrap (server) and ClientBootstrap (client) auto-discover every such module, sort by Priority, run
every Init() then every Start(), each wrapped in pcall with a clear error log. Nothing registers
itself manually into a bootstrap — dropping a new module in the right folder is enough for it to be picked
up on the next boot.
Not everything needs to be a service, though: single-purpose animated hazards (rising traps, closing walls)
are plain Workspace Scripts that don't follow this convention at all — see
Boss & Hazard System Internals.