Refactoring Spaces and Changing Models
Summary: So, I've just hit my first major refactoring issue. I've defined Hero, Villain, and Environment as top-level Models. I realize now, though, that what I really want is a top-level concept of Deck, with children Hero Deck, Villain Deck, and Environment Deck. Now, at this stage, I haven't entered so much data in the existing structure that it would be ludicrous to redo it all if need be. But this seems like just the first instance of something that will happen frequently in Querki, and may want a more robust way of addressing it.
It seems to me that users will need some way to either:
- change what Model a Thing is based on, or
- some semi-automated tool to help them migrate large amounts of data from an old Model to a new one.
[Alternatively, to solve the particular issue I'm facing, it might make sense to create some way for a "Link Model" to point to a collection of Link Models, rather than 1 or nothing.]
Fixed: you can now Change Models from the Editor. This at least deals with the immediate problem.
Justin: Innnteresting. Yes, I agree that refactoring is going to be a big deal, although I expect us to spend the next couple of years working on that in the background.
In fact, changing a Thing's Model is not complex internally. It actually existed in the original UI, and still exists in the back end -- it was backed out solely because it was making the UI code horrifying. But I would be willing to re-add it with a different workflow, so feel free to break that out into a separate Issue, which I might get to soon.
The collection-of-Link-Models idea is trickier, and I've have to think about it. You may well be correct that it's a good idea, but I'm not going to do that one as casually -- the semantics don't map quite cleanly, so we'll need to talk it through more.