(3D) Build Extended Specifications

sync (spec.json)

To be used to define a series of "simple" part syncing rules to be applied under the key sync inside the spec.json file.

{
    // describes sets customization options that should be synced, for instance:
    // * parts that share the same options space when the material/color of one of them changes,
    // the others get the same material/color (see the `eyeslet` and `upper_bottom` examples)
    // * parts with specific materials when the color of one of them changes, the others get the
    // same color (see the `upper_nappa_bottom_suede` example)
    // * parts with specific colors when the material of one of them changes, the others get the
    // same material (see the `upper_white_bottom_white` example)
    // * one can specify a certain set of part combination that should trigger a
    // specific combination on other parts (see the `upper_nappa_red_bottom_suede_red` example)
    "eyelets_fringe_eylets" : ["eyelets", "fringe_eyelets"],
    "upper_bottom" : [
        {
            "part": "upper"
        },
        {
            "part": "bottom"
        }
    ],
    "upper_nappa_bottom_suede": [
        {
            "part": "upper",
            "material": "nappa"
        },
        {
            "part": "bottom",
            "material": "suede"
        }
    ],
    "upper_white_bottom_white": [
        {
            "part": "upper",
            "color": "white"
        },
        {
            "part": "bottom",
            "color": "white"
        }
    ],
    "upper_nappa_red_bottom_suede_red": [
        {
            "part": "upper",
            "material": "nappa",
            "color": "green"
        },
        {
            "part": "bottom",
            "material": "suede",
            "color": "red"
        }
    ]
}

restrictions (spec.json)

To be used to restrict customization combinations to happen to be applied under the key restrictions inside the spec.json file.

{
    // prevents parts or pairs of material-color of appearing together,
    // meaning that when one is present on the customization, the
    // other won't appear in the UI for selection, special cases
    // exist for a single element item where that combination is
    // always excluded from the UI (hard restriction)
    "restrictions" : [[{
        "part" : "laces"
    }], [{
        "material" : "nappa"
    }], [{
        "material" : "hairy_calf",
        "color" : "blue"
    }], [{
        "material" : "croco_kl",
        "color" : "gold"
    }, {
        "material" : "glitter_kl",
        "color" : "blush_pink"
    }], [{
        "material" : "croco_kl",
        "color" : "gold"
    }, {
        "material" : "glitter_kl",
        "color" : "stained"
    }], [{
        "material" : "croco_kl",
        "color" : "gold"
    }, {
        "material" : "glitter_kl",
        "color" : "light_gold"
    }]]
}