Afraid not, the way we currently have of doing that is to add two items to represent the packed and unpacked versions, and add an iuse function to toggle between the two. Take a look at rad_badge() at the bottom of iuse.cpp for an example of how it works. (you’d want your function to detect which item it is and either pack or unpack)
If it becomes something we want to do across a lot of items (there are only like… 3 or 4 that do it right now), we can add an optional “transforms_to” item attribute that lets you toggle between the item types and is settable from within the JSON file. I’m not sure that we can do it with a settable flag, even if we have per-item flags, because how much compression you get out of something being “packed” changes based on the item.
If you also want one of the forms to have it’s own iuse function, e.g. to deploy a sleeping bag on the ground, which you might want, things get a bit more complicated… OTOH, seems like makeing the sleeping bag wearable might be a good option, so it might be a moot issue… for now.