AISA v2.0 / Technical documentation / broken.product.json
broken.product.json
JSON · 102 lines · 3,303 bytes · wiki path 10 Architecture/20 Configuration/contracts/fixtures/broken.product.json · download the raw file · cited from Components — Configuration module · Stage S1 — Normalization
{
"schema_version": "1",
"_comment": "Deliberately broken fixture. Every defect here is one the validator must catch and a JSON Schema alone cannot. Expected: 9 blockers (semantic layer; structural errors are additional when jsonschema is installed).",
"meta": {
"code": "9999",
"names": { "bg": "Тестов продукт" },
"lob": "motor",
"valid_from": "2026-09-01",
"sources": [
{ "file": "sources/tariff.pdf", "role": "tariff" },
{ "file": "sources/template.xlsx", "role": "structure" }
]
},
"objects": [
{ "code": "CAR", "status": "M", "one_only": true, "source": "template!Objects A4" }
],
"covers": [
{ "key": "FIRE", "names": { "bg": "Пожар" }, "type": "COV", "object": "CAR", "source": "template!Covers row 7" },
{ "key": "THEFT", "names": { "bg": "Кражба" }, "type": "COV", "object": "CAR", "source": "template!Covers row 8" }
],
"ld": [
{
"code": "LD_YOUNG_DRIVER", "type": "LD", "sign": 1,
"scope": "cover:GLASS",
"rate_dim": "P", "rate": 10, "rate_base": "BP", "order": 10,
"rule": "10% for drivers under 25",
"source": "tariff!Loadings row 3"
}
],
"factors": [
{
"code": "IV", "datatype": "IV", "level": "object", "object": "CAR",
"answered_by": "operator", "rating_axis": true,
"source": "template!Factors row 2"
},
{
"code": "VEHICLE_AGE", "datatype": "LIST", "level": "object", "object": "CAR",
"answered_by": "object_attribute", "rating_axis": true,
"values": [
{ "value": "0_3", "name": "0-3", "default": true },
{ "value": "4_7", "name": "4-7", "default": true }
],
"source": "template!Factors row 3"
}
],
"tariff": {
"template": "DEFAULT_TEMPLATE",
"versions": [ { "effective_from": "2026-09-01", "ld_rule": "SUM" } ],
"cover_rates": [
{
"cover": "FIRE", "shape": "grid", "base": "IV", "rate_dim": "P",
"grid": {
"row_factor": "VEHICLE_AGE", "column_factor": "DEDUCTIBLE_BAND",
"row_labels": ["0_3", "4_7"], "column_labels": ["A", "B", "C"],
"rates": [[1.1, 1.2, 1.3], [1.4, 1.5, 1.6]]
},
"source": "tariff!table I B2:F40"
},
{
"cover": "THEFT", "shape": "grid", "base": "IV", "rate_dim": "P",
"grid": {
"row_factor": "VEHICLE_AGE", "column_factor": "DEDUCTIBLE_BAND",
"row_labels": ["0_3", "4_7"], "column_labels": ["A", "B", "C"],
"rates": [[0.7, 0.8, 0.9], [1.0, 1.1, 1.2]]
},
"source": "tariff!table II B2:F40"
}
]
},
"offers": [
{
"code": "STANDARD", "object": "CAR",
"covers": [
{ "cover": "FIRE", "extent": "M" },
{ "cover": "GLASS", "extent": "O" }
],
"source": "requirements §5"
}
],
"reconciliation": {
"covers": { "claimed_in_source": 2, "in_model": 2, "evidence": "template!Covers rows 7-8" },
"factors": { "claimed_in_source": 3, "in_model": 3, "evidence": "template!Factors rows 2-4" }
},
"unresolved": [
{
"what": "deductible band definitions for cover THEFT",
"why": "cannot configure PR_BASIC_COVER_DEF without them",
"expected_in": "general terms §4",
"blocking": true
}
]
}