Where an allocation lives.
The caller says; the engine never guesses.
A region is a name, not an enumerator, so packages can define new ones without an engine change, in their own namespace:
namespace DekiEsp32
{
inline constexpr Deki::Memory::Region Rtc{"esp32.rtc"};
}
A region's identity is its hashed name, so the namespace it is declared in does not matter, and two packages' "Rtc" constants cannot collide.
Only the board's IMemoryProvider can serve a region; one that does not know "esp32.rtc" returns nullptr and names it. A package that allocates from Region("esp32.rtc") declares platformRequires ["memory:esp32.rtc"], so the build refuses a target without it before anything runs.
The name pointer is kept, not copied: a Region is only built from a string literal, which has static storage.