62 std::vector<ContractProp>
props;
73 const std::vector<std::string>& variant_names);
Definition design_adherence.hpp:32
std::string component_contract_json(const ComponentContract &contract)
Serialize a contract to deterministic JSON (feeds R1's manifest / R2's lint).
std::vector< VariantProperty > parse_variant_name(std::string_view name)
Parse a component-set variant name ("Size=Large, State=Hover") into ordered properties.
constexpr std::string_view kVariantContractVersion
Format id stamped into the contract; bump on a non-additive shape change.
Definition design_variants.hpp:27
ComponentContract build_component_contract(std::string_view component, const std::vector< std::string > &variant_names)
Build a contract from a component-set name and its member variant names.
The typed component contract synthesized from a variant set.
Definition design_variants.hpp:59
std::string component
the component-set name
Definition design_variants.hpp:61
std::string format_version
kVariantContractVersion
Definition design_variants.hpp:60
std::vector< ContractProp > props
sorted by property name
Definition design_variants.hpp:62
std::vector< VariantIssue > issues
in a stable (kind, detail) order
Definition design_variants.hpp:64
int variant_count
Definition design_variants.hpp:63
One property in the synthesized contract: its name, the sorted-unique value set observed across the s...
Definition design_variants.hpp:42
std::string default_value
see default rules on build_component_contract
Definition design_variants.hpp:45
std::vector< std::string > values
sorted, unique
Definition design_variants.hpp:44
std::string name
Definition design_variants.hpp:43
A named issue about a variant set that could not be cleanly collapsed.
Definition design_variants.hpp:53
std::string kind
Definition design_variants.hpp:54
std::string detail
Definition design_variants.hpp:55
One property parsed from a variant name: "Size=Large" -> {"Size","Large"}.
Definition design_variants.hpp:30
std::string value
Definition design_variants.hpp:32
std::string name
Definition design_variants.hpp:31