Why does the `:key` need to be exported (and be updatable) via the API? If this is intentional, could the specs be improved the convey this intent?

—@mariash & @hiremaga