static parsePropertiesFromJson({components, ...json} = {}) {
        return {
            ...json,
            components: components && new Map(Object.entries(components).reduce((map, [characterKey, character]) => {
                map[characterKey] = Character.fromJSON(character);