@pdtf/schemas 3.6.0-4 → 3.6.0-40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/.claude/settings.local.json +22 -3
  2. package/README.md +52 -33
  3. package/docs/sef25-extensions-ui-spec.md +355 -0
  4. package/index.js +130 -66
  5. package/package.json +4 -2
  6. package/src/examples/v3/exampleTransaction.json +3 -3
  7. package/src/schemas/v3/combined.json +7648 -1672
  8. package/src/schemas/v3/compactSkeleton.txt +365 -14
  9. package/src/schemas/v3/overlays/baspi4.json +163 -18
  10. package/src/schemas/v3/overlays/baspi5.json +168 -20
  11. package/src/schemas/v3/overlays/extensions/as.json +4 -2
  12. package/src/schemas/v3/overlays/extensions/dk.json +32 -0
  13. package/src/schemas/v3/overlays/extensions/dr.json +9 -9
  14. package/src/schemas/v3/overlays/extensions/er.json +4 -2
  15. package/src/schemas/v3/overlays/extensions/fd.json +6 -3
  16. package/src/schemas/v3/overlays/extensions/hi.json +6 -3
  17. package/src/schemas/v3/overlays/extensions/hs.json +4 -2
  18. package/src/schemas/v3/overlays/extensions/ic.json +59 -0
  19. package/src/schemas/v3/overlays/extensions/jk.json +28 -8
  20. package/src/schemas/v3/overlays/extensions/la.json +4 -2
  21. package/src/schemas/v3/overlays/extensions/lc.json +64 -0
  22. package/src/schemas/v3/overlays/extensions/ma.json +6 -3
  23. package/src/schemas/v3/overlays/extensions/mc.json +4 -2
  24. package/src/schemas/v3/overlays/extensions/mi.json +69 -0
  25. package/src/schemas/v3/overlays/extensions/nd.json +43 -0
  26. package/src/schemas/v3/overlays/extensions/oa.json +4 -2
  27. package/src/schemas/v3/overlays/extensions/oc.json +4 -2
  28. package/src/schemas/v3/overlays/extensions/pc.json +37 -0
  29. package/src/schemas/v3/overlays/extensions/ph.json +194 -0
  30. package/src/schemas/v3/overlays/extensions/rw.json +68 -0
  31. package/src/schemas/v3/overlays/extensions/sb.json +4 -2
  32. package/src/schemas/v3/overlays/extensions/sc.json +107 -0
  33. package/src/schemas/v3/overlays/extensions/sd.json +63 -0
  34. package/src/schemas/v3/overlays/extensions/sf.json +4 -2
  35. package/src/schemas/v3/overlays/extensions/sl.json +4 -2
  36. package/src/schemas/v3/overlays/extensions/tf.json +6 -3
  37. package/src/schemas/v3/overlays/extensions/tr.json +73 -0
  38. package/src/schemas/v3/overlays/extensions/wg.json +350 -0
  39. package/src/schemas/v3/overlays/fme1.json +16 -14
  40. package/src/schemas/v3/overlays/lpe1.json +60 -30
  41. package/src/schemas/v3/overlays/nts.json +68 -1
  42. package/src/schemas/v3/overlays/nts2.json +68 -4
  43. package/src/schemas/v3/overlays/ntsl.json +68 -1
  44. package/src/schemas/v3/overlays/ntsl2.json +68 -4
  45. package/src/schemas/v3/overlays/piq.json +38 -1
  46. package/src/schemas/v3/overlays/rds.json +118 -6
  47. package/src/schemas/v3/overlays/sef25.json +1016 -0
  48. package/src/schemas/v3/overlays/ta6.json +46 -16
  49. package/src/schemas/v3/overlays/ta6ed6.json +6498 -0
  50. package/src/schemas/v3/overlays/ta7.json +70 -6
  51. package/src/schemas/v3/overlays/ta7ed5.json +1539 -0
  52. package/src/schemas/v3/pdtf-transaction.json +4361 -676
  53. package/src/schemas/v3/skeleton.json +505 -36
  54. package/src/tests/v3/buyerCircumstances.test.js +543 -0
  55. package/src/tests/v3/extensionOverlays.test.js +911 -0
  56. package/src/tests/v3/offers.test.js +37 -40
  57. package/src/tests/v3/patternProperties.test.js +149 -30
  58. package/src/tests/v3/ta6ed6.test.js +2317 -0
  59. package/src/tests/v3/ta7ed5.test.js +567 -0
  60. package/src/tests/v3/transactionSchema.test.js +31 -0
  61. package/src/utils/extractExtensionOverlays.js +216 -31
  62. package/src/utils/extractOverlay.js +88 -23
  63. package/src/utils/pathSkeleton.js +1 -1
