Players can choose to be one of three available ‘factions’ (the long-standing and still active marxist guerrilla force known as the FARC, the right-wing paramilitary AUC and the drug producing Cartels) or the Colombian government itself.
Each side has different victory conditions that they achieve using different methods, a design feature that acknowledges the fundamentally asymmetric nature of .
But, a requirement of the system was 'each painting can only have one artist associated with it'.
Therefore, the current data model needs reviewing to prevent multiple artists being associated with the same painting. The entity Portfolio has been deleted and replaced by a foreign key of Artist No in the Painting entity.
Backbone provides a validate method, but it is left undefined and it is up to you to override it with your custom validation logic.
Too many times I have seen validation implemented as lots of nested ifs and elses. One other thing is that with libraries like Backbone, you hold your state in a Model, and don't tie it to the DOM. It gives you a simple, extensible way of declaring validation rules on your model, and overrides Backbone's validate method behind the scene.
However it would also allow for the same painting to be painted by several painters.Look at the example data model answer for the Painting Hire system.