change: the default structure will kick in on any "falsy" parameter, now (before, it considered string/buffer first, but this meant empty strings, e.g. from Soroban RPC, were interpreted incorrectly)
add:getFootprint() to easily get both read-only and read-write pieces
This does two things:
getFootprint()
to easily get both read-only and read-write pieces