@@ -0,0 +1,1016 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://trust.propdata.org.uk/schemas/v3/overlays/sef25.json",
4
+ "properties": {
5
+ "propertyPack": {
6
+ "properties": {
7
+ "ownership": {
8
+ "sef25Ref": "T1",
9
+ "properties": {
10
+ "ownershipsToBeTransferred": {
11
+ "items": {
12
+ "oneOf": [
13
+ {
14
+ "required": [
15
+ "titleRestrictions"
16
+ ],
17
+ "properties": {
18
+ "titleRestrictions": {
19
+ "sef25Ref": "T1.1",
20
+ "discriminator": {
21
+ "propertyName": "yesNo"
22
+ },
23
+ "oneOf": [
24
+ {
25
+ "properties": {
26
+ "yesNo": {
27
+ "enum": [
28
+ "No"
29
+ ]
30
+ }
31
+ }
32
+ },
33
+ {
34
+ "properties": {
35
+ "yesNo": {
36
+ "enum": [
37
+ "Yes"
38
+ ]
39
+ },
40
+ "details": {
41
+ "sef25Ref": "T1.1.2"
42
+ }
43
+ },
44
+ "required": [
45
+ "details"
46
+ ]
47
+ }
48
+ ],
49
+ "required": [
50
+ "yesNo"
51
+ ],
52
+ "properties": {
53
+ "yesNo": {
54
+ "sef25Ref": "T1.1.1"
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ ]
61
+ }
62
+ }
63
+ }
64
+ },
65
+ "parking": {
66
+ "sef25Ref": "K1",
67
+ "required": [
68
+ "droppedKerbAccess"
69
+ ],
70
+ "properties": {
71
+ "controlledParking": {
72
+ "oneOf": [
73
+ null,
74
+ {
75
+ "required": [
76
+ "costOfPermit",
77
+ "costOfPermitFrequency"
78
+ ],
79
+ "properties": {
80
+ "costOfPermit": {
81
+ "sef25Ref": "P1.1"
82
+ },
83
+ "costOfPermitFrequency": {
84
+ "sef25Ref": "P1.2"
85
+ }
86
+ }
87
+ }
88
+ ]
89
+ },
90
+ "droppedKerbAccess": {
91
+ "sef25Ref": "K1.1",
92
+ "required": [
93
+ "yesNo"
94
+ ],
95
+ "properties": {
96
+ "yesNo": {
97
+ "sef25Ref": "K1.1.1"
98
+ }
99
+ }
100
+ }
101
+ }
102
+ },
103
+ "notices": {
104
+ "sef25Ref": "N1",
105
+ "properties": {
106
+ "neighbourDevelopment": {
107
+ "sef25Ref": "N1.1",
108
+ "discriminator": {
109
+ "propertyName": "yesNo"
110
+ },
111
+ "oneOf": [
112
+ {
113
+ "properties": {
114
+ "yesNo": {
115
+ "enum": [
116
+ "No"
117
+ ]
118
+ }
119
+ }
120
+ },
121
+ {
122
+ "properties": {
123
+ "yesNo": {
124
+ "enum": [
125
+ "Yes"
126
+ ]
127
+ }
128
+ }
129
+ }
130
+ ]
131
+ }
132
+ }
133
+ },
134
+ "specialistIssues": {
135
+ "required": [
136
+ "wellsDitchesShaft",
137
+ "damagedOrExposedElectrics",
138
+ "damageToFlooringOrStaircases",
139
+ "knownAreasInPoorCondition"
140
+ ],
141
+ "properties": {
142
+ "wellsDitchesShaft": {
143
+ "sef25Ref": "H1.1",
144
+ "discriminator": {
145
+ "propertyName": "yesNo"
146
+ },
147
+ "oneOf": [
148
+ {
149
+ "properties": {
150
+ "yesNo": {
151
+ "enum": [
152
+ "No"
153
+ ]
154
+ }
155
+ }
156
+ },
157
+ {
158
+ "properties": {
159
+ "yesNo": {
160
+ "enum": [
161
+ "Yes"
162
+ ]
163
+ },
164
+ "details": {
165
+ "sef25Ref": "H1.1.2"
166
+ }
167
+ },
168
+ "required": [
169
+ "details"
170
+ ]
171
+ }
172
+ ],
173
+ "required": [
174
+ "yesNo"
175
+ ],
176
+ "properties": {
177
+ "yesNo": {
178
+ "sef25Ref": "H1.1.1"
179
+ }
180
+ }
181
+ },
182
+ "damagedOrExposedElectrics": {
183
+ "sef25Ref": "H1.2",
184
+ "discriminator": {
185
+ "propertyName": "yesNo"
186
+ },
187
+ "oneOf": [
188
+ {
189
+ "properties": {
190
+ "yesNo": {
191
+ "enum": [
192
+ "No"
193
+ ]
194
+ }
195
+ }
196
+ },
197
+ {
198
+ "properties": {
199
+ "yesNo": {
200
+ "enum": [
201
+ "Yes"
202
+ ]
203
+ },
204
+ "details": {
205
+ "sef25Ref": "H1.2.2"
206
+ }
207
+ },
208
+ "required": [
209
+ "details"
210
+ ]
211
+ }
212
+ ],
213
+ "required": [
214
+ "yesNo"
215
+ ],
216
+ "properties": {
217
+ "yesNo": {
218
+ "sef25Ref": "H1.2.1"
219
+ }
220
+ }
221
+ },
222
+ "damageToFlooringOrStaircases": {
223
+ "sef25Ref": "H1.3",
224
+ "discriminator": {
225
+ "propertyName": "yesNo"
226
+ },
227
+ "oneOf": [
228
+ {
229
+ "properties": {
230
+ "yesNo": {
231
+ "enum": [
232
+ "No"
233
+ ]
234
+ }
235
+ }
236
+ },
237
+ {
238
+ "properties": {
239
+ "yesNo": {
240
+ "enum": [
241
+ "Yes"
242
+ ]
243
+ },
244
+ "details": {
245
+ "sef25Ref": "H1.3.2"
246
+ }
247
+ },
248
+ "required": [
249
+ "details"
250
+ ]
251
+ }
252
+ ],
253
+ "required": [
254
+ "yesNo"
255
+ ],
256
+ "properties": {
257
+ "yesNo": {
258
+ "sef25Ref": "H1.3.1"
259
+ }
260
+ }
261
+ },
262
+ "knownAreasInPoorCondition": {
263
+ "sef25Ref": "H1.4",
264
+ "discriminator": {
265
+ "propertyName": "yesNo"
266
+ },
267
+ "oneOf": [
268
+ {
269
+ "properties": {
270
+ "yesNo": {
271
+ "enum": [
272
+ "No"
273
+ ]
274
+ }
275
+ }
276
+ },
277
+ {
278
+ "properties": {
279
+ "yesNo": {
280
+ "enum": [
281
+ "Yes"
282
+ ]
283
+ },
284
+ "details": {
285
+ "sef25Ref": "H1.4.2"
286
+ }
287
+ },
288
+ "required": [
289
+ "details"
290
+ ]
291
+ }
292
+ ],
293
+ "required": [
294
+ "yesNo"
295
+ ],
296
+ "properties": {
297
+ "yesNo": {
298
+ "sef25Ref": "H1.4.1"
299
+ }
300
+ }
301
+ }
302
+ }
303
+ },
304
+ "electricity": {
305
+ "sef25Ref": "S1",
306
+ "properties": {
307
+ "solarPanels": {
308
+ "sef25Ref": "S1",
309
+ "discriminator": {
310
+ "propertyName": "yesNo"
311
+ },
312
+ "oneOf": [
313
+ {
314
+ "properties": {
315
+ "yesNo": {
316
+ "enum": [
317
+ "No"
318
+ ]
319
+ }
320
+ }
321
+ },
322
+ {
323
+ "properties": {
324
+ "yesNo": {
325
+ "enum": [
326
+ "Yes"
327
+ ]
328
+ },
329
+ "panelsOwnedOutright": {
330
+ "sef25Ref": "S1.1",
331
+ "discriminator": {
332
+ "propertyName": "yesNo"
333
+ },
334
+ "oneOf": [
335
+ {
336
+ "properties": {
337
+ "yesNo": {
338
+ "enum": [
339
+ "Yes"
340
+ ]
341
+ }
342
+ }
343
+ },
344
+ {
345
+ "properties": {
346
+ "yesNo": {
347
+ "enum": [
348
+ "No"
349
+ ]
350
+ },
351
+ "associatedCost": {
352
+ "sef25Ref": "S1.1",
353
+ "required": [
354
+ "frequency"
355
+ ],
356
+ "properties": {
357
+ "frequency": {
358
+ "sef25Ref": "S1.1.2"
359
+ }
360
+ },
361
+ "oneOf": [
362
+ null,
363
+ {
364
+ "properties": {
365
+ "amount": {
366
+ "sef25Ref": "S1.1.1"
367
+ }
368
+ }
369
+ }
370
+ ]
371
+ }
372
+ }
373
+ }
374
+ ]
375
+ }
376
+ }
377
+ },
378
+ {
379
+ "properties": {
380
+ "yesNo": {
381
+ "enum": [
382
+ "To be connected"
383
+ ]
384
+ }
385
+ }
386
+ }
387
+ ]
388
+ }
389
+ }
390
+ },
391
+ "waterAndDrainage": {
392
+ "properties": {
393
+ "water": {
394
+ "properties": {
395
+ "mainsWater": {
396
+ "oneOf": [
397
+ {
398
+ "required": [
399
+ "associatedCost"
400
+ ],
401
+ "properties": {
402
+ "associatedCost": {
403
+ "sef25Ref": "U1.1",
404
+ "required": [
405
+ "frequency"
406
+ ],
407
+ "properties": {
408
+ "frequency": {
409
+ "sef25Ref": "U1.1.2"
410
+ }
411
+ },
412
+ "oneOf": [
413
+ null,
414
+ {
415
+ "properties": {
416
+ "amount": {
417
+ "sef25Ref": "U1.1.1"
418
+ }
419
+ }
420
+ }
421
+ ]
422
+ }
423
+ }
424
+ }
425
+ ]
426
+ }
427
+ }
428
+ },
429
+ "drainage": {
430
+ "properties": {
431
+ "mainsFoulDrainage": {
432
+ "oneOf": [
433
+ null,
434
+ null,
435
+ {
436
+ "required": [
437
+ "associatedCost"
438
+ ],
439
+ "properties": {
440
+ "associatedCost": {
441
+ "sef25Ref": "U1.2",
442
+ "required": [
443
+ "frequency"
444
+ ],
445
+ "properties": {
446
+ "frequency": {
447
+ "sef25Ref": "U1.2.2"
448
+ }
449
+ },
450
+ "oneOf": [
451
+ null,
452
+ {
453
+ "properties": {
454
+ "amount": {
455
+ "sef25Ref": "U1.2.1"
456
+ }
457
+ }
458
+ }
459
+ ]
460
+ }
461
+ }
462
+ }
463
+ ]
464
+ }
465
+ }
466
+ }
467
+ }
468
+ },
469
+ "insurance": {
470
+ "sef25Ref": "I1",
471
+ "discriminator": {
472
+ "propertyName": "isInsured"
473
+ },
474
+ "oneOf": [
475
+ {
476
+ "properties": {
477
+ "isInsured": {
478
+ "enum": [
479
+ "No"
480
+ ]
481
+ }
482
+ }
483
+ },
484
+ {
485
+ "properties": {
486
+ "isInsured": {
487
+ "enum": [
488
+ "Yes"
489
+ ]
490
+ },
491
+ "insuranceClaims": {
492
+ "sef25Ref": "I1.1",
493
+ "discriminator": {
494
+ "propertyName": "yesNo"
495
+ },
496
+ "oneOf": [
497
+ {
498
+ "properties": {
499
+ "yesNo": {
500
+ "enum": [
501
+ "No"
502
+ ]
503
+ }
504
+ }
505
+ },
506
+ {
507
+ "properties": {
508
+ "yesNo": {
509
+ "enum": [
510
+ "Yes"
511
+ ]
512
+ }
513
+ }
514
+ }
515
+ ],
516
+ "required": [
517
+ "yesNo"
518
+ ],
519
+ "properties": {
520
+ "yesNo": {
521
+ "sef25Ref": "I1.1.1"
522
+ }
523
+ }
524
+ }
525
+ },
526
+ "required": [
527
+ "insuranceClaims"
528
+ ]
529
+ }
530
+ ]
531
+ },
532
+ "rightsAndInformalArrangements": {
533
+ "sef25Ref": "R1",
534
+ "properties": {
535
+ "rightsOrArrangements": {
536
+ "sef25Ref": "R1",
537
+ "required": [
538
+ "privateRightOfWay"
539
+ ],
540
+ "properties": {
541
+ "privateRightOfWay": {
542
+ "sef25Ref": "R1.1",
543
+ "discriminator": {
544
+ "propertyName": "yesNo"
545
+ },
546
+ "oneOf": [
547
+ {
548
+ "properties": {
549
+ "yesNo": {
550
+ "enum": [
551
+ "No"
552
+ ]
553
+ }
554
+ }
555
+ },
556
+ {
557
+ "properties": {
558
+ "yesNo": {
559
+ "enum": [
560
+ "Yes"
561
+ ]
562
+ },
563
+ "details": {
564
+ "sef25Ref": "R1.1.2"
565
+ }
566
+ },
567
+ "required": [
568
+ "details"
569
+ ]
570
+ }
571
+ ],
572
+ "required": [
573
+ "yesNo"
574
+ ],
575
+ "properties": {
576
+ "yesNo": {
577
+ "sef25Ref": "R1.1.1"
578
+ }
579
+ }
580
+ }
581
+ }
582
+ }
583
+ }
584
+ },
585
+ "environmentalIssues": {
586
+ "sef25Ref": "E1",
587
+ "required": [
588
+ "stormFireFloodDamage"
589
+ ],
590
+ "properties": {
591
+ "flooding": {
592
+ "properties": {
593
+ "historicalFlooding": {
594
+ "properties": {
595
+ "hasBeenFlooded": {
596
+ "sef25Ref": "E1.2"
597
+ }
598
+ }
599
+ }
600
+ }
601
+ },
602
+ "stormFireFloodDamage": {
603
+ "sef25Ref": "E1.1",
604
+ "discriminator": {
605
+ "propertyName": "yesNo"
606
+ },
607
+ "oneOf": [
608
+ {
609
+ "properties": {
610
+ "yesNo": {
611
+ "enum": [
612
+ "No"
613
+ ]
614
+ }
615
+ }
616
+ },
617
+ {
618
+ "properties": {
619
+ "yesNo": {
620
+ "enum": [
621
+ "Yes"
622
+ ]
623
+ },
624
+ "details": {
625
+ "sef25Ref": "E1.1.2"
626
+ }
627
+ },
628
+ "required": [
629
+ "details"
630
+ ]
631
+ }
632
+ ],
633
+ "required": [
634
+ "yesNo"
635
+ ],
636
+ "properties": {
637
+ "yesNo": {
638
+ "sef25Ref": "E1.1.1"
639
+ }
640
+ }
641
+ }
642
+ }
643
+ },
644
+ "additionalInformation": {
645
+ "sef25Ref": "M1",
646
+ "required": [
647
+ "otherMaterialIssue"
648
+ ],
649
+ "properties": {
650
+ "otherMaterialIssue": {
651
+ "sef25Ref": "M1.1",
652
+ "discriminator": {
653
+ "propertyName": "yesNo"
654
+ },
655
+ "oneOf": [
656
+ {
657
+ "properties": {
658
+ "yesNo": {
659
+ "enum": [
660
+ "No"
661
+ ]
662
+ }
663
+ }
664
+ },
665
+ {
666
+ "properties": {
667
+ "yesNo": {
668
+ "enum": [
669
+ "Yes"
670
+ ]
671
+ },
672
+ "details": {
673
+ "sef25Ref": "M1.1.2"
674
+ }
675
+ },
676
+ "required": [
677
+ "details"
678
+ ]
679
+ }
680
+ ],
681
+ "required": [
682
+ "yesNo"
683
+ ],
684
+ "properties": {
685
+ "yesNo": {
686
+ "sef25Ref": "M1.1.1"
687
+ }
688
+ }
689
+ }
690
+ }
691
+ },
692
+ "guaranteesWarrantiesAndIndemnityInsurances": {
693
+ "sef25Ref": "W1",
694
+ "discriminator": {
695
+ "propertyName": "hasValidGuaranteesOrWarranties"
696
+ },
697
+ "oneOf": [
698
+ {
699
+ "properties": {
700
+ "hasValidGuaranteesOrWarranties": {
701
+ "enum": [
702
+ "No"
703
+ ]
704
+ }
705
+ }
706
+ },
707
+ {
708
+ "properties": {
709
+ "hasValidGuaranteesOrWarranties": {
710
+ "enum": [
711
+ "Yes"
712
+ ]
713
+ },
714
+ "newHomeWarranty": {
715
+ "sef25Ref": "W1.1",
716
+ "discriminator": {
717
+ "propertyName": "yesNo"
718
+ },
719
+ "oneOf": [
720
+ {
721
+ "properties": {
722
+ "yesNo": {
723
+ "enum": [
724
+ "No"
725
+ ]
726
+ }
727
+ }
728
+ },
729
+ {
730
+ "properties": {
731
+ "yesNo": {
732
+ "enum": [
733
+ "Yes"
734
+ ]
735
+ }
736
+ }
737
+ }
738
+ ],
739
+ "required": [
740
+ "yesNo"
741
+ ],
742
+ "properties": {
743
+ "yesNo": {
744
+ "sef25Ref": "W1.1.1"
745
+ }
746
+ }
747
+ },
748
+ "roofingWork": {
749
+ "sef25Ref": "W1.2",
750
+ "discriminator": {
751
+ "propertyName": "yesNo"
752
+ },
753
+ "oneOf": [
754
+ {
755
+ "properties": {
756
+ "yesNo": {
757
+ "enum": [
758
+ "No"
759
+ ]
760
+ }
761
+ }
762
+ },
763
+ {
764
+ "properties": {
765
+ "yesNo": {
766
+ "enum": [
767
+ "Yes"
768
+ ]
769
+ }
770
+ }
771
+ }
772
+ ],
773
+ "required": [
774
+ "yesNo"
775
+ ],
776
+ "properties": {
777
+ "yesNo": {
778
+ "sef25Ref": "W1.2.1"
779
+ }
780
+ }
781
+ },
782
+ "dampProofingTreatment": {
783
+ "sef25Ref": "W1.3",
784
+ "discriminator": {
785
+ "propertyName": "yesNo"
786
+ },
787
+ "oneOf": [
788
+ {
789
+ "properties": {
790
+ "yesNo": {
791
+ "enum": [
792
+ "No"
793
+ ]
794
+ }
795
+ }
796
+ },
797
+ {
798
+ "properties": {
799
+ "yesNo": {
800
+ "enum": [
801
+ "Yes"
802
+ ]
803
+ }
804
+ }
805
+ }
806
+ ],
807
+ "required": [
808
+ "yesNo"
809
+ ],
810
+ "properties": {
811
+ "yesNo": {
812
+ "sef25Ref": "W1.3.1"
813
+ }
814
+ }
815
+ },
816
+ "centralHeatingAndorPlumbing": {
817
+ "sef25Ref": "W1.4",
818
+ "discriminator": {
819
+ "propertyName": "yesNo"
820
+ },
821
+ "oneOf": [
822
+ {
823
+ "properties": {
824
+ "yesNo": {
825
+ "enum": [
826
+ "No"
827
+ ]
828
+ }
829
+ }
830
+ },
831
+ {
832
+ "properties": {
833
+ "yesNo": {
834
+ "enum": [
835
+ "Yes"
836
+ ]
837
+ }
838
+ }
839
+ }
840
+ ],
841
+ "required": [
842
+ "yesNo"
843
+ ],
844
+ "properties": {
845
+ "yesNo": {
846
+ "sef25Ref": "W1.4.1"
847
+ }
848
+ }
849
+ },
850
+ "doubleGlazing": {
851
+ "sef25Ref": "W1.8",
852
+ "discriminator": {
853
+ "propertyName": "yesNo"
854
+ },
855
+ "oneOf": [
856
+ {
857
+ "properties": {
858
+ "yesNo": {
859
+ "enum": [
860
+ "No"
861
+ ]
862
+ }
863
+ }
864
+ },
865
+ {
866
+ "properties": {
867
+ "yesNo": {
868
+ "enum": [
869
+ "Yes"
870
+ ]
871
+ }
872
+ }
873
+ }
874
+ ],
875
+ "required": [
876
+ "yesNo"
877
+ ],
878
+ "properties": {
879
+ "yesNo": {
880
+ "sef25Ref": "W1.8.1"
881
+ }
882
+ }
883
+ },
884
+ "electricalRepairOrInstallation": {
885
+ "sef25Ref": "W1.5",
886
+ "discriminator": {
887
+ "propertyName": "yesNo"
888
+ },
889
+ "oneOf": [
890
+ {
891
+ "properties": {
892
+ "yesNo": {
893
+ "enum": [
894
+ "No"
895
+ ]
896
+ }
897
+ }
898
+ },
899
+ {
900
+ "properties": {
901
+ "yesNo": {
902
+ "enum": [
903
+ "Yes"
904
+ ]
905
+ }
906
+ }
907
+ }
908
+ ],
909
+ "required": [
910
+ "yesNo"
911
+ ],
912
+ "properties": {
913
+ "yesNo": {
914
+ "sef25Ref": "W1.5.1"
915
+ }
916
+ }
917
+ },
918
+ "subsidenceWork": {
919
+ "sef25Ref": "W1.6",
920
+ "discriminator": {
921
+ "propertyName": "yesNo"
922
+ },
923
+ "oneOf": [
924
+ {
925
+ "properties": {
926
+ "yesNo": {
927
+ "enum": [
928
+ "No"
929
+ ]
930
+ }
931
+ }
932
+ },
933
+ {
934
+ "properties": {
935
+ "yesNo": {
936
+ "enum": [
937
+ "Yes"
938
+ ]
939
+ }
940
+ }
941
+ }
942
+ ],
943
+ "required": [
944
+ "yesNo"
945
+ ],
946
+ "properties": {
947
+ "yesNo": {
948
+ "sef25Ref": "W1.6.1"
949
+ }
950
+ }
951
+ },
952
+ "otherGuarantees": {
953
+ "sef25Ref": "W1.7",
954
+ "discriminator": {
955
+ "propertyName": "yesNo"
956
+ },
957
+ "oneOf": [
958
+ {
959
+ "properties": {
960
+ "yesNo": {
961
+ "enum": [
962
+ "No"
963
+ ]
964
+ }
965
+ }
966
+ },
967
+ {
968
+ "properties": {
969
+ "yesNo": {
970
+ "enum": [
971
+ "Yes"
972
+ ]
973
+ },
974
+ "details": {
975
+ "sef25Ref": "W1.7.2"
976
+ }
977
+ },
978
+ "required": [
979
+ "details"
980
+ ]
981
+ }
982
+ ],
983
+ "required": [
984
+ "yesNo"
985
+ ],
986
+ "properties": {
987
+ "yesNo": {
988
+ "sef25Ref": "W1.7.1"
989
+ }
990
+ }
991
+ }
992
+ },
993
+ "required": [
994
+ "newHomeWarranty",
995
+ "roofingWork",
996
+ "dampProofingTreatment",
997
+ "centralHeatingAndorPlumbing",
998
+ "electricalRepairOrInstallation",
999
+ "subsidenceWork",
1000
+ "otherGuarantees"
1001
+ ]
1002
+ }
1003
+ ],
1004
+ "required": [
1005
+ "hasValidGuaranteesOrWarranties"
1006
+ ],
1007
+ "properties": {
1008
+ "hasValidGuaranteesOrWarranties": {
1009
+ "sef25Ref": "W1.0"
1010
+ }
1011
+ }
1012
+ }
1013
+ }
1014
+ }
1015
+ }
1016
+ }