The primary purpose of pursuing this project was to better understand RMRK (specifically 2.0), because it's super-cool. I checked the list of hackathon ideas, and this seemed like one that I might be able to complete, while getting practice with Rust and RMRK at the same time.
What it does
It takes an unconsolidated JSON dump of RMRK2.0 transactions and converts them into a JSON object. It strives to be equivalent to rmrk-tools-consolidate.
How we built it
With Rust, practice, failure, persistence, research and time. Heavily relied on RMRK's documentation and the RMRK implementers Telegram room.
Challenges we ran into
A few challenges remain. THEMEADD and LOCK are incompletely implemented. Many challenges arose along the way. Rust's ownership methodology was a challenge, and I am certain that the code (and I) would benefit from some feedback from someone with more Rust experience.
Accomplishments that we're proud of
First and foremost, it works. I can consolidate the same file and get the same result as rmrk-tools-consolidate. Specifically, the best challenge I overcame was with SETPROPERTY, because the value can be many types, but Rust isn't a fan of "many" types. But serde_json has a "Value" property that allows for this kind of functioning. That was an exciting realization.
What we learned
I learned a great deal about the RMRK2.0 specification, and have a much greater comfort with Rust as a programming language.
What's next for RMRK2.0 Rust Consolidator
It certainly needs some review and feedback. With some optimization, and likely a few feature additions, the hope is that it could be used on resource-constrained systems.