Unfortunately for `=cloakroom` not every one of those is going to be a proper "room", unless it doesn't have to be dedicated or specifically built. Not sure if you should count every indoor space with that functionality, including where it is part of the main corridor, only with a simple tray for shoes.
1. Your example points to another problem: sometimes you don't have access to the storage room itself, if there is one. You have to hand over your belongings at a desk. Although this is not accurate, there were proposals on an for `amenity=` for receptions, including `=reception`, `=reception_point`, `=reception_area`, and `=reception_desk`. If the shoes drop is located together with the reception, or immediately greets you at the entrance, this may be acceptable.
2. You can use `amenity=locker` directly. There's Although, there's no `locker=shoes` yet. You yet, you could still start adding it. The issue would be how to show its requirement. the requirement of using it. `cloakroom:use=` is mentioned there (but `*:use=` is usually for usage) usage), contrasted with `mandatory=``mandatory=` (not used at all). `access=designated` may have the best recognition, however it doesn't suggestion mandatory or exclusive use.