(3D) Build Specifications Proposals

parts (spec.json)

{
    // describes all parts that constitutes a model, with all of its
    // components and configuration associted, this spec supercedes
    // the legacy `defaults` one
    "parts" : {
        "$config" : {
            // the default of how much quantity of material is required
            // to match the need of this specifi model part
            "consumption" : 10
        },
        "front" : {
            "$config" : {
                // how much of a material is need for the front part
                // overrides the parts.consumption (if exists)
                "consumption" : 6,

                // the definition of the (preffered) view for the current
                // part, meaning that this part is better configured using
                // this specific view
                "view" : {
                    "face" : "front",
                    "frame" : 2
                },
            }
            "nappa" : {
                "consumption" : 2,
                "colors" : {
                    "white" : {
                        "consumption" : 3,
                        "default" : true
                    },
                    "red" : {
                        "consumption" : 3
                    },
                    "black" : {}
                }
            },
            "python" : {
                "consumption" : 4,
                "colors" : {
                    "red" : {},
                    "black" : {}
                }
            }
        },
        "fringe" : {
            "$config" : {
                "optional" : true,
                "view" : {
                    "face" : "side",
                    "frame" : 7
                }
            },
            "nappa" : {
                "colors" : {
                    "white" : {
                        "consumption" : 4,
                        "default" : true
                    },
                    "red" : {
                        "consumption" : 4
                    },
                    "black" : {
                        "consumption" : 6
                    }
                }
            }
        },
        "shadow" : {
            "$config" : {
                "hidden" : true,
            },
            "default" : {
                "colors" : {
                    "default" : {
                        "default" : true
                    }
                }
            }
        }
    }
}