In theory collections would be the way to approach this, but currently they aren’t on par with _posts
in terms of categories and tag support. There have been talks to align collections, posts, and pages in Jekyll 4.0 but I don’t think any work has been done yet.
The other limiting thing is how Jekyll currently supports categories. The way you have them defined above won’t really attach the object to multiple categories. Jekyll views categories: foo, bar
as foo
being the parent and bar
being the child category. So you’d get a permalink link /foo/bar/
.