Snippets and fragments
Snippets and fragments both contain Liquid, but they solve different problems.
Snippets
theme/snippets/ contains small reusable helpers rendered as part of another Liquid file. A snippet has no merchant identity, right-panel settings or selectable editor boundary.
Good examples include a money label, repeated icon markup or a tiny accessible image helper. Keep required inputs obvious at the call site.
Fragments
theme/fragments/retail/ contains UI requested separately from the normal page render, such as predictive search or a cart drawer.
Fragments may use the route data and approved actions supplied for that fragment. They do not become private API clients and may not fetch Upstorr endpoints themselves.
Use a normal section when the content belongs in a page's editable section tree. Use a reusable block when merchants place it inside several sections. Use a snippet only when it is an invisible implementation helper.